°°°°°°°°°°°

Bem Vindos
A Unidade De Sistema Inteligentes
Fundada Por Carlos Monteiro e Samuel Ronaldo

domingo, 5 de fevereiro de 2012

Nmap Artigo U.S.I
    

Nmap é um software livre que realiza port scan desenvolvido pelo Gordon Lyon, autoproclamado hacker "Fyodor". É muito utilizado para avaliar a segurança dos computadores, e para descobrir serviços ou servidores em uma rede de computadores.
Nmap é conhecido pela sua rapidez e pelas opções que dispõe. O Nmap é um programa CUI (Console User Interface), pelo que corre na linha de comandos, mas este tem uma interface gráfica (GUI), o NmapFE (Nmap Front End), que foi substituido pelo Zenmap em 11 de Outubro de 2007, por ser uma versão portátil e prover uma interface melhor para execução e especialmente para visualização e análise dos resultados do Nmap

  Introduzindo o NMAP


O NMAP é um programa para análise de redes e de sistemas. Ele já está presente em muitas distribuições por padrão, como Debian eFedora e para distribuições que ainda não vem com este maravilhoso programa, a sua instalação é simples e está disponível para outras plataformas, como Windows, FreeBSD, Mac OS, etc. 


Há também uma versão gráfica do NMAP, mas os comandos passados no NMAP nos permitem uma enorme flexibilidade e maior controle sobre o que estamos fazendo. Acompanhe abaixo, a instalação do NMAP em pacotes RPM e através do código-fonte, é importante lembrar que no site do NMAP pacotes *.deb para o Debian também estão disponíveis: 


Ou baixe o arquivo tar.bz2 de www.nmap.org, compile e instale: 

$ bzip2 -cd nmap-VERSION.tar.bz2 | tar xvf -
$ cd nmap-VERSION
$ ./configure
$ make
$ su 
# make install 

A seguir veremos as sintaxes. Caso queira, pode passar para a parte mais prática, mas para uma melhor compreensão é recomendada a leitura.

     Sintaxes de utilização


Nmap, apesar de parecer de difícil utilização, é bem fácil, basta entender sua sintaxe de utilização e explorar ao máximo seus recursos e com um pouco de imaginação também iremos longe... 

Como já dito no início do artigo, trataremos aqui somente da interface em modo texto, apesar de o front-end gráfico também ser muito bom. 

A sintaxe de utilização do Nmap basicamente é: 

nmap <parâmetros> <alvo> -p <portas> 

(Importante ressaltar que o alvo pode ser o endereço IP, o host ou o endereço DNS resolvido. 

Os parâmetros são ajustados de acordo com o resultado que se pretende obter, claro. Os parâmetros mais utilizados são:

  • -sT - Com esse parâmetro é feito um escaneamento através de tentativas de conexão TCP. Essa forma é muito fácil de ser identificada por firewalls e IDS;
  • -sS - Assim a tentativa será com pacotes TCP com a flag SYN ligada, ou seja, como apenas uma requisição de conexão. Essa técnica dificulta um pouco a detecção;
  • -sP - Com essa opção o escaneamento será feito através de pacotes ICMP echo request. Verifica apenas se o host está ativo;
  • -sU - Envia pacotes UDP com 0 byte para determinar o estado dessas portas;
  • -sO - É usado para tentar determinar os protocolos suportados pelo host;
  • -O - Com esse parâmetro é feito uma tentativa de determinar o sistema operacional através de uma técnica conhecida como Active FingerPrint.
  • -A - Verifica a porta e o serviço que está rodando.

Métodos de scanning

Veremos agora a utilização prática dos conceitos aprendidos.

TCP connect()


Forma mais simples de scanning, ela tenta abrir uma conexão na máquina alvo, se for bem sucedida é porque a porta está aberta. Esse método é facilmente detectado pelo firewall da máquina alvo (é o default). 

# nmap -sT alvo 

(alvo é o IP da máquina, ex:127.0.0.1) 

TCP SYN (half open)


Nesse método, um pacote SYN é enviado, caso haja resposta (um pacote SYN-ACK seja recebido), é porque a porta está aberta. Caso seja recebido um RST é porque está fechada. Se a resposta vier positiva (SYN-ACK), o nmap envia outro RST fechando a conexão, de modo que a conexão não se completará. A vantagem desse método é que fica mais difícil a detecção do portscan, pois ele não abre uma conexão TCP completa. 

# nmap -sS alvo 

FIN (Stealth)


Esse método envia pacotes FIN para o alvo, caso não haja resposta, a porta está aberta, caso seja recebido um pacote RST, é porque está fechada. Esse método é útil, pois alguns firewalls podem detectar a chegada de pacotes SYN, detectando o método TCP SYN, esse modo elimina essa possibilidade de detecção. 

# nmap -sF alvo
# nmap -sX alvo 

(Xmas Tree -> envia as flag FIN, URG e PUSH no pacote FIN) 
# nmap -sN alvo 
(null scan -> não envia flag no pacote FIN) 

ACK (ack scan)


Esse método é utilizado para mapear o firewall alvo. Ele pode determinar o tipo de firewall e se ele apenas bloqueia os pacotes SYN. 

# nmap -sA alvo 

ICMP (ping scan)


Nesse método são enviados pacotes "ICMP echo request" para o alvo, caso não haja resposta, é enviado um pacote TCP ACK para a porta 80 ou então um pacote SYN (se nenhum das anteriores responder), isso tudo porque alguns firewalls bloqueiam o "ping". Ele é utilizado para ver se a máquina alvo está ativa ou não. 

# nmap -sP alvo 

UDP


Nesse método, um pacote UDP de 0 byte é enviado, caso seja recebido um "ICMP port unreachable" é porque a porta está fechada, caso contrário, está aberta. 

# nmap -sU alvo 

RPC scan


Esse método combina vários métodos de scan do nmap. Ele considera todas as portas TCP/UDP abertas e as "flooda" com comandos "NULL SunRPC", tentando descobrir quais portas RPC estão abertas, e se possível, o programa e a versão do RPC. 

# nmap -sR alvo 

TCP/IP Fingerprint


Esse método ativa a identificação remota do sistema operacional. Ela usa várias informações recebidas e as compara com a base da dados dos sistemas operacionais conhecidos, detectando qual o sistema usado na máquina. 

# nmap -O alvo 

Além dessas opções, o nmap possui muitas outras, como por exemplo o scan rápido (nmap -F) ou então a opção de não pingar a máquina antes de scaniá-la (nmap -P0). 

Em adição a esses métodos de scan, o nmap oferece a opção de escolher "políticas", de modo a dificultar a detecção pelo IDS da máquina alvo. As opções são "Paranoid", "Sneaky", "Polite", "Normal", "Aggressive" ou "Insane". 

A opção "Paranoid" escaneia de 5 em 5 minutos cada porta, a "Sneaky", de 15 em 15 segundos e assim evoluindo. 

A vantagem do "scan" ser mais lento é que dificulta a descoberta pelo IDS da máquina alvo. A opção padrão é a normal. 

# nmap -T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane> alvo 

Finalizando

Finalizo meu artigo do NMAP aqui, importante ressaltar que vários comandos podem ser criados, até mais potentes. Isso cabe à imaginação de cada um. 

nmap também aceita caracteres com < > >> |. 

Aguardem que em breve estou planejando complementar este artigo utilizando outras ferramentas e scripts juntos com o NMAP. 

Espero que o artigo tenha sido útil. 
Ass: Carlos Monteiro C¹³ Solo Wikipédia

Equipe: < U.S.I>