https://github.com/link-wolf/inquisitor
42 project - Prototype of an ARP Poisoning program
https://github.com/link-wolf/inquisitor
42 42born2code 42school arp-poisoning arp-spoofing cpp cybersecurity docker linux
Last synced: 2 months ago
JSON representation
42 project - Prototype of an ARP Poisoning program
- Host: GitHub
- URL: https://github.com/link-wolf/inquisitor
- Owner: Link-Wolf
- Created: 2023-09-14T14:49:44.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-09-19T14:26:15.000Z (8 months ago)
- Last Synced: 2025-01-27T12:49:39.632Z (4 months ago)
- Topics: 42, 42born2code, 42school, arp-poisoning, arp-spoofing, cpp, cybersecurity, docker, linux
- Language: C++
- Homepage:
- Size: 146 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![]()
Piscine Cybersecurity - inquisitor
ARP Poisoning
A prototype of an ARP poisoning program
Report Bug
·
Request Feature
Table of Contents
## Goal
This cybersecurity project aims to emulate a classical Man in the Middle attack by ARP poisoning in a controlled environment. The goal is to be able to intercept the traffic between a client and a FTP server and to be able to read the packets sent by the client to the server and vice versa.
Since it's only a prototype, the `poisoner` isn't well hidden –actually, the `target` can see the changes when it occurs– and the `poisoner` only intercepts FTP packets.
> The program is written in C++
## Getting Started
### Prerequisites
Having [Docker](https://docker.com) installed on your system and be able to run the `docker compose` command on your system
### Installation
1. Clone the repo
```sh
$> git clone https://github.com/Link-Wolf/inquisitor.git
```2. Launch the containers
```sh
$> cd inquisitor
$> make
```3. From the poisoner
```sh
$> docker exec -it poisoner bash
#> inquisitor [-v] IP_src MAC_src IP_target MAC_target
```> The `-v` (verbose) option is used to display the packets sent and received by the program
> The `IP_src` and `MAC_src` are the IP and MAC addresses of the FTP server
> The `IP_target` and `MAC_target` are the IP and MAC addresses of the victim4. From the target
```sh
$> docker exec -it target bash
#> ftp source
> ls|get FILE|pwd|...
```> Source is the hostname of the FTP server
> FILE is the name of the file to download## Usage examples
#### Using the `target` container as a simple client that connect to a FTP server

#### Using the `poisoner` container to perform a MITM (Man In The Middle) attack on the `target` container

In this example, the `poisoner` container intercepts the FTP packets at the moment the `target` tries to download a file named `my_awesome_file.exe`.
## Contributing
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request