Doing a packet capture without installing anything on a windows server

Hey guys !!

I hope you are doing great. Down here, things are going well. It's been warm and beautiful and everyone seems to be happy.

Today we are going to talk about how to do a packet capture on a windows server without installing anything.
Have you ever wanted to do a capture to see what's going on into the wire ? This has helped me countless times. I can't tell how important these captures are to help us solving issues.

Not all times, you can install wireshark or any other tool that can do this on the server you want to collect the data from but, did you know windows (2008 R2 and newer) has a builtin command that can do this for us ?
Yeah ! This command is "netsh".

So, let's get started and I will show you how to do this.

Tooling
Although you can capture without installing anything, in order to actually see the data, a tool is required. You can either use Wireshark or Microsoft Message Analyzer. Those are free and you can just google and download them.I feel more comfortable with wireshark. Because of that, there is one more step that is added to the process because "netsh" can only generate an .etl file. Wireshark does not understand this extension and I need to open the .etl file using microsoft message analyzer and export to a .cap file so wireshark can read. I haven't found a way of shorten this path but maybe there is one. If you know one, please let us know on the comments session.

So, what you need is :

1) Be logged on as local administrator on the machine you want to collect the data. Machine must be 2008R2/Win7 or newer;
2) Have microsoft message analyzer installed on another machine somewhere;
3) If you want to use wireshark, you need wireshark installed on a machine somewhere as well.


  1. Log on to the machine you want to collect the data;
  2. Execute a cmd prompt as administrator;
  3. Type this : netsh trace start persistent=yes capture=yes tracefile="C:\temp\myfilenamehere.etl"
  1. This is the simplest syntax and it should fit most of the cases but depending on your specific case, you may need to add additional parameters. In order to view the whole set of parameters , just type netsh trace start /? 

  1. Reproduce the issue so the capture can grab the data and once you are done, go back to the command prompt and type: netsh trace stop
Once you do that, wait until correlation and merge occurs (just keep an eye on the command prompt) and you will end up with a *.etl and a *.cab file.



Next step now is to open the .etl file using microsoft message analyzer. If you want to use wireshark to analyze the data, just export it and it will be exported as a .cap file.







Then you have it folks !!

I hope you have enjoyed this content and thanks for stopping by.


=====================================================

Portugues

E ai pessoal !!

Eu espero que esteja tudo bem com vocês. Aqui, as coisas estão indo bem. Tem feito calor e dias lindos e todo mundo parece feliz.

Hoje vamos falar sobre como fazer uma captura de pacotes em windows sem instalar nada.

Você já quis fazer uma captura para ver o que se passa dentro dos cabos? Isso me ajudou inúmeras vezes. Eu não posso dizer o quão importante essas capturas são para nos ajudar a resolver problemas.

Nem sempre, você pode instalar o wireshark ou qualquer outra ferramenta que possa fazer isso na máquina que você deseja coletar os dados, mas você sabia que o windows (2008 R2/Win 7 e mais recentes) tem um comando interno que pode fazer isso por nós?

Sim ! Este comando é "netsh".

Então, vamos começar e eu vou te mostrar como fazer isso.

Ferramentas

Embora você possa capturar sem instalar nada, para realmente ver os dados, é necessário uma ferramenta. Você pode usar o Wireshark ou o Microsoft Message Analyzer. São gratuitos e você pode apenas achar no google e baixá-los. Eu me sinto mais confortável com wireshark. Por causa disso, há mais uma etapa que é adicionada ao processo porque "netsh" pode gerar apenas um arquivo .etl. O Wireshark não entende essa extensão e eu preciso abrir o arquivo .etl usando o microsoft message analyzer e exportar para um arquivo .cap para que o wireshark possa ler. Eu não encontrei uma maneira de encurtar este caminho, mas talvez haja uma. Se você conhece uma, por favor nos avise na sessão de comentários.

Então, o que você precisa é:

1) Faça o login como administrador local na máquina que você deseja coletar os dados. A máquina deve ser 2008R2 / Win7 ou mais recente;

2) Ter o analisador de mensagens microsoft instalado em outra máquina em algum lugar;

3) Se você quiser usar wireshark, você precisa de wireshark instalado em uma máquina em algum lugar também.

  1. Faça logon na máquina que você deseja coletar os dados;
  2. Execute um prompt de cmd como administrador;
  3. Digite isto: netsh trace start persistente = sim capture = yes tracefile = "C: \ temp \ myfilenamehere.etl"


Esta é a sintaxe mais simples e deve servir para a maioria dos casos, mas dependendo do seu caso específico, você pode precisar adicionar parâmetros adicionais. Para visualizar todo o conjunto de parâmetros, basta digitar netsh trace start /?

Reproduza o problema para que a captura possa pegar os dados e, quando terminar, volte ao prompt de comando e digite: netsh trace stop
Depois de fazer isso, espere até que a correlação e a conversão ocorram (apenas fique de olho no prompt de comando) e você terá um arquivo * .etl e * .cab.

O próximo passo agora é abrir o arquivo .etl usando o Microsoft Message Analyzer. Se você quiser usar o wireshark para analisar os dados, basta exportá-lo e ele será exportado como um arquivo .cap.

Então é isso pessoal !!

Espero que você tenha gostado deste conteúdo e obrigado pela visita.


Comments

Popular posts from this blog

Certification or Degree ??

AWS Systems Manager. No more bastion hosts, nor credentials to run scripts or commands against multiple servers at once ?

Understanding Azure AD Device Management