Segurança em Redes – Prof. Rafael R. Obelheiro – Semestre: 2009.1 Laboratório 1 — Wireshark e Nmap 1 Objetivo O objetivo deste laboratório é demonstrar o funcionamento de ferramentas usadas em segurança de redes para realizar varreduras em sistemas e análise de tráfego. 2 Descrição do Experimento O experimento será realizado em três fases principais: I. Levantamento de informações sobre o ambiente local; II. Fundamentos de captura e análise de tráfego com Wireshark; III. Realização de varreduras de rede usando Nmap. I Levantamento de informações locais Inicialmente, obtenha os parâmetros de configuração de rede do seu computador. 1. Abra uma janela de terminal (clique no segundo ı́cone na parte inferior da tela). 2. Execute o comando ifconfig para obter as informações de configuração da interface de rede eth0. 3. Execute o comando netstat -rn para exibir a tabela de roteamento do host, e descubra o endereço IP do gateway padrão (correspondente ao destino 0.0.0.0). Com base nas informações obtidas com os comandos acima, responda: I.a) Qual o endereço IP da interface de rede eth0? I.b) Qual o endereço de broadcast da rede local? I.c) Qual a máscara de sub-rede usada nessa rede? I.d) Qual o endereço IP do gateway padrão da rede? II Análise de tráfego com Wireshark Para esta fase, será necessário abrir uma outra janela de terminal, ou uma outra aba na janela já aberta (clique com o botão direito, New Session → Shell). Siga então os seguintes passos: 1. Inicie o Wireshark (digite wireshark & na linha de comando). Uma vez iniciado o programa, faça o seguinte: i. Liste as interfaces disponı́veis para captura (clique no primeiro ı́cone abaixo do menu ou em Capture → Interfaces. . . ); ii. Na linha correspondente à interface Any, clique em Options; iii. No campo Capture Filter, digite port 4444; iv. Clique em Start. Ignore o aviso de que a interface Any não funciona em modo promı́scuo. 2. No terminal 1, execute o comando nc -l -p 4444. Esse comando abre um socket TCP na porta 4444 e exibe o que for recebido por essa porta na saı́da padrão (neste caso, o próprio terminal). 1 3. No terminal 2, execute o comando echo teste | nc localhost 4444. Verifique o que acontece no outro terminal. Interrompa as execuções nos dois terminais com Ctrl-C. 4. No terminal 2, execute o comando echo teste 2 | nc localhost 4444. Verifique o que acontece no outro terminal. 5. No terminal 2, execute o comando echo teste 3 | nc -u localhost 4444. Verifique o que acontece no outro terminal. Interrompa as execuções nos dois terminais com Ctrl-C. 6. No terminal 1, execute o comando nc -l -u -p 4444. Esse comando faz o mesmo que o anterior, mas usando um socket UDP em vez de TCP. 7. No terminal 2, execute o comando echo teste 4 | nc -u localhost 4444. Verifique o que acontece no outro terminal. Interrompa as execuções nos dois terminais com Ctrl-C. 8. Volte ao Wireshark e interrompa a captura de pacotes (clique no quarto ı́cone abaixo do menu ou em Capture → Stop). 9. Salve o tráfego capturado (File → Save). Com base no comportamento observado e no tráfego capturado pelo Wireshark, responda às seguintes perguntas: II.a) Quais as mensagens de teste que foram exibidas com sucesso no terminal 1? II.b) Quantos pacotes foram capturados? II.c) Quantos bytes foram capturados? II.d) Qual o tempo total de captura? II.e) Os comandos digitados no terminal 2 enviam (ou tentam enviar) tráfego para o servidor no terminal. Determine os números de sequência dos pacotes correspondentes a cada uma das mensagens. (Considere aqui a numeração da primeira coluna na janela superior, não o número de sequência do TCP.) II.f) O que acontece, no tráfego capturado, quando uma transmissão utilizando TCP falha? II.g) O que acontece, no tráfego capturado, quando uma transmissão utilizando UDP falha? (Ignore eventuais mensagens de checksum UDP incorreto.) III Varreduras de rede com Nmap A fase III consiste em uma série de varreduras de rede usando Nmap. Para cada uma das varreduras especificadas abaixo, você deve realizar uma nova captura de pacotes com o Wireshark para posterior análise. Inicie a captura antes da varredura começar e interrompa a captura ao final da varredura, tomando o cuidado de salvar os pacotes capturados. IMPORTANTE: para a primeira varredura, não se esqueça de limpar o Capture Filter definido em II.1. III.1 Varredura de máquinas na rede local 1. Execute o Zenmap, um front-end gráfico para o Nmap (digite zenmap & no terminal). 2. Clique em Command Wizard. Deixe a opção Novice marcada e clique em Forward. 3. Na tela seguinte, clique em Command. Em Target, especifique a faixa de endereços IP da rede local (primeiro IP-último IP). Clique em Forward. 4. Na tela seguinte, em Non-TCP scans, selecione Ping scanning. 2 5. Clique em Forward quatro vezes, até a tela de Other options. Marque a opção Extra options defined by user e digite -n no campo ao lado. Clique em Forward e depois em Apply. Após a varredura ser concluı́da, responda às perguntas abaixo. Não se esqueça de parar a captura do Wireshark e de salvar os pacotes capturados. III.1a) Qual o comando usado para realizar a varredura? III.1b) De acordo com a saı́da do Nmap, quais nós estão ativos na rede? III.1c) Quantos pacotes e bytes foram capturados durante a varredura? III.1d) Inspecionando o tráfego capturado, como você explica o princı́pio de funcionamento dessa varredura? (Dica: veja o que acontece quando uma máquina está ativa e quando ela não está ativa.) III.2 Varredura de UDP Antes de iniciar as próximas varreduras, ative alguns serviços de rede na sua máquina. Para isso, clique no menu do KDE (primeiro ı́cone na parte inferior da tela), Services → HTTPD → Start HTTPD. Ative também HTTPD CGI, SSHD e TFTPD (todos estão sob o menu Services). A varredura de UDP consiste nos seguintes passos: 1. No Zenmap, clique em New Scan (primeiro ı́cone abaixo do menu). 2. Clique em Command Wizard. Deixe a opção Novice marcada e clique em Forward. 3. Na tela seguinte, clique em Command. Em Target, especifique o endereço IP da sua máquina. Clique em Forward. 4. Na tela seguinte, em Non-TCP scans, selecione UDP scanning. 5. Clique em Forward quatro vezes, até a tela de Other options. Marque a opção Extra options defined by user e digite -n no campo ao lado. Clique em Forward e depois em Apply. Após a varredura ser concluı́da, responda às perguntas abaixo. Não se esqueça de parar a captura do Wireshark e de salvar os pacotes capturados. III.2a) Qual o comando usado para realizar a varredura? III.2b) De acordo com a saı́da do Nmap, quais serviços UDP estão ativos na sua máquina? III.2c) Quantos pacotes e bytes foram capturados durante a varredura? III.2d) Inspecionando o tráfego capturado, como você explica o princı́pio de funcionamento dessa varredura? (Dica: veja o que acontece quando um serviço está ativo e quando ele não está ativo.) III.3 Varredura de TCP SYN Antes de iniciar as próximas varreduras, digite em uma janela de terminal o seguinte comando: tail -f /var/log/messages Esse comando permite que você monitore algumas mensagens de log geradas pelo sistema. A varredura de TCP SYN consiste nos seguintes passos: 1. No Zenmap, clique em New Scan (primeiro ı́cone abaixo do menu). 2. Clique em Command Wizard. Deixe a opção Novice marcada e clique em Forward. 3 3. Na tela seguinte, clique em Command. Em Target, especifique o endereço IP da sua máquina. Clique em Forward. 4. Na tela seguinte, em TCP scan, selecione TCP SYN scan. 5. Clique em Forward quatro vezes, até a tela de Other options. Marque a opção Extra options defined by user e digite -n no campo ao lado. Clique em Forward e depois em Apply. Após a varredura ser concluı́da, responda às perguntas abaixo. Não se esqueça de parar a captura do Wireshark e de salvar os pacotes capturados. III.3a) Qual o comando usado para realizar a varredura? III.3b) De acordo com a saı́da do Nmap, quais serviços TCP estão ativos na sua máquina? III.3c) Quantas portas foram varridas? III.3d) Quantos pacotes e bytes foram capturados durante a varredura? III.3e) Inspecionando o tráfego capturado, como você explica o princı́pio de funcionamento dessa varredura? (Dica: veja o que acontece quando um serviço está ativo e quando ele não está ativo.) III.3f) Algum dos serviços ativos gerou um log durante a varredura? (Dica: observe se houve mudança em /var/log/messages.) III.4 Varredura de TCP connect A varredura de TCP connect consiste nos seguintes passos: 1. No Zenmap, clique em New Scan (primeiro ı́cone abaixo do menu). 2. Clique em Command Wizard. Deixe a opção Novice marcada e clique em Forward. 3. Na tela seguinte, clique em Command. Em Target, especifique o endereço IP da sua máquina. Clique em Forward. 4. Na tela seguinte, em TCP scan, selecione TCP connect scan. Marque ainda as opções Services version detection e Operating system detection. 5. Clique em Forward quatro vezes, até a tela de Other options. Marque a opção Extra options defined by user e digite -n no campo ao lado. Clique em Forward e depois em Apply. Após a varredura ser concluı́da, responda às perguntas abaixo. Não se esqueça de parar a captura do Wireshark e de salvar os pacotes capturados. III.4a) Qual o comando usado para realizar a varredura? III.4b) De acordo com a saı́da do Nmap, quais serviços TCP estão ativos na sua máquina? III.4c) Quantas portas foram varridas? III.4d) Quantos pacotes e bytes foram capturados durante a varredura? III.4e) Inspecionando o tráfego capturado, como você explica o princı́pio de funcionamento dessa varredura? (Dica: veja o que acontece quando um serviço está ativo e quando ele não está ativo.) III.4f) Algum dos serviços ativos gerou um log durante a varredura? (Dica: observe se houve mudança em /var/log/messages.) Houve diferença em relação à varredura anterior? Como você explica isso? III.4g) A detecção de versão do SO é acurada? (Dica: você pode obter a versão do kernel usando o comando uname -a.) 4 III.5 Varredura completa de TCP SYN Para esta varredura, repita os passos da varredura III.3, com as seguintes modificações: 1. Após selecionar TCP SYN scan, clique em Forward duas vezes, até a tela de Target options. Marque a opção Ports to scan e digite 1-65535 no campo ao lado. 2. Clique em Forward duas vezes, até a tela de Other options. Marque a opção Extra options defined by user e digite -n no campo ao lado. Clique em Forward e depois em Apply. Após a varredura ser concluı́da, responda às perguntas abaixo. Não se esqueça de parar a captura do Wireshark. III.5a) Qual o comando usado para realizar a varredura? III.5b) De acordo com a saı́da do Nmap, quais serviços TCP estão ativos na sua máquina? III.5c) Quantas portas foram varridas? III.5d) Quantos pacotes e bytes foram capturados durante a varredura? III.5e) Quanto tempo durou a varredura? III.6 Localização de um serviço especı́fico Existe na rede local uma máquina com o serviço SMTP ativo. Utilizando uma varredura com Nmap, identifique esta máquina, respondendo às questões abaixo: III.6a) Qual o comando usado para realizar a varredura? III.6b) Qual o endereço IP da máquina em questão? III.6c) Quais as informações disponı́veis sobre a versão do serviço SMTP? Dica: você precisará de uma varredura de TCP connect para obter informações de versão. 3 Relatório • O seu relatório deverá conter as respostas às perguntas da fase I (itens I.a a I.d), da fase II (itens II.a a II.g) e da fase III. • Inclua uma cópia da saı́da do Nmap para cada varredura realizada na fase III. • A documentação do Nmap pode ser de grande utilidade. Para consultá-la, digite o comando man nmap em um terminal. Uma tradução em português está disponı́vel em http://nmap.org/ man/pt-br/. • Para os itens III.3f e III.4f, inclua uma cópia dos logs produzidos, quando houver. • Guarde uma cópia dos arquivos com pacotes capturados durante os experimentos deste laboratório. Eles podem ser necessários mais tarde. Não é necessário guardar cópia do arquivo produzido na varredura III.5. 5