Bom dia!! (estou quase morrendo de gripe aqui.. mas blz!!)
Hoje falarei um pouco sobre o Portscan Nmap. Acho que a maioria das pessoas que mexem ou já mexeram um pouco com redes já ouviram falar do próprio. Criado por Gordon Lyon o Nmap passou a ser indispensável para Administradores de Redes.
Melhor eu parar de falação e mostrar logo o que ele faz! =)
Para instalar o nmap no Ubuntu é bem simples.
$ sudo aptitude install nmapCom o nmap já instalado vamos brincar um pouco com ele. =P
Entre como root e digite:
#nmap localhost
!#$@!#! o que aconteceu??? :)
O nmap mostrou quantas portas fechadas o seu sistema possui (1707 closed ports), e mais abaixo a parte mais importante.
PORT: Mostra o número da porta/protocolo. Ex.: 80/tcp.
STATE: Mostra o estado da porta. Ex.: Open (Aberta).
SERVICE: Mostra o serviço que está utilizando determinada porta. Ex.: http.
Incrível não?! =D isso não é nada...
Vamos agora
"nmapear" outro computador da rede. Consegue fazer sozinho?! Creio que sim!
# nmap 192.168.1.2192.168.1.2 é apenas um exemplo, pode-se por qualquer ip.
O que aconteceu de diferente?? Bom.. praticamente nada; listou o número de portas fechadas, as abertas, mostrou os serviços e tudo mais e uma informaçãozinha nova. O MAC Address.
@!#!@$%, o nmap é muito %$#$. Sim.. e isso num foi nem 5% do que ele é capaz de fazer. Então vamos continuar!!!
Se você escrever apenas:
# nmapIrá aparecer todas as opções que o nmap possui. Não vou explicar todas pois ficaria aqui um mês mostrando detalhadamente cada uma. Então irei mostrar as principais.
Vamos incrimentar um pouco mais nossa pesquisa com o prefixo
-sV.
# nmap -sV 192.168.1.2Com o prefixo -sV vocês podem notar uma nova coluna com o nome de VERSION.
Agora a gente tem mais clareza do que está sendo operado em determinada porta =) Ex.: PORT: 80/tcp STATE: open SERVICE: http VERSION: apache httpd
#&%#$#$!!!! Oo
Com esse prefixo você pode notar que demora um pouco mais para mostrar o resultado da pesquisa porém o nível de informação é muito maior. Como podemos ver à cima a porta 80 do computador 192.168.1.2 está aberta com o serviço http que o Apache está executando.
Podemos também executar toda uma faixa de endereço. Por exemplo:
# nmap 192.168.1.1-254Excelente não?? :) você também pode usar o prefixo
-sV pra rastrear essa faixa de endereço sem problemas também.
Outro prefixo legal também de se utilizar é o
-O. O que ele faz?? Usando esse prefixo a gente pode ver o sistema operacional que cada máquina está utilizando, se é Windows, Linux, MacOS. O nmap ainda não é muito bom para distinguir qual versão do Windows, Linux ou MacOS está utilizando, mas já ajuda bem.
Então vamos lá:
# nmap -O localhostEscaneei minha maquina para ver qual SO estou útilizando, tive a seguinte resposta:
Running: Linux 2.6.XOS details: Linux 2.6.17 - 2.6.18Como disse, ele ainda num é muito eficiente em mostrar qual versão do GNU/Linux estou utilizando.
Outro prefixo muito útilizado pelos espertinhos de plantão é o
-sS. O que essa coisa de prefixo faz?? Bem simples... Se o computador que nós estamos
"nmapeando" tiver algum detector de intrusões (SNORT ou qualquer outro) é muito fácil dele saber que estamos
nmapeando o computador. O prefixo -sS tenta fazer com que isso não aconteça.
Operando neste modo o nmap envia um pacote SYN para cada porta alvo e espera ver se recebe algum pacote ACK de confirmação sem, entretanto, responder com o segundo pacote ACK, o qual abriria conexão.
Como usar então? Igual os outros.
# nmap -sS endereço_da_maquinaVale comentar que esses prefixos podem ser útlizados juntos sem problemas. Por exemplo:
Quero saber qual SO está rodando a máquina "x" e também desejo saber detalhadamente a versão de cada aplicativo que está usando determinadas portas, isso tudo tentando fazer com que nenhum IDS me pegue, isso tudo em uma pesquisa só.
# nmap -sS -sV -O endereço_da_maquina@$@!$! de nmap!!! hauiha! Realmente...!
Podemos também escanear por pacotes UDP. Extremamente simples também, basta por-mos o prefixo
-sU.
Pacotes UDP são rápidos se direcionados para máquinas Windows. Ex.:
# nmap -sU endereço_da_maquinaPor padrão o nmap escaneia um conjunto de 1661 portas, que incluem as mais útilizadas. Um procedimento que Administradores de Redes utilizam é esconder a porta SSH em portas mais altas.
Mas e agora?? Como faço para escanear as outras portas se o nmap escaneia apenas um conjunto de 1661 portas???
Elementar meu caro Watson!!
É por isso que existe o prefixo
-p!! =DD
Com ele você pode determinar uma porta específica como uma faixa de portas. Ex.:
# nmap -p 5150 endereço_da_maquinaNeste caso estamos escaneando a porta 5150 para ver como ela está.
# nmap -p 5000-6000 endereço_da_maquinaNeste caso estamos escaneando uma faixa de portas que começa na 5000 e vai até a 6000.
Vale ressaltar que scans feitos em rede interna são muito mais rápidos do que os scans feitos em rede externa, então caso tente escanear alguma rede externa e você ver que está demorando, isso é comum!! :)
Bom... creio ter passado os prefixos mais útilizados do nmap... e espero que todos tenham aprendido muito bem!
**Desenvolvi um script em C++ caso queiram automatizar um pouco o nmap. Para baixa-lo acesse o link abaixo:
Download Nmap Script v1.0Quaisquer dúvidas sabem o que fazer né?! Podem comentar!! =)
Obrigado e Abraços.