RareGaZz19:(rgz_0A):27/03/2002 << Back To RareGaZz19


: :.:..:...:....:.....:......:.......:........:.........:..........: : : :::: : : : : RGZ_0A Sniffing con Ettercap (GNU/Linux) Sniffing Buanzo : :.:..:...:....:.....:......:.......:........:.........:..........: : : :::: Que tal! Soy Buanzo, muchos de ustedes ya me conocen, y otros no tanto. Este es mi primer articulo como miembro del RareGaZz Team, el cual sigo y conozco desde hace muchos a~os. Quiero decir que es un orgullo contar con la compa~ia de todos los que hacemos y somos RareGaZz. Listo, habiendo finalizada la tipica introduccion cursi, metamonos un poco en tema, diciendo: Aguante RareGaZz y los raredudez, CARAJO! (Y bue, soy Argentino). -0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 El ettercap es un programa muy piola que nos permite capturar el trafico que circula por una LAN, ya sea que las PC's esten interconectadas por medio de HUB's o de SWITCHES. Me imagino que varios se sorprenderan cuando yo digo que se puede meter un sniffer en un ambiente switcheado. Bueno, resulta que el ettercap, aparte de ser un sniffer muy bueno, es tambien un excelente ARP poisoner. Si no entienden lo que esto significa, no desesperen. Van a averiguarlo durante la lectura de este articulito. Ah! El ettercap tiene una interfaz grafica para consola, en modo texto, nada de X, bastante piola y rapida una vez que nos aprendamos las teclas de comando. De todas formas, en cada pantalla pueden presionar la 'h' (por 'H'elp, ayuda), y pueden volver atras o salir presionando 'q' (por 'q'uit). El primer paso es, obviamente, bajar el ettercap. A tal efecto, vamos a dirigir nuestro lynx, links o cualquier otro navegador al sitio oficial de ettercap, en: http://ettercap.sourceforge.net A decir verdad, la URL a la pagina de Download es la siguiente: http://ettercap.sourceforge.net/index.php?s=download Si ustedes YA TIENEN un ettercap instalado, prueben directamente de ejecutar el comando 'ettercap -v' que, aparte de mostrarnos la version que tenemos de ettercap, nos pregunta si queremos ver si hay un actualizacion, y bajarla. Tenemos que tener el wget instalado, por supuesto. El sitio oficial del Wget es: http://www.wget.org Pueden bajarlo del FTP oficial en: ftp://ftp.gnu.org/pub/gnu/wget/ En mi caso, yo tengo la version 0.6.4, veamos que pasa si hago 'ettercap -v': root@INTRA:ettercap-0.6.4 # /usr/local/sbin/ettercap -v Current version is : 0.6.4 Do you want to check for the latest version ? (y/n) y Connecting to http://ettercap.sourceforge.net... Requesting /latest.php... You already have the latest ettercap release (0.6.4) En mi caso, yo tengo la ultima version, al menos al momento de escribir este articulo (27 de febrero, 2002). Bueno, ahora que ya bajamos el ettercap, procederemos a desempaquetarlo, configurar la compilacion, compilarlo e instalarlo, para luego compilar e instalar los plugins. 1) Desempaquetado La tipica: root@INTRA:~ # tar -zxf ettercap-0.6.4.tar.gz 2) Configurar la compilacion root@INTRA:~ # cd ettercap-0.6.4 root@INTRA:~/ettercap-0.6.4 # ./configure 3) Compilarlo root@INTRA:~/ettercap-0.6.4 # make 4) Instalarlo root@INTRA:~/ettercap-0.6.4 # make install 5) Compilar & Instalar los plugins root@INTRA:~ # cd plugins root@INTRA:~/ettercap-0.6.4/plugins # make install Ahora, si todo anduvo bien, vamos a tener un lindo ettercap instalado y listo para ser usado. ATENCION!!!!!!!!!!!!! Si ustedes son usuarios de CABLEMODEM van a poder divertirse bastante. Ustedes prueben, nomas. En ADSL no van a poder hacer nada, lo mas seguro. Bueno, en mi caso, yo tengo una peque~a intranet (mi cybercafe, en San Isidro, con linux en algunas maquinas, por si alguno necesita... mandenme un email :). Como les decia, en mi caso tengo un server con ADSL, dos placas de red (ifext, e ifin, como les digo yo, por interfaz externa [=adsl], e interfaz interna [=intranet]). La interfaz interna tiene una mascara de subred (netmask, bue) de 255.255.0.0 (o sea, una clase B), por lo que me da 65535 hosts aproximadamente. (255^2). Por tal motivo, en vez de ejecutar ettercap a secas, vamos a pasarle el parametro "--netmask 255.255.255.0", lo que corresponde a una clase C, para no tener que esperar mucho durante el ARP discovery, que es el metodo que utiliza ettercap para encontrar que hosts estan, digamos, online. En mi caso, luego de ejecutar "ettercap --netmask 255.255.255.0" en el server (10.0.0.1), obtengo una lista de 9 direcciones IP. Si se mueven por esta lista veran que en la seccion de abajo se mostrara el nombre del host, la IP y la MAC. Por que puedo usar 255.255.255.0 como netmask? Porque yo uso direcciones IP de 10.0.0.1 a 10.0.0.11, como ven, solo el cuarto octeto se modifica. Por tal motivo, la mascara puede ser 255.255.255.0 Esto del cambio de netmask lo hago solamente para que el ARP discovery tarde menos, solo por eso. Por supuesto, podria iniciar solo con "ettercap", y tambien me daria los mismos 9 hosts, al menos en MI caso particular. De ustedes depende utilizar la netmask por defecto u otra. Si a ustedes en verdad les interesa ciertas direcciones IP, pueden hacer esto: # ettercap -H IP1,IP2,IP3 Con lo que el ARP discovery no se utilizara, y solo se hara un Reverse Lookup en el DNS para obtener los nombres de host de esas IP. Les vuelvo a recordar: En cada pantalla nueva que se encuentren, presionen la tecla 'h', para ver los comandos disponibles. Bueno, una vez dentro de la pantalla principal de ettercap, veremos que se nos presenta una lista de direcciones IP activa, dispuestas en dos columnas iguales. Con los cursores podemos movernos sobre esa lista de IP's, y a medida que nos movemos podremos ver en la parte de abajo de la pantalla el nombre de host y la direccion MAC (de la placa de red) correspondiente a dicha IP. La columna de la izquierda nos permite, con ENTER, seleccionar una IP de ORIGEN (=SOURCE), y en la derecha podremos seleccionar una IP de DESTINO (=DEST). Una vez seleccionado un PAR Origen/destino, podremos habilitar 3 modos diferentes de sniffing, los cual analizaremos. Luego veremos que podemos hacer una vez que estemos haciendo el sniffing en si. Sniffing por IP (tecla "S", por 'S'tandard). Sniffing por MAC (tecla "M", por 'M'AC). Sniffing utilizando ARP Poisoning (tecla "A", por 'A'RP). En la mayoria de los casos, yo recomiendo utilizar sniffing basado en MAC, ya que el analisis del trafico se realiza a mas bajo nivel que TCP/IP, y por lo tanto tenemos mayores probabilidades de encontrar lo que necesitamos. Por supuesto, ustedes prueben entre IP y MAC, dependiendo de varios factores, encontraran que uno u otro les proveen mayores O mejores resultados. Luego nos queda el sniffing por ARP. Este lo van a utilizar cuando esten en una intranet, y NO SE ESTEN EJECUTANDO EL SNIFFER en la maquina destino. Ustedes diran: que gracia tiene ejecutar un sniffer en la maquina destino? Bueno, en MI caso, la maquina destino es la 10.0.0.1, la cual actua como compuerta de enlace para Internet del resto de las maquinas de la Intranet, con lo que el 99% del trafico tiene como destino REAL a Internet, aunque obligatoriamente tienen que pasar por 10.0.0.1 :). En OTRO caso, por ejemplo, sniffing entre 10.0.0.1 y 10.0.0.7, pero nosotros teniendo el sniffer en 10.0.0.3 (por ejemplo), deberiamos utilizar SI o SI sniffing por ARP poisoning. El metodo ARP Poisoning consiste en 'envenenar' (de alli su nombre) la tabla ARP, la cual indica como enrutar, o sea, como deben viajar los datos en una red SWITCHEADA. Lo que hace el envenenamiento es modificar la tabla ARP de tal manera que para llegar a 10.0.0.1, se deba pasar antes por 10.0.0.3. (por ejemplo). ============================================================================== ATENCION!! Si NO hay un switch, pero hay un HUB (sea activo o pasivo), no es necesario usar ARP Poisoning, ya que con solo poner la placa de red en modo promiscuo (ettercap hace eso automaticamente), alcanza para ver los paquetes de la red. ============================================================================== Bien, ahora que estan haciendo el sniffing en si, veran que la parte de arriba de la pantalla dice el SOURCE en IP o en MAC, dependiendo del modo de sniffing que hayamos utilizado, tambien nos dice si los filtros se encuentran activados, etc. (Veremos mas de filtros mas adelante). En la parte de abajo de todo veran vuestra IP (Your IP), la MAC de vuestra interfaz de red actual (en mi caso es la interna, eth1), la interfaz (eth1) y el tipo de vinculo detectado en la red: un SWITCH, en mi caso. Puede decir HUB, por ejemplo. Si dice HUB, excelente, no necesitan hacer ARP Poisoning. Luego, la seccion mas interesante, es la del medio que, si todo va bien, veran lista de conecciones actualizandose permanentemente. Tambien veran la cantidad de hosts en la red actual, junto a vuestra IP y netmask actuales. Este listado de conecciones corresponde a trafico tcp o udp entre el SOURCE y DEST que elejimos. La lista esta conformada por 5 columnas, de izquierda a derecha, de la siguiente forma (les explico con un ejemplo (los IP se modifican para evitar posibles ataques :) 1) 10.0.0.7:1863 <--> 64.z.y.x:1193 | ACTIVE | msnp Bien, como pueden ver, la primer columna corresponde al numero de coneccion interno que el ettercap toma, por supuesto, no tiene nada que ver con las conecciones que 10.0.0.7 haya hecho antes de que iniciemos el sniffing, sino que es, entonces, la primera coneccion que se 've' desde que ettercap inicio el sniff. La segunda columna es un par IP:PUERTO de origen, o sea que es una coneccion desde la IP que nosotros elejimos como origen (10.0.0.7, en mi ejemplo), desde el puerto 1863. La tercer columna corresponde, por lo tanto, al par IP:PUERTO correspondiente a este enlace en particular. Como saben, las conecciones TCP o UDP necesitan de al menos dos parametros: IP y puerto de destino de la coneccion o destino de los datos, y una IP y puerto de origen (generalmente tomado al azar el puerto, aunque puede ser especificado. Historicamente, si el usuario de origen era root, entonces el puerto seguramente seria < 1024, y se tomaba que si una coneccion venia desde un puerto 1024, era una coneccion 'segura', por haber sido iniciada por root). La cuarta columna indica el estado del vinculo: ACTIVE (activo) o silent (silencioso), UDP, o CLOSED (cerrada). Pueden imaginar lo que indica cada uno, no? :) La quinta columna nos indica el protocolo: en este caso es msnp.... o sea, MicroSoft Network Protocol. Es alguien chateando por MSN. Y que podemos hacer con todo esto? Presionen 'h'. Veran que tienen una interesante lista de comandos que pueden utilizar. Entre los mas importantes para esta introduccion al ettercap, mencionaremos los siguientes: <enter> : Para ver el trafico en la coneccion que seleccionemos. Tipicamente lo que mas van a usar, al menos inicialmente. O : Analisis pasivo de los hosts. Se identifica el sistema operativo, marca del adaptador de red y otros datos. K : 'matar' (finalizar) la coneccion. D : resolver IP por DNS R : 'refrescar' la lista de conecciones. L : guardar en un archivo todos los passwords que se hayan detectado. Esta es una funcion interna de ettercap, generalmente funciona mejor cuando utilizamos el metodo ARP Poisoning. Se llaman 'Active Password Collectors'. Bien, ahora, presionemos <enter> sobre alguna coneccion. Veran que la seccion de abajo (el cuadro de estado, digamos...) se actualiza acordemente, mostrando protocolo (TCP, UDP) y applicacion (msnp). Como veran, la seccion del medio de la pantalla ha cambiado de aspecto, transformandose ahora en un par de ventanas. La de la izquierda corresponde a datos que se envian desde el source (10.0.0.7:1863, en este ejemplo), y la de la derecha corresponde a datos que se envian desde el destino (64.x.y.z:1193). Debajo pueden ver en que formato se estan mostrando los datos. Inicialmente, aca dira 'ASCII', pero puede decir 'TEXT' (se filtran los caracteres no-imprimibles y solo se muestran los imprimibles) o 'HEX', se muestra todo en hexadecimal. Muy piola para analisis de protocolo, ingenieria inversa, etc. Ahora, presionen 'h'. Veran el cuadro de ayuda correspondiente al estado actual: sniffing de una coneccion. Como pueden ver, aparecen los tipicos comandos: TAB para moverse entre una y otra ventana, pgup y pgdown (tambien los cursores up y down) para hacer scroll hacia atras o adelante en la ventana actual. Luego estan otros comandos: I : Injectar caracteres en la coneccion. [Solo en ARP Poisoning] F : Editar las cadenas de filtrado [para mas adelante, pero investiguen] K : Matar la coneccion A : Ver en modo ASCII X : Ver en modo HEXadecimal T : Mostrar solo caracteres legibles (filtrar binario, digamos) J : Unir las dos ventanas en una sola (muestra en colores diferentes el trafico de origen y destino, etc). En este modo no funciona el injectado de caracteres, porque no se puede distinguir si queremos injectar en origen o destino. S : Detener la visualizacion (pausa? :) L : Iniciar registro del trafico a un archivo Por otra parte, el ettercap permite ser usado de forma no tan interactiva. Esto lo hacemos directamente armando los parametros de sniffing en la linea de comandos. "ettercap --help" nos muestra los comandos. Vean, tambien se incluyen buenos ejemplos. Les recomiendo redirecciones la salida a un archivo, con lo que podran leer los ejemplos y comandos, los cuales ahora les van a resultar entendibles, luego de haber visto el uso 'interactivo' de esos terminos. Quiza se dieron cuenta de que hasta ahora no hable de los plugins. Bien, los plugins son muchos, y la verdad algunos son bastante faciles de usar, por lo que me gustaria que investiguen USTEDES con los plugins y con los filtros, asi como tambien con la funcion 'Packet Forge', que nos permite armar un paquete TCP/UDP como nosotros querramos. Espero vuestros comentarios tanto por email como en la lista RareDudeZ!. <<::RareGaZz::>>