| |
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
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 scanningVeremos 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 FinalizandoFinalizo meu artigo do NMAP aqui, importante ressaltar que vários comandos podem ser criados, até mais potentes. Isso cabe à imaginação de cada um.
O 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> |
|
|
|
|
| |