Captura completa con tcpdump
El tcpdump, junto con el strace, son las dos grandes herramientas para la solución de problemas. Veremos algunas opciones útiles del tcpdump para obtener las trazas completas.
tcpdump sin parámetros hace el dump de la primera interfaz de red, por lo que si nos interesa otra debemos usar el parámetro -i:
# tcpdump -i eth1 tcpdump: WARNING: eth1: no IPv4 address assigned tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes (...)
Entre los mensajes que nos encontramos veremos que hace una traducción DNS, por lo que aún genera más tráfico. Para evitar eso se pueden usar los parámetros -n y -nn.
Sin los parámetros veriamos:
# tcpdump -i eth0 (...) 11:38:26.958407 IP esturion.ssh > croscat.nmasoverip: P 365848:365996(148) ack 1613 win 63784
Con una n veriamos que no traduce a nombre las IPs pero si los puetos:
# tcpdump -ni eth0 (...) 11:38:36.926776 IP 10.7.1.2.ssh > 10.20.0.10.nmasoverip: P 336072:336220(148) ack 1353 win 63784
Mientras que con las dos n no traduciria ni puertos ni IPs:
# tcpdump -nni eth0 (...) 11:40:37.529014 IP 10.7.1.2.22 > 10.20.0.10.1242: P 512584:512732(148) ack 2081 win 63784
Para especificar cierto tráfico podemos definir filtros, por ejemplo por puerto:
# tcpdump -nni eth0 'port 80' tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 11:45:02.504995 IP 172.3.0.10.4766 > 10.3.6.1.80: S 4104893615:4104893615(0) win 65535 <mss 1260,nop,nop,sackOK> 11:45:02.517029 IP 10.3.6.1.80 > 172.3.0.10.4766: S 504755464:504755464(0) ack 4104893616 win 5840 <mss 1460,nop,nop,sackOK> 11:45:02.508968 IP 172.3.0.10.4766 > 10.3.6.1.80: . ack 1 win 65535 11:45:02.511055 IP 172.3.0.10.4766 > 10.3.6.1.80: P 1:506(505) ack 1 win 65535 11:45:02.511067 IP 10.3.6.1.80 > 172.3.0.10.4766: . ack 506 win 6432
Si además queremos guardar la captura lo podemos hacer mediante la opción -w:
# tcpdump -nni eth0 'port 80' -w port80.pcap tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
El problema que nos encontraremos es que por defecto solo guarda un trozo del paquete (por defecto los primeros 96 bytes).
# strings port80.pcap m[yq; bHTTP/1.0 200 OK Date: Mon, 29 l[yq; b"http://systemadmin.es/xmlrpc. [yq; XIMd k[yq; r: el[3], vote_type: el[4] }, XI|d j[yq; admin.es -->
Añadiendo el parámetro -s podemos indicar a tcpdump que capture todo el paquete:
# tcpdump -nni eth0 'port 80' -w port80.pcap -s 0 tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
Lo podemos ver mediante strings:
# strings port80.pcap |GET /search?sourceid=navclient-ff&features=Rank&client=navclient-auto-ff&googleip=O;null;197&ch=8e36362aa&q=info:http%3A%2F%2Fsystemadmin.es%2F HTTP/1.0 Host: toolbarqueries.google.es User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5 GoogleToolbarFF 3.1.20081010 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300
Relacionados
Imprimir
Deja un comentario: