Nmap: uma “Ferramenta de Hacker” para os Profissionais de Segurança

Nmap: uma “Ferramenta de Hacker” para os Profissionais de Segurança

por Justin Hutchens

security-326154_640

A noção de “ética hacker” tem sido sempre um irónica. As tendências em desenvolvimento de hacking ético e segurança ofensiva transformaram o setor de segurança da informação em uma das indústrias mais autoperpetuantes do mundo.O software e as ferramentas que são usadas para proteger ativos de informações vulneráveis são as mesmas ferramentas que podem ser usadas para explorá-los. Talvez seja o contrário. Talvez as ferramentas que foram criadas com o único propósito de explorar ativos de informação agora estejam sendo usadas para protegê-los. Suponho que este seja um debate que poderia durar para sempre e é realmente apenas mais um exemplo de “o que veio primeiro…o frango ou o ovo?”

o objetivo deste ensaio não é discutir a questão filosófica da intenção. Minhas intenções são mais modestas. Eu apenas procuro justificar a importância de uma ferramenta que tem sido consistentemente rotulada como software de hacking malicioso. A ferramenta a que estou me referindo é Mapeador de rede ou nmap para abreviar. Se você é um agente desonesto enlouquecido que está empenhado em incitar a revolução global ou um profissional de segurança de rede (espero que o último, em vez do primeiro), o nmap deve ter um lugar permanente em seu kit de ferramentas. Talvez, em vez de lançar críticas a uma ferramenta de rede extremamente funcional, devemos responsabilizar os indivíduos por suas ações e refletir sobre a conhecida advertência de Benjamin Parker…”com grande poder, vem uma grande responsabilidade.”Apesar de algumas alegações em contrário, o nmap não é um software malicioso. E acho que a única razão pela qual muitas vezes é rotulada como tal é por causa de sua lista muito impressionante de recursos. Apesar de seu potencial de causar danos, o nmap certamente pode desempenhar um papel importante na proteção de uma infraestrutura de rede em um ambiente profissional.

o Nmap evoluiu constantemente ao longo dos anos de um utilitário de varredura simples para uma plataforma de teste de penetração completa. Ele pode ser usado em todas as etapas do processo de auditoria de segurança, para incluir descoberta de rede, varredura de portas, enumeração de serviços, mapeamento de vulnerabilidades e até exploração. Ao longo deste artigo, discutirei os recursos do nmap, pois pertencem a cada etapa do processo de teste de penetração.

Instalação e Preparação

Obviamente, antes de usar o nmap, é importante ter uma versão funcional instalado no sistema que você está usando. Por padrão, o nmap já está instalado na maioria dos testes de penetração e sistemas operacionais de segurança de rede, como Kali-Linux, Backtrack, DEFT, Node-Zero, Security Onion e NST. No entanto, ele também pode ser carregado em quase qualquer plataforma de sua escolha. O Nmap pode ser facilmente instalado em todos os sistemas operacionais comumente usados para incluir Windows, Linux e OSX. Há também documentação disponível para instalá-lo em plataformas mais obscuras para incluir BSD, Solaris, AIX e AmigaOS. Pacotes de instalação e instruções sobre como executar a instalação em qualquer um desses sistemas podem ser encontrados em http://nmap.org/book/install.html.

Zenmap – interface gráfica

além da interface de linha de comando tradicional para nmap, há também uma interface gráfica front-end chamada Zenmap. O Zenmap também está integrado em muitas das diferentes plataformas de teste de penetração discutidas anteriormente. No entanto, ele não está instalado por padrão no Kali-Linux (a plataforma que usarei para este tutorial). Felizmente, ele está no repositório de instalação e pode ser facilmente instalado com um único comando:

apt-get install zenmap

a interface point-and-click do Zenmap não apenas simplifica efetivamente o que exigiria comandos complicados, mas também pode ser uma ferramenta extremamente útil para aprender a usar o nmap. Ele usa ‘perfis’ para salvar configurações de varredura comumente usadas para modificação e/ou uso posterior. Dê uma olhada na imagem da interface Zenmap fornecida na Figura 1 e abordaremos brevemente cada um dos componentes.

f1

Figura 1. Interface gráfica Zenmap

o primeiro componente é o campo de destino (Figura 1. A). Este campo é onde você pode especificar os sistemas remotos em que deseja executar uma verificação. Você pode inserir um único endereço IP (por exemplo, 192.168.1.1), você pode inserir um intervalo sequencial de endereços IP (por exemplo, 192.168.1.0-255) ou você pode usar a notação CIDR para especificar uma sub-rede desejada (por exemplo, 192.168.1.0/24). O segundo componente é o campo Perfil (Figura 1. B). Você pode clicar na seta suspensa à direita deste campo para ver vários perfis pré-configurados para digitalização. Os perfis permitem que você salve configurações de varredura comumente usadas para uso futuro. Você também pode criar seus próprios perfis e eles aparecerão nesta lista (discutiremos como fazer isso mais adiante neste artigo). O terceiro componente é o campo de comando (Figura 1. C). Este campo indicará o comando que será enviado para o back-end. Para iniciar o comando que aparece neste campo, basta clicar no botão Digitalizar. Você pode modificar o valor neste campo diretamente; no entanto, ele será preenchido automaticamente com base nos valores do campo de destino e no perfil selecionado. Se você é novo no nmap, deve prestar muita atenção a este campo, pois ele fornecerá uma melhor compreensão da sintaxe apropriada e do uso de diferentes comandos do nmap. O quarto componente é a lista Host / Service (Figura 1. D). Depois de realizar varreduras, as informações serão preenchidas nesta lista. Se você tiver o botão Hosts selecionado, todos os endereços IP do host descobertos serão listados. E se você tiver o botão serviços selecionado, todos os Serviços de rede descobertos serão listados. O componente final (Figura 1. E) é onde você pode classificar todas as informações que foram produzidas por todas as varreduras que você realizou. A guia de saída Nmap exibirá a saída exata que seria fornecida se o comando tivesse sido inserido na interface da linha de comando. O conteúdo da guia Portas/Hosts varia dependendo se você tiver o botão Hosts ou serviços selecionado para sua lista. Se o botão Hosts for selecionado, as informações na guia Portas/Hosts refletirão os serviços identificados no endereço IP destacado ativamente na lista. Caso contrário, se o botão serviços for selecionado, as informações na guia Portas/Hosts identificarão todos os hosts que foram encontrados com o serviço específico destacado na lista. A guia topologia fornecerá uma representação gráfica da topologia lógica da rede, para incluir todos os hosts que foram descobertos por varredura. Ele usará valores TTL retornados (Time-To-Live) para exibir a orientação lógica dos hosts, em relação uns aos outros. A guia Detalhes do Host é onde você encontrará a maior parte das informações que foram descobertas sobre um host selecionado. Essas informações incluem endereços MAC, endereços IP, portas abertas, serviços identificados, informações do sistema operacional e quaisquer informações adicionais coletadas. Finalmente, a guia scans fornecerá um histórico de scans que foram realizadas durante a sessão.

na parte superior da tela, você verá vários menus suspensos diferentes para incluir digitalização, Ferramentas, perfil e ajuda. O menu Ajuda é autoexplicativo. O menu Scan contém opções para criar novas scans, salvar scans ou abrir scans salvas anteriormente. O menu Ferramentas fornece algumas funções adicionais que podem ser usadas para classificar e organizar as informações coletadas durante suas varreduras. E o menu Perfil fornece opções para criar novos perfis de digitalização ou editar perfis existentes.

vamos agora discutir brevemente como criar um novo perfil e, em seguida, iniciar uma verificação usando esse perfil. Para começar, selecione o menu suspenso Perfil e selecione “novo perfil ou Comando.”Isso abrirá uma interface de configuração de perfil que pode ser vista na Figura 2.

f2

Figura 2. Zenmap Profile Editor

a primeira guia (guia Perfil) permite que você crie um nome e uma descrição exclusivos para o perfil. Todas as outras guias são onde você especificará diferentes configurações que serão usadas em sua verificação. Como você pode ver na guia digitalizar exibida na Figura 2, criar um perfil de digitalização é tão simples quanto marcar as caixas para opções que você deseja ativar, inserir valores para que essas opções possam ser efetivamente empregadas ou selecionar entre opções predefinidas no menu suspenso. Se você não tiver certeza sobre a função ou o uso apropriado de qualquer opção aqui, você pode passar o mouse sobre ela com o mouse e a coluna de Ajuda no lado direito da tela será preenchida automaticamente com informações sobre o que a opção específica faz e valores e sintaxe apropriados para quaisquer campos de entrada solicitados. Com cada pequeno ajuste que você faz para a configuração de varredura, o campo de comando na parte superior é ajustado de acordo. Esse recurso torna o Zenmap uma ferramenta extremamente eficaz para aprender a usar comandos nmap corretamente. Depois de configurar as opções de verificação ao seu gosto, você pode selecionar o botão de verificação no canto superior direito da tela para uso único ou selecionar Salvar Alterações no canto inferior direito. O botão Salvar alterações salvará o perfil com o nome fornecido nas configurações da primeira guia e poderá ser usado imediatamente ou posteriormente, selecionando-o por nome no menu suspenso Perfil na interface principal do Zenmap. Embora o Zenmap seja muito poderoso, você não deve permitir que ele se torne uma muleta que o impeça de aprender as funções da linha de comando do nmap. Embora o Zenmap possa executar muitas das mesmas funções, ele ainda tem suas limitações e não é tão poderoso quanto o nmap. Para usar o nmap de forma eficaz e em todo o seu potencial, é importante familiarizar-se igualmente com a interface da linha de comando.

descoberta de rede

o primeiro passo no processo de teste de penetração que vamos discutir é a descoberta de rede. Antes de avaliar a segurança dos sistemas de informação em uma rede, primeiro você precisa identificar o que está avaliando. Existem várias maneiras diferentes de descobrir hosts em uma rede usando o nmap. Nesta seção, discutiremos como usar o nmap para realizar a descoberta de host nas camadas 2, 3 e 4 do modelo OSI e também discutiremos as vantagens e desvantagens de cada um. Um exemplo de um comando para executar a descoberta da camada 2 pode ser visto aqui:

nmap-PR-sn 192.168.1.0-255

o switch -PR especifica um ping ARP. Isso usa pacotes ARP (Address Resolution Protocol) da camada 2 para identificar hosts ativos dentro do intervalo especificado. Ele faz isso enviando uma solicitação de transmissão ARP para cada um dos endereços IP identificados. Se houver um host ativo na rede com um desses endereços IP, esse host enviará uma resposta ARP ao sistema de digitalização com seu endereço IP e seu endereço MAC de camada 2 correspondente. O Nmap coletará respostas de todos os hosts ao vivo e retornará uma lista de hosts que foram descobertos. O switch -sn é usado para solicitar que o nmap não execute nenhuma varredura de porta. Isso impede a transmissão de qualquer tráfego adicional, além do que é necessário para executar a varredura de descoberta de host da camada 2. A descoberta da camada 2 é eficaz porque é a mais rápida de todas as três opções. No entanto, é limitado pelo fato de que ele só pode ser executado em hosts que estão na mesma rede local que o sistema que está realizando a varredura.

para hosts remotos, você terá que usar a descoberta da camada 3 ou da camada 4. Um exemplo de um comando que poderia ser usado para realizar a descoberta da camada 3 é:

nmap-PE-SN 109.74.11.0-255

este comando enviará uma série de solicitações de eco ICMP para cada endereço IP da camada 3 na lista. O Nmap coletará todas as respostas de eco ICMP recebidas e retornará uma lista de todos os hosts ao vivo. Essa verificação de descoberta é mais lenta do que executar um ping ARP, mas retornará resultados para hosts em redes remotas.

finalmente, suponha que você está tentando descobrir sistemas remotos (para que você não possa usar a camada 2) que estão atrás de um firewall que descarta todo o tráfego ICMP de entrada (para que você não possa usar a camada 3). Para resolver esse problema, você precisará realizar a descoberta na camada de transporte (camada 4). Existem várias maneiras diferentes de usar varreduras da camada 4 para realizar a descoberta. Um método eficaz é usar um ping UDP. Um exemplo de um comando UDP ping é:

nmap-PU53-sn 109.74.11.0-255

este comando gera uma série de solicitações de status do servidor DNS para cada um dos endereços IP de destino. Uma série de respostas de consulta DNS será recebida de hosts ao vivo e o nmap retornará esses resultados. Como o DNS é um serviço comumente usado na porta UDP 53, é possível identificar hosts ativos adicionais usando essa técnica que pode ter sido configurada para não responder ao tráfego ICMP. Outra alternativa eficaz da camada 4 para varreduras de ping ICMP é usar um ping TCP ACK. Um exemplo disso pode ser visto abaixo:

nmap-PA80-sn 109.74.11.0-255

este comando enviará uma série de respostas ACK não solicitadas à porta especificada para todos os hosts no intervalo IP. Como esses pacotes ACK estavam fora do contexto de qualquer linha de comunicação estabelecida, os hosts ao vivo responderão com um pacote TCP RST para indicar que a comunicação deve ser descontinuada. O Nmap coletará essas respostas como a indicação de hosts ao vivo e retornará uma lista delas.

varredura de Portas e enumeração de Serviços

agora que descobrimos os endereços IP ativos na rede em que estamos realizando um teste de penetração, precisamos identificar portas abertas em cada sistema e os Serviços em execução nessas portas. A varredura de portas TCP em sistemas remotos é a função mais básica do nmap. Para executar um scan TCP de um sistema de destino, use o comando básico:

nmap 109.74.11.34

Como outros comandos nmap, este também pode ser usado para executar varreduras contra vários hosts utilizando uma série sequencial (192.168.1-255) ou notação CIDR (192.168.1.0/24). Este comando nmap padrão executa uma varredura em 1000 portas TCP comumente usadas. Alternativamente, você pode especificar uma única porta para fazer a varredura usando o interruptor-p seguido pelo número de porta que você quer fazer a varredura.

nmap 109.74.11.34-p 21

este comando acima examinará a porta TCP 21 no sistema especificado. Você também pode digitalizar uma série de portas usando o switch-p e, em seguida, listando as portas desejadas, separando-as com vírgulas.

nmap 109.74.11.34-p 80.443

este comando fará a varredura das portas 80 e 443 no sistema de destino. Você pode digitalizar um intervalo sequencial de portas usando o switch -p seguido pelo primeiro valor no intervalo, um traço e, em seguida, o último valor no intervalo.

nmap 109.74.11.34-p 0-100

o comando acima verifica as primeiras 100 portas. Para verificar todas as 65.536 portas TCP em um destino, use o seguinte comando:

nmap 109.74.11.34-p 0-65535

você pode usar uma varredura TCP ACK para identificar as portas filtradas. Para fazer isso, use o interruptor-sA. Você pode especificar uma porta ou uma série de portas. Nenhuma especificação de porta examinará as 1.000 portas padrão. Isso retornará uma lista de portas filtradas. Um exemplo deste comando pode ser visto abaixo:

nmap 109.74.11.34-sA

Testadores de penetração e profissionais de segurança às vezes só verificam portas TCP abertas em sistemas de destino. Ignorar os Serviços UDP pode fazer com que alguém ignore completamente as vulnerabilidades gritantes que podem facilmente levar a compromissos. Para procurar serviços UDP em um sistema de destino, use o seguinte comando:

nmap 109.74.11.34-sU

como os Serviços UDP não são orientados para conexão da mesma forma que os serviços TCP, isso levará mais tempo do que uma varredura TCP típica. O tempo necessário para concluir as varreduras UDP pode ser reduzido pela varredura de portas específicas. Você pode especificar portas da mesma forma que fez com as verificações TCP.

nmap 109.74.11.34-sU-P 69

o comando acima executa uma varredura da porta UDP 69, uma porta comumente usada para TFTP (Trivial File Transport Protocol). Também é possível identificar a versão e o número da versão para cada serviço específico. Para fazer isso, use o interruptor-sV.

nmap 109.74.11.34-SV

este comando usará uma combinação de captura de banner e análise de resposta de sonda para tentar identificar o serviço e o número de versão desse serviço para cada porta digitalizada. Usando técnicas semelhantes, também é possível fazer com que o nmap tente determinar o sistema operacional que está sendo executado no destino. Para fazer isso, use o interruptor -O.

nmap 109.74.11.34-O

uma vez concluído, ele retornará uma identificação positiva do sistema operacional ou dará um melhor palpite e, em seguida, uma lista de outros sistemas operacionais possíveis.

Técnicas Avançadas de digitalização

há um problema comum que você encontrará frequentemente ao realizar um teste de penetração em redes corporativas de médio a grande porte. A maioria das empresas e organizações hoje em dia se tornou mais segura e provavelmente terá firewalls ou sistemas de detecção de intrusão entre você e os sistemas que você está tentando escanear. Para digitalizar esses sistemas, precisaremos empregar algumas técnicas de digitalização mais avançadas. Uma maneira de potencialmente ignorar firewalls e / ou sistemas de detecção de intrusão é usar algumas técnicas tradicionais de varredura furtiva integradas ao nmap. Um método que pode ser empregado é usar um modelo de tempo mais lento. Os modelos de temporização variam de -T0 (varredura paranóica) até -T5 (varredura insana). Quanto menor o valor do modelo de tempo, mais lenta será a verificação. Varreduras mais lentas são menos propensas a serem sinalizadas por sistemas de detecção de intrusão. Um exemplo de uma varredura paranóica seria:

nmap 109.74.11.0-255-T0

outra técnica que pode ser usada para mascarar sua varredura é inundar a rede com tráfego de chamariz adicional usando o switch -D. Esta função permitirá que você especifique vários endereços para falsificar o tráfego ou você pode usar a opção RND para falsificar o tráfego de endereços aleatórios.

nmap 109.74.11.0-255-D RND:5

além de realizar a varredura de porta TCP tradicional dos sistemas de destino, o comando acima também falsificará o tráfego de 5 endereços aleatórios para ofuscar o tráfego de varredura real. Outra técnica que pode ser usada é variar o comprimento do pacote de suas solicitações transmitidas. Alguns sistemas de detecção de intrusão e firewalls soltarão pacotes com base nos comprimentos dos pacotes de assinatura. Para evitar isso, você pode especificar o comprimento dos dados usando o switch --data-length seguido pelo tamanho do pacote em número de bytes.

nmap 109.74.11.0-255 — data-length 15

este comando enviará todo o tráfego de varredura nos pacotes que são 15 bytes de comprimento. Embora isso possa ser útil para evitar alguns sistemas de detecção de intrusão baseados em assinaturas, o envio consistente de pacotes de um comprimento de pacote especificado incomum pode sinalizar um sistema de detecção de intrusão baseado em anomalia. Os sistemas de detecção de intrusão de rede também sinalizarão o tráfego se você começar a se conectar sequencialmente a sistemas dentro de um intervalo de rede especificado. Para evitar executar suas varreduras em sequência, você pode usar o switch --randomize-hosts.

nmap 109.74.11.0-255 — randomize-hosts

este comando acima examinará aleatoriamente cada host no intervalo em vez de executá-los em sequência (109.74.11.0, então 109.74.11.1, então 109.74.11.2, etc…). Embora você não possa falsificar seu endereço IP (porque não receberia as respostas necessárias para determinar portas abertas), você pode falsificar seu endereço MAC. Para fazer isso, você pode usar o switch –spoof-mac, seguido por um ID de Fornecedor, um endereço MAC específico ou 0.

nmap 109.74.11.0-255 — spoof-mac 0

Using 0 as your argument will apply a random MAC address to your scan traffic. Uma técnica final que vale a pena mencionar é usar a opção-f para fragmentar pacotes.

nmap 109.74.11.0-255-f

a fragmentação de pacotes separará as cargas úteis de dados de seu tráfego de varredura em vários pacotes, permitindo que ele ignore mais facilmente os sistemas de detecção de intrusão de inspeção de conteúdo ou firewalls. Embora todas essas técnicas possam ser eficazes para escanear servidores acessíveis publicamente por trás de um firewall, elas geralmente não são suficientes para escanear hosts em uma rede interna. Embora certos servidores acessíveis publicamente estejam disponíveis para varredura, grande parte da infraestrutura interna será mais profunda na rede e não tão facilmente acessível. Considere o diagrama na Figura 3. Este é um exemplo simples de uma configuração comum em redes corporativas.

f3

Figura 3. Configuração de rede comum

o problema que encontramos aqui é que a rede interna está por trás de um firewall interno, que tem regras mais rígidas sobre o tráfego de entrada, em comparação com o firewall externo. Esse firewall interno provavelmente está bloqueando o tráfego de entrada de endereços remotos na web; no entanto, é possível que os sistemas na DMZ possam se comunicar com os sistemas internos. Para poder escanear esses sistemas internos, devemos fazer com que os sistemas na DMZ funcionem em nosso nome. Discutiremos várias maneiras diferentes de fazer isso, incluindo varredura de proxy, varredura de zumbis e varredura de rejeição de FTP.

provavelmente, a maneira mais fácil de verificar os sistemas internos é usando uma cadeia de proxy. Suponhamos que tenhamos adquirido acesso a um serviço de proxy dentro da DMZ Localizando um serviço de proxy de Acesso Aberto, forçando brute um serviço de proxy com hydra ou instalando um serviço de proxy em uma máquina já comprometida. Depois de configurar seu sistema para rotear o tráfego por meio desse proxy, você pode executar varreduras nmap usando uma verificação de conexão completa (-sT).

nmap 10.1.1.0-255-sT

se não houver serviço de proxy disponível, existem algumas maneiras inteligentes de aproveitar as máquinas dentro do DMZ para obter resultados de varredura em sistemas internos. Uma maneira de fazer isso é usar zombie scanning, também conhecido como idle scanning. Para realizar uma varredura de zumbis contra os sistemas na LAN interna, temos que encontrar um host de zumbis viável dentro da DMZ. Um host zumbi é qualquer sistema relativamente ocioso que usa sequenciamento ipid incremental. Para localizar um host zumbi, podemos usar um script nmap para verificar a DMZ em busca de um sistema que se encaixe nessa descrição.

nmap –script ipidseq 109.74.11.0-255

Este script enviará uma série de pacotes para cada host e acompanhar o IPID números de todas as respostas recebidas. Em seguida, ele analisará esses números IPID para classificar cada sistema como sequência aleatória, todos os zeros ou incrementais. Veja a Figura 4 para um exemplo da saída para um sistema incremental.

f4

Figura 4. Host Zombie localizado com Script de sequência IPID

depois de adquirir um endereço IP para o nosso sistema zombie, estamos prontos para tentar a nossa verificação zombie. Antes de abordar como executar a varredura, discutirei brevemente como a varredura funciona. Consulte a Figura 5 para obter um diagrama do que ocorre quando uma varredura de zumbis é realizada em uma porta aberta.

f5

Figura 5. Zombie scan contra porta aberta

primeiro, nosso scanner nmap determina o valor IPID atual do sistema zombie enviando um pacote SYN/ACK não solicitado. Como nenhum pacote SYN foi originalmente enviado pelo sistema zombie para estabelecer uma conexão, o zombie então responde ao nosso scanner com um primeiro pacote. Nosso sistema de digitalização usará o IPID do primeiro pacote como ponto de referência. Em seguida, nosso sistema de digitalização acompanhará imediatamente isso com um pacote SYN falsificado enviado ao sistema de destino usando um endereço IP de origem do sistema zombie. Como o endereço IP de origem é um dentro da DMZ, é mais provável que essa solicitação de conexão seja capaz de passar pelo firewall. Se o destino receber o pacote e a porta de destino estiver aberta, o destino retornará um pacote SYN/ACK ao sistema zumbi (quem ele acha que enviou o pacote SYN original). Como esse pacote SYN / ACK é recebido fora de contexto, o sistema zumbi responderá ao sistema de destino com um primeiro pacote, incrementando assim seu valor IPID em um. Finalmente, nosso scanner enviará um último pacote SYN / ACK para o sistema zombie. A primeira resposta subsequente do zumbi aumentará o IPID mais uma vez. Portanto, se a porta de destino no sistema remoto estiver aberta, o valor IPID final retornado será dois números maiores que o valor original. Alternativamente, a Figura 6 ilustra o que ocorre quando a porta do sistema de destino é fechada.

f6

Figura 6. Zombie scan contra porta fechada

se a porta no sistema de destino estiver fechada, o sistema zombie não recebe resposta não solicitada do alvo e, portanto, não é instigado a enviar um primeiro pacote para o alvo. Portanto, se o valor IPID da primeira resposta final tiver apenas incrementado em um, podemos deduzir que a porta está fechada porque nenhuma resposta SYN/ACK foi enviada ao sistema zumbi para instigar uma primeira resposta. Caso contrário, se o valor IPID final tiver incrementado em dois do valor original, podemos deduzir que a porta no sistema de destino deve ser aberta porque deve ter respondido ao zumbi que instigou a resposta que incrementou o valor IPID do sistema zumbi.

embora isso possa parecer extremamente complicado; não se deixe intimidar pela descrição, pois o nmap faz quase todo o trabalho para você. Para realmente realizar uma varredura de zumbis, você só precisa inserir um comando simples.

nmap-sI 192.168.199.132-PN 192.168.199.130

o switch -sI diz ao nmap para realizar uma varredura de zumbis usando o seguinte endereço IP como host zumbi (192.168.199.132). O switch -Pn impede que o nmap execute um ping ICMP inicial no sistema de destino antes de tentar a verificação. Portanto, o endereço IP final no comando identifica o sistema de destino. A saída para este comando pode ser vista na Figura 7.

f7

Figura 7. Zombie scan contra porta fechada

deve-se notar que o intervalo de IP que usei para demonstrar essa varredura de zumbis é um intervalo privado na minha rede interna. Para que isso funcione efetivamente contra uma rede remota, conforme descrito no cenário original, os sistemas na DMZ e na rede interna devem estar em intervalos IP publicamente roteáveis. Se a rede interna estiver configurada em um intervalo privado atrás de um servidor NAT( Network Address Translation), o scanner nmap não poderá enviar o pacote SYN falsificado para o endereço interno de seu local remoto.

outra maneira de usar sistemas dentro da DMZ para tentar digitalizar hosts na rede interna é usar FTP bounce. Alguns servidores FTP legados suportam a capacidade de transmitir arquivos para um sistema de terceiros. Se você descobriu um servidor FTP na DMZ que permite login anônimo ou que você tem brute forçado com hydra, você pode testar o servidor FTP para determinar se ele suporta FTP bounce. Para fazer isso, use o script ftp-bounce.Como baixar e instalar Minecraft 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.nome de usuário = anônimo,

este comando usa o script nmap com argumentos de nome de usuário e senha contra o servidor FTP. Uma vez concluída, esta verificação indicará se o salto FTP é possível ou não. Se o script indicar que o FTP bounce está funcionando, você pode usar o servidor FTP para executar uma varredura de porta contra outros sistemas na rede. A figura 8 ilustra como isso funciona.

f8

Figura 8. FTP Bounce scan

o scanner tentará enviar dados binários, através da função FTP bounce, para o sistema de destino em uma porta designada. Se os dados forem transmitidos, o servidor FTP reportará isso de volta ao scanner, indicando que a porta no sistema de destino está aberta. Para executar uma verificação de rejeição FTP, use o interruptor -b .

nmap-B ftpuser::21 10.1.1.128-255

Neste comando, a função -b é usada para executar uma verificação de rejeição ftp usando o nome de usuário “ftpuser” e a senha PassW0rd, contra o servidor FTP em 192.168.11.201 hospedado na porta TCP 21. As ações descritas no diagrama acima serão executadas em cada uma das portas comuns de 1000s em cada um dos hosts de destino de 10.1.1.128 a 10.1.1.255.

mapeamento e exploração de vulnerabilidades com NSE

depois de descobrir hosts ao vivo na rede de destino e ter conseguido enumerar portas abertas e/ou serviços em execução nesses hosts, você pode começar a testar e explorar vulnerabilidades. Com o NSE recém-integrado (Nmap Scripting Engine), há uma série de scripts pré-carregados que vêm com a instalação padrão do nmap. Esses scripts têm uma ampla gama de funções diferentes da Coleta Básica de informações (como as duas que já discutimos), mapeamento de vulnerabilidades, Força bruta, negação de serviço e até exploração remota. Todos esses scripts estão localizados no diretório de instalação do nmap. No Kali-Linux, eles podem ser encontrados em /usr/share/nmap/scripts/. Para navegar até esses scripts e começar a trabalhar com eles, use os seguintes comandos:

cd /usr/share/nmap/scripts /

ls

o comando cd mudará o diretório para o local dos scripts NSE e o comando ls exibirá o conteúdo do diretório. Em seguida, você pode visualizar qualquer um dos scripts usando o comando cat, seguido pelo nome do script que deseja visualizar. Para fins desta demonstração, usaremos ftp-vuln-cve2010-4221.nse. Para visualizar o conteúdo deste script, use o seguinte comando:

Cat ftp-vuln-cve2010-4221.nse

f9

Figura 9. Conteúdo do script NSE

a Figura 9 exibe o conteúdo deste script. Se você navegar até o topo do conteúdo do script, verá várias informações úteis para incluir uma descrição do script, uma lista de recursos adicionais para referência e o uso e a sintaxe apropriados do script. No entanto, classificar esses scripts no diretório e localizar um script que executa uma função específica pode ser muito tedioso. Na minha opinião, é aqui que o Zenmap (a interface gráfica que discutimos anteriormente) realmente brilha. Para demonstrar o quão útil a interface do Zenmap pode ser ao trabalhar com scripts NSE, abra-a novamente na linha de comando com o comando:

zenmap

em seguida, selecione o menu suspenso Perfil e clique em “novo perfil ou Comando.”Depois que o editor de perfil Abrir, Escolha a guia Scripting na parte superior da tela. A figura 10 exibe uma imagem da interface de script Zenmap.

f10

Figura 10. Interface de script Zenmap

uma lista de todos os scripts nmap disponíveis está localizada no lado esquerdo da tela. Você pode selecionar qualquer um deles para incluí-lo no seu comando nmap. Alguns scripts exigirão argumentos para serem executados corretamente. Os scripts de autenticação Post geralmente exigem um nome de usuário e senha para serviços de rede específicos. No exemplo na Figura 10, argumentos podem ser fornecidos para configurar o ataque de Força bruta que deve ser executado contra o serviço MySQL. Você também pode passar facilmente os argumentos do script inserindo os valores na janela argumentos. Esses argumentos serão preenchidos automaticamente no comando nmap gerado. A janela no centro superior fornece uma descrição do script selecionado, uso e sintaxe apropriados e até categorias para descrever as funções do script. Essas categorias podem ser especialmente úteis se você estiver tentando executar um tipo específico de tarefa, como análise de vulnerabilidade. Depois de iniciar um script NSE com um comando nmap, você verá os resultados na saída nmap padrão. No caso de scripts de Força bruta, a saída mostrará se o ataque de Força bruta foi bem-sucedido e, em caso afirmativo, exibirá o nome de usuário e a senha descobertos. No caso de scripts de vulnerabilidade, a saída indicará se a vulnerabilidade está presente no(S) Sistema (s) de destino. E no caso de scripts de exploração, a saída fornecerá informações sobre a carga útil que foi posteriormente entregue ao sistema de destino.

Scripting com Nmap

além de seu próprio mecanismo de script integrado, o nmap também suporta várias opções de saída que facilitam o uso de linguagens de script tradicionais para realizar análises de saída. Dois formatos de saída que podem ser úteis para scripts incluem saída greppable (-oG) e saída XML (-oX). XML pode ser eficaz para linguagens de script de nível superior que têm módulos que podem ser importados para análise XML e saída greppable pode ser usado em conjunto com o shell bash scripting para agilizar a análise de resultados nmap. Para demonstrar como esse recurso de saída pode ser usado em conjunto com o script, revisaremos um script de shell bash simples de 4 linhas, exibido na Figura 11 para analisar os resultados de uma varredura nmap.

f11

Figura 11. Análise de resultados do Nmap Bash Script

considere um cenário no qual uma varredura nmap já foi realizada em uma rede muito grande e a saída da varredura foi salva no formato greppable em um networkscan.arquivo txt. E suponha que queremos usar o hydra para realizar um ataque de Força bruta contra todos os serviços FTP na rede, mas não queremos perder o tempo necessário para digitalizar a porta 21 em toda a rede novamente. Este script simples extrairá todos os sistemas que têm uma porta especificada aberta. A primeira linha solicita ao usuário um número de porta. A segunda linha atribui o valor da entrada do usuário à variável’ port’. A terceira linha indica ao usuário que todos os sistemas com essa porta aberta serão listados. E finalmente, o último comando é onde nós grep para fora os resultados da saída greppable do nmap. O script usa o comando grep para extrair todas as linhas do arquivo de saída que fazem referência à porta especificada. Isso incluirá linhas que enumeram cada instância de onde a porta está aberta, fechada ou filtrada. Em seguida, ele canaliza essa saída para outra função grep que extrai apenas instâncias nas quais a porta especificada está aberta. Essa saída é então canalizada para a função cut, que especifica um caractere de espaço como delimitador e, em seguida, produz o segundo campo. Ao fazer isso, nosso script produz o endereço IP para cada sistema que tem a porta especificada aberta. A figura 12 exibe a saída do script.

f12

Figura 12. Resultado Nmap saída de Script de análise

embora este seja um script muito simples, ele demonstra como pode ser fácil extrair informações do formato de saída greppable. Uma vez adquiridas, essas informações coletadas podem ser facilmente usadas para scripts adicionais. Poderia ser usado como um ponto de partida para executar alguma outra tarefa subsequente contra cada sistema que foi identificado para ter uma porta específica aberta.

uma ferramenta de teste de penetração All-In-One

combinando suas diferentes capacidades, pode-se facilmente realizar um teste de penetração completo usando o nmap sozinho. Não há como negar que o nmap, com sua impressionante lista de funções e recursos, é uma ferramenta verdadeiramente poderosa. E à medida que os anos avançam, provavelmente se tornará ainda mais poderoso à medida que mais pessoas continuam a contribuir para este projeto. Como uma criança com a arma de seu pai, o nmap pode ser uma ferramenta perigosa nas mãos erradas. Mas se usado corretamente, pode ser um recurso inestimável para garantir a segurança de sua infraestrutura de rede. Portanto, lembre – se sempre de usá-lo com sabedoria e usá-lo bem.

Sobre o Autor

jh

Justin Hutchens atualmente faz análise de vulnerabilidade de rede, detecção de intrusão e forense digital para uma grande rede de empresas com mais de 33.000 sistemas em rede. Ele ocupou vários papéis diferentes no campo da tecnologia da Informação para incluir design de rede, desenvolvimento de sistemas, administração de banco de dados e segurança de rede. Atualmente, ele também leciona cursos sobre testes de penetração com os sistemas operacionais Backtrack e Kali-Linux. Atualmente, ele possui Bacharelado em Tecnologia da Informação e várias certificações profissionais para incluir CISSP (Certified Information System Security Professional), CEH (Certified Ethical Hacker), ECSA (EC-Council Certified Security Analyst) e CHFI (Computer Hacking Forensic Investigator).

Write a Comment

O seu endereço de email não será publicado.