Nmap Parte 1 - Entendendo os tipos de Scanning
por
em 14-12-2012 às 20:39 (22146 Visualizações)
Este será o primeiro de uma série de artigos sobre NMAP. O intuito é mostrar como é possível explorar este utilitário, muito além de um simples port scan. Muita gente conhece apenas o básico desta ferramenta poderosa e acha que ela se limita apenas ao port scanning, mas a verdade é bem diferente: o Nmap é tão poderoso e possui tantas opções que existem diversos LIVROS completos falando exclusivamente desta ferramenta. Aproveitando a oportunidade, indico o livro do Fyodor, o próprio desenvolvedor da ferramenta, afinal quem melhor para falar do assunto não é?
Hoje iremos explorar os principais tipos de scanning que o Nmap nos oferece. Sendo assim, irei explicar cada um, separadamente, e mostrarei onde cada um pode ser utilizado. Boa parte dos usuários de Nmap até conhece quais são os tipos de scan, mas não sabem exatamente a finalidade de cada um.
Tipos de Scan
Os principais tipos de scan e suas respetivas flags são: ACK -sA, FIN -sF, XMAS -sX, IDLE -sI, SYN (Stealth/Half Open) -sS, TCP -sT, NULL -sN. Existem ainda mais algumas opções de scanning, mas iremos tratar delas em um outro artigo para o assunto não ficar muito extenso.
Antes de continuar com o assunto, aqui vai um aviso MUITO IMPORTANTE: Scanning é crime nos EUA e possivelmente em outros lugares, então não saia escaneando máquinas sem ter permissão ou você poderá acabar encrencado!
TCP SCAN: nmap -sT IP_DESTINO
Este tipo de scan é o mais CONFIÁVEL com relação a resposta obtida, mas também é um dos mais “barulhentos”, sendo facilmente detectável por IDS. Ele utiliza o three-way-handshake para testar quais portas estão abertas ou fechadas. Se a porta estiver aberta ele receberá a resposta SYN/ACK, se estiver fechada, receberá RST.
Onde/Quando usar?
Quando você precisa ter 100% de certeza que o resultado é confiável, e/ou existam mecanismos de defesa que façam com que outros tipos de scan sejam ineficazes.
UDP SCAN: nmap -sU IP_DESTINO
Como pode ser deduzido pelo nome, este scan serve para identificar portas UDP, porém pela arquitetura do UDP não ser considerado um protocolo confiável, pelo fato de não existir controle não há como saber se a resposta será mesmo válida.A resposta padrão para uma porta fechada é “ICMP port unreachable”, (no caso de portas abertas nenhuma resposta é retornada). Uma das desvantagens deste scan é que não será possível obter mais informações como por exemplo, a versão do programa que estiver rodando na porta aberta.
SYN SCAN: nmap -sS IP_DESTINO
Syn, Stealth, Half Open. Existem várias nomenclaturas para este tipo de scan. A principal diferença em relação ao TCP é que ele não chega a completar o handshake, pois ele finaliza a conexão antes disso. Assim, ele acaba se tornando muito mais sorrateiro (stealth). O mecanismo deste scan funciona assim: é enviado um SYN ao host, se a porta estiver aberta ele recebe SYN/ACK (como no TCP), e ao invés de estabelecer a conexão completa com ACK, um RST é enviado finalizando a conexão antes mesmo dela ser totalmente estabelecida. Os retornos de portas abertas/fechadas são iguais aos do TCP.
Onde/Quando usar?
Quando você não quiser chamar a atenção, durante o levantamento de informações de um pent test por exemplo.
ACK SCAN: nmap -sA IP_DESTINO
Este tipo de scan não utiliza a comunicação de handshake normal. Ao invés de inciar uma conexão SYN é enviado apenas a flag ACK, se receber um RST como resposta é porque a porta não está filtrada. Com isso você não tem 100% de certeza se a porta está aberta pois você nunca chegou a estabelecer uma conexão real.
Onde/Quando usar?
Este scan é utilizado para verificar se existe a presença de um firewall statefull entre você e o host de destino. Um firewall statefull bloquearia a conexão logo de cara, pois não é possível receber um ACK sem antes de ter iniciado a conexão normalmente.
FIN SCAN / XMAS SCAN / NULL SCAN: nmap -sF IP_DESTINO
Todos estes scans também não utilizam a comunicação padrão para estabelecer uma conexão. No caso do FIN a “conexão” é feita enviando o flag FIN para o host de destino; normalmente esta flag é utilizada para que os dois lados da comunicação encerrem uma conexão. No caso do XMAS, as flags URG,PSH e FIN são setadas, para o NULL nenhuma flag. Todos eles são considerados “stealth” scans pois enviam apenas um único frame e esperam uma única resposta.
Uma coisa muito importante a ser observada nestes tipos de scan: máquinas com WINDOWS irão responder a estas requisições com RST independente se as portas estiverem abertas ou não. No caso de máquinas com LINUX, se a porta estiver aberta nenhuma resposta será recebida, e o RST será enviado no caso da porta estar fechada. Isto ocorre porque a Microsoft não implantou a RFC 793.
Onde/Quando usar?
Como dito anteriormente, as máquinas WINDOWS respondem com RST independente da porta estar aberta ou não, então dependendo o resultado podemos ter uma noção do SO que o destino está utilizando. Outra possibilidade de uso é para evitar firewalls que controlem o handshake das conexões.
IDLE SCAN: nmap -sI IP_ZUMBI IP_DESTINO
Este tipo de scan utiliza spoofing, para o destino quem vai estar se conectando será o endereço IP da máquina ZUMBI e não o seu endereço. Um ponto importante é que a máquina ZUMBI esteja parada, sem uso (por isso o nome idle). Além disto a máquina ZUMBI tem que oferecer valores de IPID (IP Identification) que sejam predizíveis, caso contrário o Nmap irá exibir uma mensagem de alerta.
Para iniciar o processo, o Nmap envia as flags SYN/ACK ao ZUMBI para induzir um RST de retorno; este RST contém o IPID inicial que será utilizado no processo do scan. Agora o Nmap irá enviar um frame SYN ao destino, mas com o endereço IP spoofado parecer que veio do ZUMBI. Se a porta estiver aberta, o host de destino irá responder com SYN/ACK para o ZUMBI. A máquina ZUMBI por não ter iniciado esta conexão irá responder com UM RST, como esperado, e irá incrementar o IPID.
O último passo deste processo é realizar um novo envio de SYN/ACK ao ZUMBI. Se o IPID respondido for igual ao IPID inicial incrementado sabemos que a porta está aberta, se não incrementar é porque a porta está fechada. Em consideração ao que o artigo se propôs creio que a explicação sobre o funcionamento deste tipo de scan já tenha sido o suficiente para saber qual a finalidade chave de seu uso.
Scan de SO: nmap -O IP_DESTINO
Não é um scan em si mas sim uma parâmetro que pode ser passado ao comando do Nmap, para além de efetuar sua função normal, também identificar o SO que está na máquina de destino. Para que este resultado seja confiável, é necessário no mínimo, uma porta aberta e uma porta fechada no host de destino.
Conclusão
Gastar um tempinho lendo a documentação, se informando, é muito valioso. Com este conhecimento, seu trabalho ficará muito mais fácil e seus resultados serão muito mais precisos.
Tenham em mente esta citação de Abraham Lincoln:
“If I had eight hours to chop down a tree, I'd spend six hours sharpening my ax”
“Se eu tivesse oito horas para cortar uma árvore, Eu gastaria 6 horas afiando meu machado”
Desenvolvido por: Rafael M. Capovilla AKA 'iceman' e Camilla Lemke
Para dar sugestões para o próximo artigo, basta comentar aqui!
Comentários
+ Enviar Comentário