3
Utilizando os Comandos Netstat e
Nbtstat
ÍNDICE
1 Introdução ...............................................................................................................3
2 Comando Netstat – Exibindo Informações da Camada 4 ................................................3
2.1 Atividade Prática com Netstat ...............................................................................8
2.2 Utilizando um Programa de “Visual Netstat” ......................................................... 10
3 Comando Nbtstat – Utilizando o Netbios para Obter Informações.................................. 11
3.1 Introdução sobre o Netbios ................................................................................ 11
3.2 O comando Nbtstat ........................................................................................... 11
3.3 Atividade Prática com Nbtstat ............................................................................. 12
1 Introdução
O objetivo desse laboratório é o estudo do uso dos comandos Netstat e Nbtstat.
O comando Netstat é muito útil para verificar informações da camada 4 (transporte), tais como
portas TCP e UDP em uso, estado de conexões, conexões ativas, portas TCP e UDP abertas e
assim por diante. Vamos nesse laboratório estudar o comando via prompt de comando e
também utilizando um programa que permite visualizar mais facilmente as informações
chamado “Visual Netstat”.
O comando Nbtstat é uma ferramenta útil para a solução de problemas de resolução de nomes
NetBIOS e também para a visualização ou busca de informações sobre outros computadores de
rede, por isso vamos estudar mais essa ferramenta que pode nos ajudar a resolver problemas
ou coletar informações úteis sobre computadores que podem estar tentando acessar
indevidamente outra máquina.
Bons estudos!
A seguir apresentamos alguns exemplos de utilização do comando netstat e das opções de linha
de comando disponíveis.
netstat –a: O comando netstat com a opção –a é utilizado na prática para exibir todas
as portas de conexões e de escuta (listening). No exemplo a seguir mostramos um
exemplo do resultado da execução do comando netstat –a em um computador com o
nome micro01. O estado LISTENING significa esperando ou “na escuta”, ou seja,
aceitando conexões na referida porta TCP. O estado ESTABLISHED (estabelecido)
significa que existe uma conexão ativa na respectiva porta TCP.
Conexões ativas
Perceba que outros estados apareceram para as portas TCP, como CLOSE_WAIT e TIME_WAIT,
assim como se o computador estivesse recebendo uma solicitação de outro micro para acessar
um serviço como servidor apareceria o SYN_RCVD, ao passo que se você estivesse tentando
abrir conexão apareceria um SYN_SENT. Segue abaixo uma listagem com os estados que você
pode encontrar as portas TCP utilizando o comando Netstat:
o LISTENING: esse é o estado verdadeiro de uma conexão TCP, ele ocorre quando
um host está esperando um pedido para iniciar uma conexão. São programas,
rotinas ou aplicações que fazem seu computador atuar como um servidor, ou
seja, possibilitando que outros computadores utilizem esses serviços.
o SYN-SENT: esse estado indica que o host enviou um SYN para iniciar a conexão
e está aguardando a resposta SYN-ACK adequada.
o SYN-RCVD: esse estado indica que o host enviou a resposta SYN-ACK depois de
ter recebido o SYN.
o ESTABLISHED: esse estado indica que a conexão foi estabelecida. O host que
iniciou a conexão entra nesse estado depois de receber o SYN-ACK e o host que
responde depois que recebe o ACK. Neste estado está havendo a troca de
informações.
o FIN-WAIT-1: O estado que um host se encontra após ter enviado um pacote
FIN inicial pedindo um fechamento correto da conexão TCP.
o CLOSE-WAIT: O estado da conexão do host que recebeu um FIN inicial e envia
de volta um ACK para confirmar o FIN.
o FIN-WAIT-2: O estado da conexão do host que recebeu a resposta ACK para
seu FIN inicial, e indica que agora está esperando um FIN final.
o LAST-ACK: Esse estado indica que o host acabou de enviar seu segundo FIN,
que é necessário para encerramento correto da conexão TCP, e está aguardando
uma confirmação.
Para o protocolo UDP não há essa designação de estados de porta, pois ele não é orientado a
conexão, por isso se existe um serviço instalado como servidor em UDP a porta está aberta e
aparece na saída do comando com um *:*. Os serviços UDP são complexos de serem tratados
em termos de segurança, pois uma vez disponibilizado não há como verificar os estados da
conexão assim como para o TCP, por isso eles são tratados com muita cautela por
administradores de segurança.
netstat –e: Esta opção exibe estatísticas sobre a interface Ethernet do computador. A
interface Ethernet é, normalmente, a placa de rede local, que conecta o computador a
rede da empresa. Esta opção pode ser combinada com a opção –s, que será descrita
mais adiante. A seguir um exemplo da execução do comando.
netstat –n: Exibe endereços e números de porta em forma numérica (em vez de tentar
pesquisar o nome), porém não mostram portas abertas ou inativas, somente as
conexões ativas, em fase de estabelecimento ou em fase de finalização. Este comando é
útil quando se quer descobrir os IPs que estão conectados a um determinado
computador. A seguir um exemplo da execução do comando.
netstat –s: Exibe estatística por protocolo. Por padrão, são mostradas estatísticas para
TCP, UDP, ICMP e IP. A opção -p pode ser utilizada para especificar um ou mais
protocolos para os quais devem ser exibidas estatísticas. A seguir um exemplo da
execução do comando.
Estatísticas de IP
Estatísticas de ICMP
Recebidos Enviados
Mensagens 2767 4037
Erros 0 0
Destino inatingível 18 1280
Tempo excedido 0 0
Problemas de parâmetro 0 0
Retardamentos de origem 4 0
Redirecionamentos 0 0
Echos 1134 1623
Respostas de eco 1611 1134
Carimbos de data/hora 0 0
Respostas de carimbos de data/hora 0 0
Máscaras de endereço 0 0
Respostas máscaras end. 0 0
Estatísticas de TCP
Estatísticas de UDP
netstat –p: Mostra conexões para o protocolo especificado por protocolo, que pode ser
tcp ou udp. Se utilizado com a opção -s para exibir estatísticas por protocolo, protocolo
pode ser tcp, udp, icmp ou ip. . A seguir um exemplo da execução do comando onde são
exibidas informações somente sobre o protocolo ip: netstat –s –p ip.
Opção –o: Quando você usa o comando netstat junto com o parâmetro -o , o comando
exibe o PID (Process ID – identificação do processo) associado a cada conexão. Ele
pode ser utilizado para identificar qual o processo ou programa está utilizando
determinada conexão. Com esse número você pode identificar o processo indo no
gerenciador de tarefas do Windows (Task Manager) e clicando na aba processos. Existe
também a opção –b que pode ser utilizada para mostrar o executável que está
envolvido com aquela conexão, porém esse comando exige privilégios e você deve
executar o prompt de comandos como administrador. Veja o exemplo abaixo do
comando netstat -o.
O objetivo dessa prática é primeiro você visualizar que portas estão abertas no seu
computador, ou seja, as portas TCP em estado de escuta (LISTENING) e as portas UDP com
“*:*”. Vamos também aproveitar e utilizar a opção “-ao” para listar as portas abertas e mostrar
o PID do processo ou programa “dono” daquela porta ou conexão. Siga os passos abaixo:
1. Abra o prompt de comandos;
2. Digite: netstat –ao;
3. Agora procure as portas com estado de LISTENING e veja quantos programas ou
processos estão no seu computador com portas TCP abertas, ou seja, que podem atuar
como servidor;
4. Você consegue confirmar o programa ou processo associado à conexão ou porta indo no
task manager (gerenciador de tarefas) e na aba Processos procure o PID mostrado na
saída do comando.
Mesmo assim, caso o PID que você procura não apareça clique em “Mostrar Processos de Todos
os Usuários” que está em um checkbox na canto inferior esquerdo dessa tela.
Não se assuste ou se preocupe com as portas abertas, pois vários programas instalados como
os peer-to-peer ou até mesmo o Windows possuem vários processos internos que utilizam o
TCP/IP para funcionar, na dúvida procure na Internet informações sobre o processo ou
programa que você tem dúvidas ou suspeita ser algo malicioso, como um vírus, trojan, spyware
e assim por diante.
Outra pesquisa com o resultado do Netstat que você pode realizar é através dos números de
porta TCP ou UDP, por exemplo, se você verificar que a porta 80 do TCP está aberta, em estado
de LISTENING, significa que provavelmente você tem um programa HTTP Server (servidor de
web) instalado no seu computador.
Aproveite o comando realizado o procure quais portas bem conhecidas estão abertas em seu
computador (LISTENING ou Escuta) e verifique no link abaixo o serviço associado a cada uma
delas:
http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
Para facilitar, veja a execução dos comandos que você deve utilizar nessa prática nas telas
abaixo.
Agora vamos procurar que processo ou programa gerou a porta no estado de escuta através do
protocolo TCP, porta 49152 e ID de processo 588. Vamos ao gerenciador de tarefas procurar
esse PID.
Outra maneira também de procurar é verificar a porta TCP ou UDP através do seu número,
porém nem sempre o programa que está utilizando a porta pode ser legítimo, por isso esse
método ensina permite que você verifique se realmente a porta pertence a um programa
confiável.
Agora pratique o comando, analise os processos que estão sendo utilizados no seu computador
e na dúvida procure o que significa utilizando uma ferramenta de pesquisa como o Google ou o
Bing.
Perceba que todas as informações que tivemos que procurar utilizando o task manager estão
disponíveis de maneira mais fácil e o programa faz uma atualização do comando por padrão de
30 em 30 segundos.
O TCP/IP oferece muitas opções para resolução de nome NetBIOS, inclusive pesquisa de cache
local, consulta ao servidor WINS, difusão, consulta ao servidor DNS e pesquisa aos arquivos
Lmhosts e Hosts, porém nas redes atuais esses serviço caiu em desuso, mas mesmo assim
podemos utilizá-lo para obter informações úteis sobre outros computadores na rede.
Vamos utilizar nessa prática apenas duas sintaxes do comando Nbtstat, conforme abaixo:
nbtstat -a nome-do-computador-remoto
nbtstat -A endereço-IP-remoto
Portanto, para fazer a consulta NetBIOS das informações de um computador remoto podemos
utilizar a opção “-a” e o nome do computador ou “-A” e o endereço IP do computador. Vamos
ver dois exemplos e verificar as informações que o nbtstat é capaz de fornecer.
Note que ele testa via todas as interfaces e o computador de laboratório com IP 192.168.1.11
foi encontrado na rede sem fio do computador. Além disso, o comando traz o nome do
computador, grupo de trabalho ou domínio que ele pertence, informações sobre o usuário se
você estiver em uma rede com domínio e também o endereço MAC do computador remoto.
Agora vamos fazer a busca pelo nome do computador de laboratório chamado DLTEC09, porém
o resultado a ser mostrado será o mesmo.
Esta prática depende de ter mais de um computador na sua rede LAN com sistema operacional
Windows ou com um sistema operacional que tenha o serviço de NetBIOS habilitado.
Vamos utilizar a tabela ARP para pesquisar informações de IPs aprendidos dinamicamente por
ela e verificar se pertence a um computador com NetBIOS ativo. Siga os passos abaixo.
Se você está tentando realizar o comando em sua empresa e ele não funcionar pode ser que o
serviço esteja bloqueado nas máquinas, nesse caso tente verificar com seu administrador de
redes.