Captura de tráfico de localhost de Wireshark [cerrado]

117

Escribí una aplicación de servidor simple en C que se ejecuta en localhost. ¿Cómo capturar el tráfico de localhost usando Wireshark?

Udara SS Liyanage
fuente
3
Si bien soy viejo, sigo votando para reabrir por razones de coherencia. Esta es una pregunta válida, y en mi humilde opinión lo suficientemente estrecha (el problema específico es "localhost")
Marcel

Respuestas:

69

Si está utilizando Windows , no es posible , lea a continuación. En su lugar, puede usar la dirección local de su máquina y luego podrá capturar cosas. Consulte CaptureSetup / Loopback .

Resumen: puede capturar en la interfaz loopback en Linux, en varios BSD, incluido Mac OS X, y en Digital / Tru64 UNIX, y es posible que pueda hacerlo en Irix y AIX, pero definitivamente no puede hacerlo en Solaris, HP -UX ... .

Aunque la página menciona que esto no es posible en Windows usando solo Wireshark, en realidad puede grabarlo usando una solución alternativa como se menciona en una respuesta diferente .


EDITAR: Unos 3 años después, esta respuesta ya no es completamente correcta. La página vinculada contiene instrucciones para realizar capturas en la interfaz de bucle invertido .

cnicutar
fuente
La respuesta de feuGene realmente funciona.
GWLlosa
@GWLlosa Sí. Puede utilizar la dirección local de su máquina .
cnicutar
7
Descubrí que no era suficiente simplemente poner su propia IP en Wireshark en lugar de loopback; agregar la ruta era necesario para que funcionara en mi situación.
GWLlosa
1
Gracias. En OS X, la interfaz de loopback es lo0. Al parecer, elegir en1 o lo que sea su valor predeterminado no funcionará.
sudo
Para configurar el adaptador de bucle invertido, encontré útil este video de YouTube. youtube.com/watch?v=KsWICPPO_N8
developer747
51

Por alguna razón, ninguna de las respuestas anteriores funcionó en mi caso, así que publicaré algo que funcionó. Hay una pequeña joya llamada RawCap que puede capturar el tráfico localhost en Windows. Ventajas:

  • ¡solo 17 kB!
  • no se necesitan bibliotecas externas
  • extremadamente simple de usar (simplemente inícielo, elija la interfaz de bucle invertido y el archivo de destino y eso es todo)

Una vez capturado el tráfico, puede abrirlo y examinarlo en Wireshark normalmente. La única desventaja que encontré es que no puede establecer filtros, es decir, debe capturar todo el tráfico de localhost que puede ser pesado. También hay un error con respecto a Windows XP SP 3.

Algunos consejos más:

Miljen Mikic
fuente
1
no se requiere configuración y es bastante simple.
vibhu
Y puede hacer que Wireshark lea la salida de RawCap al instante, brindándole captura en vivo. Vea mi respuesta para más detalles.
Richard Kiefer
48

En la plataforma Windows, también es posible capturar el tráfico del host local mediante Wireshark. Lo que debe hacer es instalar el adaptador de bucle invertido de Microsoft y luego olerlo.

cifrado
fuente
ciphor, ¿lo ha hecho con éxito? esto está en directa contradicción con la respuesta de cnicutar.
feuGene
sí, lo he hecho con éxito.
cifrado
¿Y cómo? No lo hice funcionar.
schlamar
18
Conseguí que esto funcionara de todos modos en Win 7. Administrador de dispositivos -> Agregar hardware heredado -> Elegiré -> Redes -> Microsoft -> Adaptador de bucle invertido. Una vez que esté instalado, configúrelo con una dirección IP de su elección. Luego: reinstale wirehark para que reinstale el controlador de captura en la nueva interfaz; esto debe realizarse cada vez que agregue nuevas interfaces a Windows, loopback o real.
antiduh
4
Seguí las instrucciones de @antiduh en Win 7 y, aunque vi algunas consultas de netbios, no vi tráfico HTTP en localhost.
Carlos Rendon
26

En realidad, no he probado esto, pero esta respuesta de la web suena prometedora:

Wireshark no puede capturar paquetes locales en Windows XP debido a la naturaleza de la pila TCP de Windows. Cuando los paquetes se envían y reciben en la misma máquina, parece que no cruzan el límite de la red que monitorea Wirehark.

Sin embargo, hay una forma de evitar esto, puede enrutar el tráfico local a través de su puerta de enlace de red (enrutador) configurando una ruta estática (temporal) en su máquina con Windows XP.

Supongamos que su dirección IP de XP es 192.168.0.2 y la dirección de su puerta de enlace (enrutador) es 192.168.0.1, puede ejecutar el siguiente comando desde la línea de comandos de Windows XP para forzar todo el tráfico local hacia afuera y hacia atrás a través del límite de la red, de modo que Wireshark pueda rastrear el datos (tenga en cuenta que wirehark informará los paquetes dos veces en este escenario, una cuando salgan de su PC y otra cuando regresen).

route add 192.168.0.2 mask 255.255.255.255 192.168.0.1 metric 1

http://forums.whirlpool.net.au/archive/1037087 , accedido hace un momento.

feuGene
fuente
6
Probé esto y descubrí que funcionaba muy bien.
GWLlosa
no funciona en win 7 32bit
vantrung -cuncon
11

Pruebe Npcap: https://github.com/nmap/npcap , se basa en WinPcap y admite la captura de tráfico de bucle invertido en Windows. Npcap es un subproyecto de Nmap ( http://nmap.org/ ), así que informe cualquier problema en la lista de desarrollo de Nmap ( http://seclists.org/nmap-dev/ ).

Yang Luo
fuente
Opción n. ° 1 de la documentación de Starting from Windows Vista: Npcap is an update of WinPcap using NDIS 6 Light-Weight Filter (LWF), done by Yang Luo for Nmap project during Google Summer of Code 2013 and 2015. Npcap has added many features compared to the legacy WinPcap.
Wireshark
Puede descargar el instalador desde aquí: nmap.org/npcap
Wayne Phipps
2
Es bueno saber que NPcap tiene algunas limitaciones de licencia para su uso en entornos empresariales.
Jan Smrčina
10

Puede ver el tráfico de loopback en vivo en Wireshark haciendo que lea la salida de RawCap al instante. cmaynard describe este ingenioso enfoque en los foros de Wireshark . Lo citaré aquí:

[...] si desea ver el tráfico en vivo en Wireshark, aún puede hacerlo ejecutando RawCap desde una línea de comandos y ejecutando Wireshark desde otra. Suponiendo que tiene la cola de cygwin disponible, esto podría lograrse usando algo como esto:

cmd1: RawCap.exe -f 127.0.0.1 dumpfile.pcap

cmd2: tail -c +0 -f dumpfile.pcap | Wireshark.exe -k -i -

Requiere la cola de cygwin, y no pude encontrar una manera de hacer esto con las herramientas listas para usar de Windows. Su enfoque funciona muy bien para mí y me permite usar todas las capacidades de filtro de Wiresharks en el tráfico de loopback capturado en vivo.

Richard Kiefer
fuente
3
Para mí, la parte esencial fue iniciar el segundo comando cmd con cierta demora, de lo contrario, Wireshark no podría leer el archivo .pcap. Es de suponer que, para empezar, es necesario que haya algo de tráfico registrado.
Richard Kiefer
Esta debería ser una respuesta aceptada (es suficiente ejecutar cmd2 desde git bash)
fider
4
Una actualización : Netresec acaba de anunciar hoy (30 de enero de 2020) una nueva versión de RawCap que ahora admite la escritura en una tubería o en stdout. Entonces, a partir de hoy, la solución proporcionada anteriormente se puede simplificar de la siguiente manera, sin tailnecesidad: RawCap.exe -q 127.0.0.1 - | Wireshark.exe -i - -k Puede leer más sobre las nuevas funciones de RawCap en la página de anuncios de RawCap Redux aquí: netresec.com/?page=Blog&month=2020-01&post=RawCap -Redux
Christopher Maynard
8

Para Windows ,

No puede capturar paquetes para Loopback local en Wireshark , sin embargo, puede usar un programa muy pequeño pero útil llamado RawCap ;

RawCap

Ejecute RawCap en el símbolo del sistema y seleccione la pseudo-interfaz de bucle invertido (127.0.0.1), luego simplemente escriba el nombre del archivo de captura de paquetes ( .pcap )

Una demostración simple es la siguiente;

C:\Users\Levent\Desktop\rawcap>rawcap
Interfaces:
 0.     169.254.125.51  Local Area Connection* 12       Wireless80211
 1.     192.168.2.254   Wi-Fi   Wireless80211
 2.     169.254.214.165 Ethernet        Ethernet
 3.     192.168.56.1    VirtualBox Host-Only Network    Ethernet
 4.     127.0.0.1       Loopback Pseudo-Interface 1     Loopback
Select interface to sniff [default '0']: 4
Output path or filename [default 'dumpfile.pcap']: test.pcap
Sniffing IP : 127.0.0.1
File        : test.pcap
Packets     : 48^C
Levent Divilioglu
fuente
6

No puede capturar loopback en Solaris, HP-UX o Windows; sin embargo, puede evitar esta limitación con mucha facilidad utilizando una herramienta como RawCap .

RawCap puede capturar paquetes sin procesar en cualquier IP, incluido 127.0.0.1(localhost / loopback). Rawcap también puede generar un pcaparchivo. Puede abrir y analizar el pcaparchivo con Wireshark .

Consulte aquí para obtener detalles completos sobre cómo monitorear localhost usando RawCap y Wireshark.

cmd
fuente
2

Sí, puede monitorear el tráfico del host local usando el adaptador de bucle invertido de Npcap

melwinalm
fuente