# GearGoat | Car Vulnerabilities Simulator

**URL:** <https://onehack.st/t/geargoat-car-vulnerabilities-simulator/286666>\
**Category:** Tools & Scripts\
**Tags:** tools, hacking, freebies\
**Created:** [July 11, 2024, 7:14pm UTC](https://onehack.st/t/geargoat-car-vulnerabilities-simulator/286666 "2024-07-11T19:14:38Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Prometheus](https://onehack.st/user_avatar/onehack.st/prometheus/32/34950_2.png) [@Prometheus](https://onehack.st/u/Prometheus)\
**Post date:** [July 11, 2024, 7:14pm UTC](https://onehack.st/t/geargoat-car-vulnerabilities-simulator/286666/1 "2024-07-11T19:14:38Z")

</div>

![image](https://onehack.st/uploads/default/original/3X/0/c/0c0f92b9a5251d082b205b3699915f7f9a4ca81b.jpeg)

# GearGoat : Car Vulnerabilities Simulator

A python implementation inspired from [ICSim](https://github.com/zombieCraig/ICSim). Currently supports running on a single interface “vcan0” and fixed arbitration IDs for the actions including, turn indicators, door lock unlock indicators and speedometer.

The simulator runs in browser with control buttons for the user to interact.

### Developed with ❤ by [INE](https://ine.com/)

## Built With

- Python 3
- Docker

# Getting Started

### Prerequisites

- Linux machine
- Docker (for installing docker on linux)

```auto
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

```

Further instructions [here](https://docs.docker.com/engine/install/)

### Installation

**Step 1.** Clone the repo and navigate into the directory

git clone [https://github.com/ine-labs/GearGoat.git](https://github.com/ine-labs/GearGoat.git) cd GearGoat

**Step 2.** Inside the repository directory, run the following to install required utilities and build the docker container.

sudo chmod +x initial\_setup.sh sudo ./initial\_setup.sh

**Step 3.** Setup the vcan0 interface

sudo chmod +x vcan\_setup.sh sudo ./vcan\_setup.sh

If you face any trouble with the above script related to setting up “vcan0” interface, try running this command:

sudo apt-get install -y linux-modules-extra-$(uname -r)

**Step 4.** Run the docker container

sudo docker run --network=“host” --privileged geargoat

**Step 5.** The web UI can be accessed at port 80 of the machine in which the container is running.

```auto
http://localhost or http://<the_machine_ip>

```

ip\_address=$(hostname -I | awk ‘{print $1}’) url=“http://$ip\_address” echo $url

## Usage

There are mainly three car actions that can be performed with this web UI, which includes:

1. Toggling turn signals
2. Locking/Unlocking Doors
3. Updating the speedometer.

Try out each buttons and observe the actions in the UI.

Clicking on indicator buttons switches the state for a fraction of second. The color changes to “orange”. **Click for a slightly longer duration to register the signal change**.

[![2](https://private-user-images.githubusercontent.com/109127914/291162506-20cf5901-9cf6-481f-a709-7720c8240448.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA3MjM0NzgsIm5iZiI6MTcyMDcyMzE3OCwicGF0aCI6Ii8xMDkxMjc5MTQvMjkxMTYyNTA2LTIwY2Y1OTAxLTljZjYtNDgxZi1hNzA5LTc3MjBjODI0MDQ0OC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcxMVQxODM5MzhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jNTNmNDM3ZDQ2YmRkMzFiNTAzYTM2YWIwZDRlMTE3ZTVlOTg0YTk3NDg2YzcxY2Q4OGNiYjM5NDJlODJmNzg5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.FyDpKLV0dBEd4PkH7ZTT21qPa_iMib5jJkAV5vF9UX4)](https://private-user-images.githubusercontent.com/109127914/291162506-20cf5901-9cf6-481f-a709-7720c8240448.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA3MjM0NzgsIm5iZiI6MTcyMDcyMzE3OCwicGF0aCI6Ii8xMDkxMjc5MTQvMjkxMTYyNTA2LTIwY2Y1OTAxLTljZjYtNDgxZi1hNzA5LTc3MjBjODI0MDQ0OC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcxMVQxODM5MzhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jNTNmNDM3ZDQ2YmRkMzFiNTAzYTM2YWIwZDRlMTE3ZTVlOTg0YTk3NDg2YzcxY2Q4OGNiYjM5NDJlODJmNzg5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.FyDpKLV0dBEd4PkH7ZTT21qPa_iMib5jJkAV5vF9UX4)

The door is initially locked indicated by “red”. It can be unlocked by clicking the corresponding door unlock button which turns the indicator to “green”. Clicking the corresponding door lock button again will revert it back to “red”.

[![3](https://private-user-images.githubusercontent.com/109127914/291162518-8df83f50-15bb-4426-a3f6-078cbdc5a9d2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA3MjM0NzgsIm5iZiI6MTcyMDcyMzE3OCwicGF0aCI6Ii8xMDkxMjc5MTQvMjkxMTYyNTE4LThkZjgzZjUwLTE1YmItNDQyNi1hM2Y2LTA3OGNiZGM1YTlkMi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcxMVQxODM5MzhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05ODU5YjMxMGRkNWYxODgxMzBkZjZmMGUyNzc2ZjQ5MGRhMDAwZjE1MTY1MmEyZTE1YjYzMDYxNTM0NzVhZDUyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.9awnR-ecICO1lDuK_i3tNwjSsrF7Z0Z98N2_V-8GCf4)](https://private-user-images.githubusercontent.com/109127914/291162518-8df83f50-15bb-4426-a3f6-078cbdc5a9d2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA3MjM0NzgsIm5iZiI6MTcyMDcyMzE3OCwicGF0aCI6Ii8xMDkxMjc5MTQvMjkxMTYyNTE4LThkZjgzZjUwLTE1YmItNDQyNi1hM2Y2LTA3OGNiZGM1YTlkMi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcxMVQxODM5MzhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05ODU5YjMxMGRkNWYxODgxMzBkZjZmMGUyNzc2ZjQ5MGRhMDAwZjE1MTY1MmEyZTE1YjYzMDYxNTM0NzVhZDUyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.9awnR-ecICO1lDuK_i3tNwjSsrF7Z0Z98N2_V-8GCf4)

Finally the accelerate button, which will respond towards mouse clicks. Clicking and holding the button (mousedown) will result in speed increase and releasing the button(mouseup) results in speed falling down.

[![4](https://private-user-images.githubusercontent.com/109127914/291162527-535be506-3c07-440d-88d1-1b9ad24cb027.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA3MjM0NzgsIm5iZiI6MTcyMDcyMzE3OCwicGF0aCI6Ii8xMDkxMjc5MTQvMjkxMTYyNTI3LTUzNWJlNTA2LTNjMDctNDQwZC04OGQxLTFiOWFkMjRjYjAyNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcxMVQxODM5MzhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04MzE4YmQ3MzU5ZTNjZTZiYjQ0M2M1MjMyNTQ1ZWY0ZTgxZmYyOWRhN2E3MmViYzZhNjcwZTU2YTFjM2M1ZDJjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9._FdDpRiPV6cCNRMt5JGpASoMKIqhPZaSCkPyl6PtlZI)](https://private-user-images.githubusercontent.com/109127914/291162527-535be506-3c07-440d-88d1-1b9ad24cb027.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA3MjM0NzgsIm5iZiI6MTcyMDcyMzE3OCwicGF0aCI6Ii8xMDkxMjc5MTQvMjkxMTYyNTI3LTUzNWJlNTA2LTNjMDctNDQwZC04OGQxLTFiOWFkMjRjYjAyNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcxMVQxODM5MzhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04MzE4YmQ3MzU5ZTNjZTZiYjQ0M2M1MjMyNTQ1ZWY0ZTgxZmYyOWRhN2E3MmViYzZhNjcwZTU2YTFjM2M1ZDJjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9._FdDpRiPV6cCNRMt5JGpASoMKIqhPZaSCkPyl6PtlZI)

**All these actions generate corresponding CAN packets.**

After usage, you can turn off the simulator by:

CONTAINER\_ID=$(sudo docker ps -qf “ancestor=geargoat”) sudo docker stop $CONTAINER\_ID

## Manuals

The manuals are available in the [manuals](https://github.com/ine-labs/GearGoat/blob/main/manuals) directory.

The videos associated with the manuals can be accessed at: [https://www.youtube.com/playlist?list=PLz6wD\_rVyKMAHoVv4J0O0AlO00uSBinDv](https://www.youtube.com/playlist?list=PLz6wD_rVyKMAHoVv4J0O0AlO00uSBinDv)

## Contributors

Pranjal Soni, Software Engineer (Cloud), INE [psoni@ine.com](mailto:psoni@ine.com) (Primary Contributor)

Nishant Sharma, Director (Lab Platform), INE [nsharma@ine.com](mailto:nsharma@ine.com) (Guidance)

Sanjeev Mahunta, Software Engineer (Cloud), INE [smahunta@ine.com](mailto:smahunta@ine.com)

## Contribution Guidelines

- Contributions in the form of code improvements, feature additions, and any general suggestions are welcome.
- The source code can be found inside `container\`

# Sister Projects

- [AWSGoat](https://github.com/ine-labs/AWSGoat)
- [AzureGoat](https://github.com/ine-labs/AzureGoat)
- [GCPGoat](https://github.com/ine-labs/GCPGoat)
- [PA Toolkit (Pentester Academy Wireshark Toolkit)](https://github.com/pentesteracademy/patoolkit)
- [ReconPal: Leveraging NLP for Infosec](https://github.com/pentesteracademy/reconpal)
- [VoIPShark: Open Source VoIP Analysis Platform](https://github.com/pentesteracademy/voipshark)
- [BLEMystique](https://github.com/pentesteracademy/blemystique)

## GitHub:

> **[GitHub - ine-labs/GearGoat](https://github.com/ine-labs/GearGoat)**
>
> Contribute to ine-labs/GearGoat development by creating an account on GitHub.
