Un sniffer HTTP gratuito para todo el tráfico a sitios web de host local realizado desde cualquier cliente

Quiero monitorear todo el tráfico HTTP a uno de mis sitios web de host local que estoy ejecutando en el depurador de Visual Studio, que aloja el sitio web en IIS Express, mientras mi sesión de depuración está en curso.

He estado usando Fiddler durante muchos años, junto con herramientas de desarrollo en los navegadores más populares. Sin embargo, todos estos son proxies para navegadores. No capturan la actividad entre un tipo diferente de cliente que no sea un navegador y un sitio web. Por ejemplo, si tengo una aplicación .NET MVC que envía una solicitud HTTP usando la System.Net.HttpClientclase a una API web ASP.NET, ambas alojadas en la misma computadora, Fiddler no captura ese tráfico y, por razones obvias, tampoco lo hace ninguno de los navegadores. porque no están involucrados en esa solicitud.

Quiero capturar todo el tráfico HTTP (solicitudes y respuestas) de cualquier tipo de cliente a uno de mis sitios web alojados en localhost.

¿Puedo hacer algo para que Fiddler haga eso? Alternativamente, ¿hay alguna herramienta gratuita que me ayude a hacer eso?

¿Probablemente te refieres a Windows? En caso afirmativo, agregue una etiqueta.
¿Has mirado en Wireshark? No estoy seguro de si ofrecerá lo que buscas.
Según tengo entendido, el problema no es WinPCAP, sino cómo la pila de red de Windows maneja el tráfico de bucle invertido.
@MrSchism sigue siendo un problema de WinPCAP.
Usé Commview pero no es gratis ;(
Pruebe Npcap: 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 ( nmap.org ), así que informe cualquier problema en la lista de desarrollo de Nmap ( seclists.org/nmap-dev ).

Respuestas (4)

Hay una buena publicación de blog aquí que describe el uso de secuencias de comandos netcat , wireshark y PowerShell para reenviar el tráfico localhost a su puerta de enlace predeterminada y viceversa.

Una advertencia aparente es que puede hacer que vea tráfico doble (saliente y entrante). La solución es cambiar su filtro de captura en consecuencia.

Si estuviera capturando en mi sistema local, iría con

http and ip.src==192.168.1.2

(pero obviamente usando la IP de tu computadora). Eso mostraría solo los paquetes HTTP que salen de su computadora. Eso debería reducir la cantidad de paquetes en lugar de capturarlos en el retorno (dst.ip), que también mostraría los sitios web que estaba navegando.

Tal vez quieras investigar Wireshark .

Wireshark es una herramienta gratuita para el monitoreo de redes. Supervisa el tráfico completo desde su interfaz de red (incluidos todos los protocolos ARP/TCP/etc.), pero puede filtrar el tráfico para ver solo todas las solicitudes y respuestas http.

El filtro para ver solo HTTP es HTTP (la gente suele pasarlo por alto, para ser honesto).
Wireshark usa WinPCAP (AFAIR Fiddler también lo usa), que es la única biblioteca rastreadora que conozco que no puede rastrear el tráfico localhost en Windows. Afirman que "Windows es malo" en sus preguntas frecuentes. Gracioso, cualquier otro sniffer funciona. Oh, ya lo comenté :)

Aquí hay una biblioteca .NET para eso llamada RunscopeMessageHandler. Proyecto en GitHub y más información sobre la depuración de .NET HTTP aquí . Necesitará una cuenta gratuita de Runscope . Es una excelente manera de capturar todo el tráfico HTTP iniciado desde su cliente: solicitud, respuesta, URI, encabezados, etc. Todo está indexado, se puede buscar y se presenta de manera muy clara.

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/ ).