No estoy seguro de la sintaxis exacta de tcpdump... de hecho, he marcado esta pregunta como favorita porque me gustaría saberla. Pero como solución alternativa, puedes intentar usarlo tcpflow. Funciona esencialmente de la misma manera, pero imprime la salida ASCII mucho mejor; excluyó los encabezados e imprime los paquetes secuencialmente como un flujo, por lo que es más fácil de leer y seguir en ocasiones que tcpdump.
A veces no tienes otras herramientas y para echar un vistazo rápido a la carga útil es suficiente. No es bueno si necesita la carga útil exacta para la inyección o un análisis exacto, por supuesto.
Si solo necesita la parte ASCII, puede usar: tcpdump -s 1500 -A -l -i eth0 '(port 6667) and (length > 74)'|sed 's/\.//g'o con ngrep:ngrep -d eth0 -lq . '(port 6667) and (length > 74)' |sed -rn '/^ /s/\.//gp'
Respuestas:
Como sugiere Josh, tcpflow puede imprimir solo los datos del paquete TCP en un archivo o STDOUT. Puede canalizar tcpdump a tcpflow de esta manera:
Para ver solo un lado de la conversación, puede usar filtros para tcpdump, por ejemplo
dst port 23
.fuente
tcpflow
como root?No estoy seguro de la sintaxis exacta de
tcpdump
... de hecho, he marcado esta pregunta como favorita porque me gustaría saberla. Pero como solución alternativa, puedes intentar usarlotcpflow
. Funciona esencialmente de la misma manera, pero imprime la salida ASCII mucho mejor; excluyó los encabezados e imprime los paquetes secuencialmente como un flujo, por lo que es más fácil de leer y seguir en ocasiones quetcpdump
.fuente
Siento que la solución más elegante es simplemente deshacerse de tcpdump. No hay tuberías de ningún tipo:
Y eso es.
fuente
Una forma rápida y sucia de hacer esto es filtrar la salida a través de cadenas:
A veces no tienes otras herramientas y para echar un vistazo rápido a la carga útil es suficiente. No es bueno si necesita la carga útil exacta para la inyección o un análisis exacto, por supuesto.
fuente
Si solo necesita la parte ASCII, puede usar:
tcpdump -s 1500 -A -l -i eth0 '(port 6667) and (length > 74)'|sed 's/\.//g'
o con ngrep:ngrep -d eth0 -lq . '(port 6667) and (length > 74)' |sed -rn '/^ /s/\.//gp'
fuente
Tuve el mismo problema la semana pasada: utilicé la interfaz gráfica de Wirehark e hice una "copia ascii legible" para los paquetes interesantes.
Estaba (con éxito) tratando de precisar un problema con una solicitud http a un servicio web y su respuesta XML.
fuente