Ver Feed RSS

Coluna de Segurança

Nmap Parte 1 - Entendendo os tipos de Scanning

Avaliação: 2 votos, 5,00 média.
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.

Nome:      tcp_connect (1).png
Visitas:     5534
Tamanho:  11,4 KB


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.

Nome:      udp_scan.png
Visitas:     5462
Tamanho:  12,1 KB


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.

Nome:      tcp_syn.png
Visitas:     5244
Tamanho:  10,1 KB


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.

Nome:      ack_scan.png
Visitas:     5239
Tamanho:  8,4 KB


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.

Nome:      fin_scan.png
Visitas:     5287
Tamanho:  7,5 KB


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.

Nome:      idle_scan.png
Visitas:     5179
Tamanho:  15,3 KB


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!
Categorias
Não Categorizado

Comentários

  1. Avatar de MarcusMaciel
    Muito bom o Artigo. Parabéns aos autores.
  2. Avatar de demattos
    muito util, muitas ferramentas nao sao exploradas por nao conhecer todas sua funcoes, otimo


    abraco
  3. Avatar de code
    Olá 1c3m4n,

    Muito bom seu artigo. Se quer sugestão para novos temas, que tal (de forma genérica):

    - DNSSEC
    - rootkits em geral
    - IPv6 (e relação a IPv4)
    - Forense em geral (Linux)
    - Dicas de segurança para newbies (Linux) residencial e empresarial
    - Ferramentas de segurança (Linux) em geral
    - BackTrack (como um aglomerado dessas mesmas ferramentas de segurança)
    - GPG PGP
    - Criptografia em e-mail/mensagem instantânea
    - Criptografia de partições Linux
    - (Como se defender de) Engenharia Social

    Bom, assunto é o que não falta Essa é apenas uma pequena lista que pensei no momento, mas ela pode crescer e se organizar. Inclusive, cada um desses tópicos genéricos pode render algumas dúzias de bons artigos para nossos leitores, que representam uma ampla faixa de conhecimento, dos novatos aos mais experientes em uma ou mais áreas da TI. E não importa em que área você esteja, sempre envolve segurança.

    Um abraço.
  4. Avatar de code
    O livro do Fyodor também é muito bom, mas a Packt Publishing lançou agora em Novembro de 2012 uma ótima (e atualizada) obra sobre o tema:

    http://www.packtpub.com/network-mapp...-cookbook/book
  5. Avatar de Magal
    Parabéns aos autores do Under.

    Ótimas literaturas, Gordon Fyodor e James Messer.

    http://www.professormesser.com/secre...guide-to-nmap/

    http://www.networkuptime.com/nmap/index.shtml

+ Enviar Comentário