Nmap

Às vezes, quando um hacker se conecta a um serviço ou a um site, de forma útil ele responde com informações de versão bem detalhadas dispensando o uso de ferramentas.

Quando esse não é o caso, é preciso lançar mãos de outras muitas ferramentas, existentes nos sistemas operacionais e/ou em aplicativos, que fazem esse trabalho de colher impressões digitais (fingerprinter) do sistema da vítima: os escaneadores (scanner, em inglês) que são ferramentas de software que examinam e criam relatórios sobre vulnerabilidades em hosts locais e remotos. Os escaneadores estão disponíveis como ferramentas especializadas projetadas apenas para escanear portas (chamados de escaneadores de portas), como ferramentas de rede ou como partes de suítes de utilitários de rede. Essas ferramentas, inteiras ou em parte, são criadas para detectar quais das 65.535 portas de rede existentes estão “abertas”.

Um escaneador desempenha as seguintes funções:

  • – Conectam-se a host(s)/alvo(s).
  • – Examinam o host/alvo para descobrir os serviços que estão sendo executados nele.
  • – Verificam cada serviço para cada vulnerabilidade conhecida.

Fases e ferramentas de escaneamento

Abaixo relaciono alguns escaneadores específicos e as várias fases do processo do teste de invasão no qual esses escaneadores em particular podem ser mais adequados.

  • Fase de Descoberta

Nmap

UnicornScan

  • Fase de Reconhecimento

Fierce

Maltego

PassiveRecon

tcpdump

Wireshark

  • Fase de Identificação de vulnerabilidade

Nessus

NeXpose

Nipper

OpenVAS

Qualys

SAINT

  • Fase de Exploração

Core lmpact

MetaSploit

BackTrack

O Nmap, por permitir uma variedade de técnicas para mapear redes complexas e (por ser de código aberto) poder ser modificado e customizado de acordo com a necessidade é, de longe, a ferramenta número um usada pelos hackers. Ela vem em várias versões, incluindo Windows e Linux e é um verdadeiro canivete suíço, podendo executar todo o tipo de varredura e teste no host; é um bom fingerprinter de sistema operacional e um fingerprinter de aplicativo adequado. Existem melhores fingerprinters de aplicação, especialmente quando eles estão focados em um determinado tipo de impressão digital de aplicativos, como servidores web, bancos de dados ou servidores de e-mail. Por exemplo, se o foco for servidores web, o Nikto2 não apenas é bem melhor do que o Nmap em termos de fingerprint, mas também executa milhares de testes de penetrações permitindo identificar quais vulnerabilidades estão presentes.

Resumindo: Nmap irá ajudá-lo a descobrir hosts, protocolos, portas abertas, serviços e suas configurações e vulnerabilidades em redes.

AVISO: Tenha muito cuidado ao usar as funções agressivas do Nmap contra hosts que você não tem permissão para hackear. Melhor usar um proxy, tal qual o proxychains.

Eu costumo usar o Scanme.Nmap.Org, que é um serviço fornecido pelo Nmap Security Scanner Project e Insecure.Org, e consiste em uma máquina configurada para ajudar as pessoas a aprender o Nmap e também testar e certificar-se de que a instalação do Nmap (ou conexão com a Internet) esteja funcionando corretamente. Você está autorizado a escanear esta máquina com o Nmap ou outros escaneadores de portas. Porém, tente não martelar o servidor com muita severidade. Algumas varreduras por dia é uma boa prática, mas NÃO escaneie 100 vezes por dia ou use este site para testar ferramenta de quebra de senha por força-bruta.

A seguir, ilustrarei alguns exemplos explorando o host scanme.nmap.org e, algumas vezes, a minha rede local, ou até mesmo a carniça do Facebook, usando o ambiente de pentest pré-configurado, portátil, o PentestBox rodando no Windows 8.1. Aproveitando para fazer minha avaliação e sair um pouco do Linux ;>)

Exemplos de comandos Nmap para analises de redes e portas

Exemplo 1: Resumo das opções

O resumo de opções é mostrado quando o Nmap é executado sem argumentos. Isso ajuda a se lembrar das opções mais comuns, mas não substitui a documentação detalhada no site oficial. Algumas opções obscuras não estão incluídas aqui.

nmap-00.jpg

Exemplo 2: Analisando um endereço ip ou um domínio

Primeiro um nmap scanme.org

Visualizei o endereço ip, e nmap 45.33.32.156

nmap-01.jpg

Exemplo 3: Analisando múltiplos ips ou uma rede subnet

nmap 192.168.25.1 192.168.25.2 192.168.25.30

nmap-02.jpg

Uma seleção com um wildcard pode ser executada com nmap 192.168.25.*

Ou uma rede completa com nmap 192.168.25.0/24. Pode também, uma faixa de ips usando nmap 192.168.25.1-10

Exemplo 4: Selecionando os alvos a partir de um arquivo

Para isso, é preciso criar um arquivo contendo os endereços/URLs dos alvos: que seja o C:\Users\User\Desktop\nmap/alvos.txt com o seguinte conteúdo:

192.168.25.30

google.com.br

facebook.com.br

8.8.8.8

E o comando: nmap -iL C:\Users\User\Desktop\nmap/alvos.txt

nmap-03.jpg

Exemplo 5: Detectando o Sistema Operacional e a sua versão:

Usando a opção -A nmap -A 192.168.25.30

nmap-04.jpg

Exemplo 6: Identificar se o alvo é protegido por um firewall:

Usando a opção -sA nmap -sA 192.168.25.30

Exemplo 7: Analisar quando o alvo é protegido por um firewall.

com o nmap -PN 192.168.25.1

Exemplo 8: Analisar o Protocolo IP

Esta analise permite detectar quais são os protocolos (TCP,ICMP,IGMP,etc) que o alvo suporta:

nmap -sO 192.168.25.30

nmap-05.jpg

Exemplo 9: procurar falhas no firewall

Uma análise nula para fazer a firewall gerar uma resposta nmap -sN scanme.nmap.org

nmap-06.jpg

Exemplo 10: 1000 hosts

A sintaxe do Nmap não exige exclusivamente um endereço ip ou uma URL. O Nmap pode escolher 100.000 hosts aleatoriamente e explora-los para servidores web (porta 80). A enumeração de host é desativada com -Pn desde o primeiro envio de algumas sondas para determinar se o host está subido é um desperdício quando você está apenas testando uma porta em cada host alvo de qualquer maneira.

nmap -v -iR 100000 -Pn -p 80

nmap-07.jpg

Os poucos exemplos acima, foram apenas para uma degustação do uso do Nmap, na verdade não existe uma receita mágica (ou opção do Nmap) para detectar e subverter firewalls e sistemas IDS, por exemplo. É necessário habilidade e experiência.

Nmap no Windows

O Nmap era uma ferramenta exclusiva para Unix até o ano 2000, quando uma versão para Windows foi lançada, e desde então se tornou a segunda plataforma Nmap mais popular (atrás do Linux). Por causa desta popularidade e do fato de que muitos usuários do Windows não possuem um compilador, os executáveis binários são distribuídos para cada versão principal do Nmap.

Embora tenha melhorado drasticamente, a versão para Windows não é tão eficiente quanto para o Unix.

Os usuários do Windows têm três opções para instalar o Nmap, todos os quais estão disponíveis na página de download em https://nmap.org/download.html , porém a maioria dos usuários do Windows prefere o instalador executável (.exe) disponível no site oficial

Para quem prefere a linha de comando (.zip binário): Instruções de instalação; Instruções de uso .

O PentestBox é um ambiente de pentest pré-configurado, portátil e opensource para o Windows.

O PentestBox não é como outra distribuição Linux qualquer que roda ou em uma máquina virtual ou em dual boot. Ele traz todas as ferramentas em um pacote e podemos rodá-las nativamente no Windows. Isso elimina a necessidade de máquinas virtuais ou de dual boot.

O PentestBox contêm quase todos os comandos Linux essenciais como bash, cat, chmod, curl, git, gzip, ls, mv, ps, ssh, sh, uname e outros. Ele até vem com meu editor de texto favorito “vim”. Para a lista completa, visite https://tools.pentestbox.org/#linux-utilities ; existem dois tipos de instaladores: um com Metasploit e outro sem.

Programas antivírus e firewalls deverão ser desativados para instalar e usar a versão com Metasploit.

Baixe qualquer um dos tipos de instalador clicando no respectivo botão.

Ao instalar, verifique se o caminho de extração é C:/PentestBox/ e, em seguida, clique em próximo para extrair arquivos. Porém, se você prefere instalar em uma unidade USB pode usar o mesmo arquivo de instalação e alterar de C:/PentestBox para F:/ (se for F: for o pendrive no seu computador).

Nmap no Android

O Nmap funciona em telefones rooteados e não rooteados. Em telefones não rooteados, as funções são bem mais limitadas, ou seja, esqueça impressões digitais de sistema operacional, SYN, etc.

Citarei aqui, 3 sabores de Nmap que já usei no Android

  • – O Nmap/Android binary agora, depois que o Google corrigiu o infame problema de saída do android-ndk-r5b, funciona perfeitamente. Além disso, o novo NDK implementa (quase) todos os C ++, portanto, CrystaX não é mais necessário. Em suma, isso significa que o processo de compilação ficou bem simplificado.
  • No secwiki.org pode-se encontrar Nmap/Android, que foi construído para diferentes arquiteturas android. Pode-se escolher a arquitetura dependendo do seu telefone (provavelmente arm ou arm 64-bits).
  • – O Network Mapper na Play Store; por ser apenas um frontend para o Nmap, após instalação aceite o download dos binários Nmap. O Frontend irá ajudá-lo a baixar e instalar o Nmap, bem como usá-lo.

nmap-07.png

  • – O Termux. Este é o meu predileto; Termux é um emulador de terminal e um aplicativo de ambiente Linux para Android que funciona sem rooteamento e sem necessidade de configuração. Um sistema base mínimo é instalado automaticamente e pacotes adicionais estão disponíveis usando o gerenciador de pacotes APT, tal qual no Debian e Ubuntu GNU/Linux.

O site oficial contém uma ótima ajuda e o desenvolvedor, Fredrik Fornwall, atua ativamente no Termux Google+ Community, @termux no Twitter. Tack för den underbara ansökan, Fredrik.

nmap-08.png

Nmap Scripting Engine

Para quem deseja entrar de cabeça, nada melhor do que desenvolver scripts Lua para o Nmap Scripting Engine (NSE). O que exige conhecimentos da Linguagem de Programação Lua.

Lua é uma linguagem de programação poderosa, eficiente e leve, permite programação procedural, orientada a objetos, funcional, ou programação orientada a dados e descrição de dados. Essas características fazem de Lua uma linguagem ideal para configuração, automação (scripting) e prototipagem rápida.

O Nmap Scripting Engine (NSE) revolucionou a capacidade do Nmap. Hoje, existem várias categorias que cobrem uma ampla gama de tarefas, desde descoberta de rede até detecção e exploração de vulnerabilidades de segurança É possível usar scripts NSE para quebra de senhas fracas com força bruta, encontrar hosts on-line com diferentes solicitações de broadcast, cheirar (sniff) a rede, descobrir arquivos de backup esquecidos em servidores web, detectar a vulnerabilidade SSL 3.0 conhecida como Poodle (isso merece um post mas por enquanto vai um “grande parêntesis“, Padding Oracle On Downgraded Legacy Encryption, um bug, já um tanto antigo, mas fuderoso, que afeta a versão do SSL 3.0, componente muito utilizado para proteger (criptografar) informações sensíveis, como senhas e dados de cartões de crédito, e que muitos navegadores desatualizados ainda estão utilizando e muitos servidores estão com esta opção habilitada; com ferramentas online também é possível verificar esta vulnerabilidade ) e até mesmo explorar vulnerabilidades em outros programas.

Tráfego Criptografado

O que fazer ao encontrar um tráfego criptografado? Bem, muitas vezes é possível determinar o protocolo usado em uma conexão com base no número da porta de destino. Você pode procurar serviços comumente associados a um determinado número de porta na IANA. Por exemplo, ao ver o tráfego indo para a porta 80 em um sistema/dispositivo, posso supor que pode ser www-http, tráfego na web. Se eu ver o tráfego para a porta 443, posso assumir que pode ser tráfego SSL-criptografado (https) na web. Porta 22, provavelmente SSH. Etc…

Naturalmente, algumas pessoas mudam as atribuições de portas em sistemas para frustrar a varredura, evitar ou dificultar bloqueios de portas pelo provedor. A porta 8443 é usada em alguns sistemas em vez de 443; 8080, 8000 e 8888 são substitutos comuns para 80, e às vezes encontro 2022 no lugar de 22.

Para determinar o protocolo suportado ou em uso em uma determinada porta, o software como Nmap às vezes pode determinar quais padrões de criptografia são suportados por um SSH, web ou outro servidor. Se você tiver o acesso adequado à rede, programas como o Wireshark poderão saber quais serviços e protocolos estão ativamente em uso.

nmap

Famoso Matrix  :>)))

Isso tudo pressupõe que eu estou determinado a enfrentar a criptografia de frente. A menos que o alvo seja fraco ou mal implementado, geralmente faz mais sentido não atacar um adversário onde eles são mais fortes. Isso pode mudar se nenhuma outra opção seja possível ou se eu sei algo que eles não (ou simplesmente não esperam que eu ou qualquer outra pessoa) saibam sobre suas defesas.

Com a maioria dos sistemas ou redes complexas, existem vetores possíveis para uma boa escolha de intrusão que não seja a mais difícil. Se a comunicação criptografada está ocorrendo, presumivelmente há dois ou mais sistemas envolvidos comunicando – que são dois pontos de entrada que têm melhores probabilidades de trabalhar do que ficar tentando quebrar AES.

Ninguém está familiarizado com todos os aspectos da intrusão de rede. Tenho tendência a jogar com as minhas próprias forças e as fraquezas do defensor. Se isso não funcionar, eu tento (dentro da razão) desenvolver novas forças. E muito frequentemente, eu faço acontecer quando trabalho longitudinalmente – o que é metade da diversão. O importante é não desanimar se faltar um pedaço do quebra-cabeça – ainda há uma imagem inteira lá fora, esperando para ser descoberta.

Opções importantes de escaneamento do comando nmap

Um bom sumário de opções do Nmap está disponível aqui. Ajuda a lembrar das opções mais comuns, mas não substitui a documentação mais técnica. Algumas opções obscuras não estão incluídas.

Eu sempre tenho em mente as seguintes opções, que considero as mais importantes

  • – Opção -sT executa escaneamento de conexão TCP. Tenta fazer conexões TCP com todas as portas de um sistema remoto. Nesse tipo de escaneamento, o host/alvo transmite mensagens quanto ao sucesso da conexão (connection-succeeded) para portas ativas e mensagens sobre a indisponibilidade (host-unreachable) do host para portas inativas.
  • – Opção -sS executa escaneamento semiaberto. É um escaneamento de conexão TCP que não completa as conexões.
  • – Opção -sP executa escaneamento de ping. Mostra se o host remoto está ativo ao enviar pacotes de solicitação eco ICMP para esse host.
  • – Opção -sU executa escaneamento de UDP. Examina o status das portas UDP no sistema/alvo. O escaneador envia um pacote UDP de O byte para todas as portas de um host/alvo. Se a porta está fechada, o host/alvo responde com uma mensagem unreachable do Protocolo de Mensagens de Controle da Internet (ICMP)
  • Opção -sO executa escaneamento de protocolo IP. Examina se um host/alvo suporta os protocolos IP, se a resposta for unreachable do ICMP, o host/alvo não usa esse protocolo. Se não há resposta, o host-alvo suporta esse protocolo.

Vou parando por aqui, escrever sobre o Nmap é uma grande viagem que não cabe em apenas um post.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s