Estoy tratando de solucionar un problema donde solo tengo tcpdump disponible en un dispositivo. Quiero usar tcpdump para filtrar el tráfico web y solo mostrar el tráfico que contiene ciertas cadenas.
Hago lo siguiente:
tcpdump -nei eth0 -X | grep "something interesting"
La salida es una vista hexadecimal con una línea pr de 16 bytes. No puedo grep estos datos, ya que los datos se presentan en varias líneas.
¿Hay alguna manera para que tcpdump presente los datos capturados en una sola línea? Esto permitiría usar grep para encontrar paquetes interesantes.
linux
networking
tcpdump
Perro come gato mundo
fuente
fuente
tcpdump -nei eth0 -X | grep --line-buffered "something interesting"
lo haré, por razones que no se distinguen, mi respuesta de trabajo válida fue eliminada.Respuestas:
Para aquellos como usted que no pueden usar
ngrep
, he aquí cómo usarawk
para hacer que latcpdump
salida del contenido del paquete sea grepable.Primero, algunos resultados de muestra proporcionados por
tcpdump -x
, para presentar la tarea por delante:Y este es el script de copiar y pegar en el
awk
que puede canalizar la salidapara obtener la siguiente salida grepable
A continuación se muestra una versión comentada del script anterior:
fuente
Desde la página del
tcpdump
manual:Asegúrese de utilizar también la
-s 0
opción para asegurarse de que se muestre todo el paquete.fuente
Es posible que desee echar un vistazo al
ngrep
comando:ngrep -W single -d eth0 'regex to match' 'port 80'
Dónde:
-W single
especifica formato de línea únicaregex to match
significa volcar solo los paquetes que contienen cierta cadena.'port 80'
es un filtro pcap que solo detecta paquetes desde o hacia el puerto 80fuente
La razón por la cual su salida es hexadecimal es la
-X
bandera. Tratar:Obtendrá una salida legible directamente al cli.
fuente
No pude hacer que el script awk hiciera lo que quería y ngrep no funcionaría en una Ethernet a través de USB, así que escribí un pequeño programa en C para unir las líneas de salida de tcpdump para que sean grepable. Está en https://gitlab.com/dargaud/TcpDumpJoin
fuente