An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

        


Link-Wolf - inquisitor
42 grade - 125 / 100
Year - 2022
stars - inquisitor
forks - inquisitor
issues - inquisitor
OS - linux





Logo

Piscine Cybersecurity - inquisitor


ARP Poisoning

A prototype of an ARP poisoning program




Report Bug
·
Request Feature


Table of Contents



  1. Goal


  2. Getting Started


  3. Usage examples

  4. Contributing

## Goal



inquisitor

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++

(back to top)

## 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 victim

4. 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

(back to top)

## Usage examples

#### Using the `target` container as a simple client that connect to a FTP server

![](assets/inquisitor_target.png)

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

![](assets/inquisitor_poisoner.png)

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`.

(back to top)

## 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

(back to top)