Nesta etapa, vamos aprender sobre os vários formatos de saída que o Nmap oferece. Os formatos de saída são cruciais em segurança cibernética porque nos permitem apresentar os resultados da varredura de diferentes maneiras, dependendo de nossas necessidades. Por exemplo, alguns formatos são fáceis de ler para humanos, enquanto outros são projetados para máquinas analisarem, o que é útil ao integrar com outras ferramentas.
O Nmap suporta vários formatos de saída, cada um com suas próprias características e casos de uso exclusivos:
- Saída Normal (padrão): Este é um formato legível por humanos. Ele apresenta os resultados da varredura de uma forma que é fácil para nós entendermos à primeira vista, tornando-o ótimo para análise manual rápida.
- Saída XML (
-oX): XML significa Extensible Markup Language (Linguagem de Marcação Extensível). É um formato estruturado, o que significa que os dados são organizados de forma hierárquica. Isso facilita para programas e scripts analisarem os dados, e é comumente usado ao integrar o Nmap com outras ferramentas de segurança.
- Saída Grepable (
-oG): Este é um formato baseado em linhas. Ele é projetado para ser facilmente processado com ferramentas Unix como grep, awk e cut. Este formato é útil quando você deseja extrair rapidamente informações específicas dos resultados da varredura.
- Saída Script Kiddie (
-oS): Este formato é semelhante à saída normal, mas inclui arte ASCII. No entanto, raramente é usado em cenários práticos.
- Todos os Formatos (
-oA): Esta opção permite que você salve os resultados da varredura nos formatos normal, XML e grepable simultaneamente. É uma maneira conveniente de ter todos os tipos de saídas disponíveis de uma vez.
Vamos explorar esses formatos varrendo seu servidor web local novamente.
XML, ou Extensible Markup Language (Linguagem de Marcação Extensível), é um formato estruturado que é amplamente usado para armazenamento e troca de dados. Sua estrutura hierárquica facilita para os programas analisarem os dados, e é por isso que é comumente usado para integração com outras ferramentas de segurança.
-
Execute uma varredura Nmap e salve a saída no formato XML:
nmap -p 8080 localhost -oX /home/labex/project/scan_results.xml
Neste comando, -p 8080 especifica que estamos varrendo a porta 8080, localhost é o alvo que estamos varrendo (nossa máquina local), e -oX diz ao Nmap para salvar a saída no formato XML no caminho do arquivo especificado.
-
Visualize a saída XML:
cat /home/labex/project/scan_results.xml
O comando cat é usado para exibir o conteúdo de um arquivo. Quando você executa este comando, você verá uma saída formatada em XML que se parece com isto (abreviado):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE nmaprun>
<nmaprun scanner="nmap" args="nmap -p 8080 localhost -oX /home/labex/project/scan_results.xml" ...>
<scaninfo type="connect" protocol="tcp" .../>
<verbose level="0"/>
<debugging level="0"/>
<host>
<status state="up" reason="conn - refused" reason_ttl="0"/>
<address addr="127.0.0.1" addrtype="ipv4"/>
<hostnames>
<hostname name="localhost" type="user"/>
<hostname name="localhost" type="PTR"/>
</hostnames>
<ports>
<port protocol="tcp" portid="8080">
<state state="open" reason="syn - ack" reason_ttl="0"/>
<service name="http - proxy" method="table" conf="3"/>
</port>
</ports>
<times srtt="97" rttvar="5000" to="100000"/>
</host>
<runstats>...</runstats>
</nmaprun>
-
O formato XML inclui informações detalhadas organizadas em uma estrutura hierárquica. Vamos extrair as informações específicas da porta:
grep -A5 "<port " /home/labex/project/scan_results.xml > /home/labex/project/port_details.txt
O comando grep é usado para procurar um padrão específico em um arquivo. -A5 significa exibir 5 linhas após a linha que corresponde ao padrão. Estamos procurando linhas que contenham <port no arquivo XML e salvando os resultados em um novo arquivo chamado port_details.txt.
-
Visualize os detalhes da porta extraída:
cat /home/labex/project/port_details.txt
A execução deste comando mostrará a seção de informações da porta do XML.
A saída Grepable é projetada especificamente para ser facilmente processada com ferramentas como grep, awk e cut. Essas ferramentas Unix são muito poderosas para processamento de texto e podem nos ajudar a extrair rapidamente as informações de que precisamos dos resultados da varredura.
-
Execute uma varredura Nmap e salve a saída no formato grepable:
nmap -p 8080 localhost -oG /home/labex/project/scan_results.grep
Aqui, -oG diz ao Nmap para salvar a saída no formato grepable no arquivo especificado.
-
Visualize a saída grepable:
cat /home/labex/project/scan_results.grep
A saída se parecerá com isto:
## Nmap 7.80 scan initiated Wed Nov 8 12:40:00 2023 as: nmap -p 8080 localhost -oG /home/labex/project/scan_results.grep
Host: 127.0.0.1 (localhost) Status: Up
Host: 127.0.0.1 (localhost) Ports: 8080/open/tcp//http - proxy///
## Nmap done at Wed Nov 8 12:40:00 2023 -- 1 IP address (1 host up) scanned in 0.05 seconds
-
O formato grepable coloca todas as informações do host em uma única linha, facilitando o uso com ferramentas de processamento de texto. Por exemplo, você pode extrair apenas a linha contendo informações da porta:
grep "Ports:" /home/labex/project/scan_results.grep > /home/labex/project/ports_info.txt
Este comando procura linhas contendo a palavra "Ports:" no arquivo de saída grepable e salva a linha correspondente em um novo arquivo chamado ports_info.txt.
-
Visualize as informações das portas extraídas:
cat /home/labex/project/ports_info.txt
O Nmap fornece uma opção conveniente para salvar a saída em vários formatos de uma vez usando a opção -oA. Isso pode economizar tempo se você precisar de diferentes tipos de saídas para diferentes propósitos.
-
Execute uma varredura Nmap e salve a saída em todos os formatos:
nmap -p 8080 localhost -oA /home/labex/project/all_formats
Este comando varre a porta 8080 na máquina local e salva os resultados nos formatos normal, XML e grepable.
-
Verifique os arquivos criados:
ls -la /home/labex/project/all_formats.*
O comando ls -la lista todos os arquivos em um diretório com informações detalhadas. Quando você executa este comando, você deve ver três arquivos:
all_formats.nmap (saída normal)
all_formats.xml (saída XML)
all_formats.gnmap (saída grepable)
Agora você entende os diferentes formatos de saída que o Nmap oferece e como usá-los. Cada formato tem suas próprias vantagens:
- A saída normal é fácil de ler para humanos
- A saída XML é estruturada para análise por máquina e integração com outras ferramentas
- A saída Grepable é projetada para análise rápida com ferramentas de processamento de texto Unix
Na próxima etapa, você aprenderá como analisar essas saídas com mais detalhes.