Navegando por la red me encontré con un proyecto Open Source muy interesante y a la vez divertido. Es assniffer, un pequeño sniffer, como su nombre indica que es capaz de extraer los datos de tipo MIME que están presentes un una captura de red. Hablando claro, si tenemos nuestro fichero .pcap, por ejemplo obtenido con tcpdump, pues es capaz de extraer todos los datos MIME que hay en él de forma automática.
Para comenzar a trabajar con él, primero tenemos que tener una captura de datos, así que vamos a capturar datos primero
shell> tcpdump -i eth0 -w /tmp/captura.pcap
Tras recoger todos los datos que nos interese, ahora hay que emplear assniffer, así que vamos a ver cómo hacerlo.
- Descargamos el softwareLa versión que está actualmente disponible es la 0.2, así que lo descargamos,
shell> wget http://www.cockos.com/assniffer/assniffer02.zip
- Lo arrancamos
- Si usas WindowsAl descomprimirlo ya existe un .exe perfectamente compilado para ejecutar y que funcione, así que simplemente,
cmd> assniffer.exe c:\capturas -r c:\captura.pcap
- Si usas GNU/LinuxAquí la cosa se complica un poco más, ya que antes de poder usarlo hay que compilarlo, aunque eso no es problema. Como software necesario para la compilación simplemente g++. Procedemos tal que así.
shell> cd source/assniffer shell> make
Y una vez compilado, simplemente hay que ejecutarlo,shell> ./assniffer /tmp/capturas/ -r /tmp/captura.pcap
- Comprobamos los datos obtenidosTras finalizar la ejecución, los datos que se han obtenido son todos los de tipo MIME que había en el fichero .pcap, es decir, ficheros de texto, pdf, imágenes, etc. pero ahora están ya en un formato mucho más simple de comprender. Si echamos un vistazo a lo que hay, veremos que hay una carpeta para cada uno de los dominios y dentro de esas carpetas, los ficheros que corresponden al dominio.
shell> ls _ad.doubleclick.net _lavozdegalicia.es _ad-emea.doubleclick.net _media.lavozdegalicia.es _ad.es.doubleclick.net _pagead2.googlesyndication.com _a.prisacom.com _partnerfeed.itsfogo.com _as.com _pg.solution.weborama.fr _atemda.com _ping.chartbeat.net _blstj.msn.com _profile.ak.fbcdn.net _b.scorecardresearch.com _promo.planeo.com _bs.serving-sys.com _p.twitter.com _cdn.adnxs.com _publicidadinternet.lavozdegalicia.es _cdn.api.twitter.com _pxlctl.elpais.com _c.es.msn.com _realtime.services.disqus.com _compras.lavozdegalicia.es _r.twimg.com _ds.serving-sys.com _s0.2mdn.net _elstatic.weborama.fr _s1.as.com _estj.msn.com _s2.as.com _googleads.g.doubleclick.net _s4.as.com _google-analytics.com _s5.as.com _google.com _s.atemda.com _google.es _secure-uk.imrworldwide.com _ib.adnxs.com _shopall.es _imagenen1.247realmedia.com _s.promo.planeo.com _imgs.codigobarras.net _udc.msn.com shell> cd _media.lavozdegalicia.es/ shell> ls default _pintochinto_files_2012_07_dependiente-280x110.jpg _default_2012_07_16_00121342428998068232193_Foto_.jpg&w=135px.jpg _default_2012_07_16_00121342439900198640689_Foto_E_120715-200305.jpg _default_2012_07_16_00121342457907304198516_Foto_.jpg _default_2012_07_16_00121342463479823536679_Foto_V17C5F2.jpg _default_2012_07_16_00121342466088637446783_Foto_.jpg _default_2012_07_16_00121342466144477922177_Foto_.jpg _default_2012_07_16_00121342466145337228769_Foto_.jpg _default_2012_07_16_00121342467357079958323_Foto_.jpg _default_2012_07_16_00121342467889792660983_Foto_O15L1187.jpg _default_2012_07_16_00121342467965572411773_Foto_.jpg _default_2012_07_16_00121342468019267960366_Foto_.jpg _default_2012_07_16_00121342468839278112970_Foto_.jpg ...
- Opciones especialesLa forma descrita hasta ahora es la más simple de trabajar, pero assniffer también permite trabajar directamente con tarjetas de red en modo promiscuo, es decir, capturando en tiempo real los paquetes (opción -d device) y también permite únicamente extraer los fichero de un tipo específico, texto, vídeo, imágenes, etc. (opción -mimetype MIMETYPE)
Lo que acabamos de descargar es un fichero zip, así que lo descomprimimos y ya está listo para poder ejecutarse. Aquí diferenciamos 2 plataformas, windows y linux.
Nota: En caso de equipos que ejecuten Debian/Ubuntu la compilación puede que os de el siguiente fallo,
shell> make g++ -O2 -s -c -o sniff.o sniff.cpp sniff.cpp: In function 'int main(int, char**)': g++ -O2 -s -c -o tcp.o tcp.cpp g++ -O2 -s -c -o http.o http.cpp http.cpp:41: warning: deprecated conversion from string constant to 'char*' http.cpp: In member function 'void HTTP_context::doWrite(void*, int, unsigned int)': http.cpp:460: error: 'MAX_PATH' was not declared in this scope http.cpp:461: error: 'fn' was not declared in this scope http.cpp:562: error: 'isprint' was not declared in this scope make: *** [http.o] Error 1
La solución es aplicar el siguiente parche al fichero http.cpp,
--- source/assniffer/http.cpp 2006-10-29 00:38:26.000000000 +++ debian/source/assniffer/http.cpp 2008-08-26 10:19:02.000000000 @@ -22,7 +22,7 @@ #include#include #include "platform.h" - +#include #include "pcap.h" #include "http.h" @@ -32,6 +32,8 @@ #include #endif +#define MAX_PATH 256 + // configurable items of http.cpp int g_config_usemime=2; // 1=append, 2=replace extension int g_config_debugfn=0;
Tras aplicarlo, compilar nuevamente y ya todo debería estar correcto.
No hay comentarios :
Publicar un comentario