Captura de tráfego de host local Wireshark [fechado]

117

Eu escrevi um aplicativo de servidor simples em C que é executado em localhost. Como capturar o tráfego localhost usando o Wireshark?

Udara SS Liyanage
fonte
3
Embora velho, ainda voto pela reabertura por motivos de consistência. Esta é uma pergunta válida e IMHO restrita o suficiente (o problema específico sendo "localhost")
Marcel

Respostas:

69

Se você estiver usando o Windows , não é possível - leia abaixo. Em vez disso, você pode usar o endereço local de sua máquina e, então, poderá capturar coisas. Consulte CaptureSetup / Loopback .

Resumo: você pode capturar na interface de loopback no Linux, em vários BSDs, incluindo Mac OS X e no Digital / Tru64 UNIX, e pode ser capaz de fazer isso no Irix e AIX, mas definitivamente não pode fazer no Solaris, HP -UX ... .

Embora a página mencione que isso não é possível no Windows usando apenas o Wireshark, você pode realmente gravá-lo usando uma solução alternativa, conforme mencionado em uma resposta diferente .


EDIT: Cerca de 3 anos depois, esta resposta não é mais completamente correta. A página vinculada contém instruções para captura na interface de loopback .

cnicutar
fonte
A resposta de feuGene realmente funciona.
GWLlosa
@GWLlosa Sim. Você pode usar o endereço local de sua máquina .
cnicutar
7
Descobri que não era suficiente simplesmente colocar seu próprio IP no wirehark em vez de loopback; adicionar a rota foi necessário para que funcionasse na minha situação.
GWLlosa
1
Obrigado. No OS X, a interface de loopback é lo0. Escolher en1 ou qualquer que seja o seu padrão não funcionará, ao que parece.
sudo
Para configurar o adaptador de loopback, achei este vídeo do youtube útil. youtube.com/watch?v=KsWICPPO_N8
developer747
51

Por algum motivo, nenhuma das respostas anteriores funcionou no meu caso, então postarei algo que funcionou. Existe uma pequena jóia chamada RawCap que pode capturar o tráfego localhost no Windows. Vantagens:

  • apenas 17 kB!
  • nenhuma biblioteca externa necessária
  • extremamente simples de usar (basta iniciá-lo, escolher a interface de loopback e o arquivo de destino e pronto)

Depois que o tráfego foi capturado, você pode abri-lo e examiná-lo normalmente no Wireshark. A única desvantagem que encontrei é que você não pode definir filtros, ou seja, você tem que capturar todo o tráfego localhost que pode ser pesado. Há também um bug em relação ao Windows XP SP 3.

Mais alguns conselhos:

Miljen Mikic
fonte
1
nenhuma configuração necessária e era bastante simples.
vibhu
E você pode fazer com que o Wireshark leia a saída do RawCap instantaneamente, proporcionando captura ao vivo. Veja minha resposta para detalhes.
Richard Kiefer
48

Na plataforma Windows, também é possível capturar o tráfego do host local usando o Wireshark. O que você precisa fazer é instalar o adaptador de loopback da Microsoft e detectá-lo.

cifra
fonte
ciphor, você fez isso com sucesso? isso está em contradição direta com a resposta do cnicutar.
FeuGene
sim, fiz isso com sucesso.
ciphor
E como? Não consegui fazer funcionar.
schlamar
18
Fiz isso funcionar da mesma forma no Win 7. Gerenciador de dispositivos -> Adicionar hardware herdado -> Selecionarei -> Rede -> Microsoft -> Adaptador de loopback. Depois de instalado, configure-o com um endereço IP de sua escolha. Então: reinstale o WireShark para que ele reinstale o driver de captura na nova interface - isso deve ser feito sempre que você adicionar novas interfaces ao windows, loopback ou real.
antiduh
4
Seguiu as instruções de @antiduh no Win 7 e, embora tenha visto algumas consultas netbios, não vi tráfego HTTP no localhost.
Carlos Rendon
26

Na verdade, não tentei isso, mas esta resposta da web parece promissora:

O Wireshark não pode realmente capturar pacotes locais no Windows XP devido à natureza da pilha TCP do Windows. Quando os pacotes são enviados e recebidos na mesma máquina, eles não parecem cruzar o limite da rede que monitora wirehark.

No entanto, há uma maneira de contornar isso, você pode rotear o tráfego local através de seu gateway de rede (roteador) configurando uma rota estática (temporária) em sua máquina com Windows XP.

Digamos que o endereço IP do XP seja 192.168.0.2 e o endereço do gateway (roteador) seja 192.168.0.1, você pode executar o seguinte comando na linha de comando do Windows XP para forçar todo o tráfego local para fora e para trás através dos limites da rede, para que o WireShark possa rastrear o dados (note que o WireShark reportará os pacotes duas vezes neste cenário, uma vez quando eles saem do seu pc e uma vez quando eles retornam).

route add 192.168.0.2 mask 255.255.255.255 192.168.0.1 metric 1

http://forums.whirlpool.net.au/archive/1037087 , acessado agora.

feuGene
fonte
6
Eu tentei isso e descobri que funcionou muito bem.
GWLlosa
não funciona no win 7 32bit
vantrung -cuncon
11

Por favor, tente Npcap: https://github.com/nmap/npcap , ele é baseado em WinPcap e suporta captura de tráfego de loopback no Windows. Npcap é um subprojeto do Nmap ( http://nmap.org/ ), portanto, relate quaisquer problemas na lista de desenvolvimento do Nmap ( http://seclists.org/nmap-dev/ ).

Yang Luo
fonte
Opção nº 1 da documentação do 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
Você pode baixar o instalador aqui: nmap.org/npcap
Wayne Phipps
2
É bom saber que NPcap possui algumas limitações de licença para uso em ambientes de negócios.
Jan Smrčina
10

Você pode ver o tráfego de loopback ao vivo no Wireshark fazendo com que ele leia a saída do RawCap instantaneamente. cmaynard descreve essa abordagem engenhosa nos fóruns do Wireshark . Vou citar aqui:

[...] se você deseja visualizar o tráfego ao vivo no Wireshark, você ainda pode fazer isso executando RawCap em uma linha de comando e executando o Wireshark em outra. Supondo que você tenha a cauda do cygwin disponível, isso pode ser feito usando algo como:

cmd1: RawCap.exe -f 127.0.0.1 dumpfile.pcap

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

Requer a cauda do cygwin, e não consegui encontrar uma maneira de fazer isso com as ferramentas prontas para usar do Windows. Sua abordagem funciona muito bem para mim e me permite usar todos os recursos de filtro do Wiresharks no tráfego de loopback capturado ao vivo.

Richard Kiefer
fonte
3
Para mim, o essencial era iniciar o segundo comando cmd com algum atraso, caso contrário o Wireshark não conseguiria ler o arquivo .pcap. Presumivelmente, porque precisa haver algum tráfego registrado nele para começar.
Richard Kiefer
Essa deve ser uma resposta aceita (é suficiente executar cmd2 do git bash)
fider
4
Uma atualização : a Netresec acaba de anunciar hoje (30 de janeiro de 2020) uma nova versão do RawCap que agora suporta gravação em um pipe ou em stdout. Portanto, a partir de hoje, a solução fornecida acima pode ser simplificada da seguinte forma, sem necessidade tail: RawCap.exe -q 127.0.0.1 - | Wireshark.exe -i - -k Você pode ler mais sobre os novos recursos do RawCap na página de anúncio do RawCap Redux aqui: netresec.com/?page=Blog&month=2020-01&post=RawCap -Redux
Christopher Maynard
8

Para Windows ,

Você não pode capturar pacotes para Loopback local no Wireshark , entretanto, você pode usar um programa muito pequeno, mas útil, chamado RawCap ;

RawCap

Execute RawCap no prompt de comando e selecione Loopback Pseudo-Interface (127.0.0.1) e então escreva o nome do arquivo de captura de pacote ( .pcap )

Uma demonstração simples é a seguinte;

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
fonte
6

Você não pode capturar o loopback no Solaris, HP-UX ou Windows, no entanto, você pode facilmente contornar essa limitação usando uma ferramenta como RawCap .

RawCap pode capturar pacotes brutos em qualquer ip, incluindo 127.0.0.1(localhost / loopback). Rawcap também pode gerar um pcaparquivo. Você pode abrir e analisar o pcaparquivo com o Wireshark .

Veja aqui os detalhes completos sobre como monitorar o host local usando RawCap e Wireshark.

cmd
fonte
2

Sim, você pode monitorar o tráfego localhost usando o Npcap Loopback Adapter

Melwinalm
fonte