# nmap: port scanning e detecção de serviços em um pentest

> Como instalar e executar o nmap, quais perfis de scan importam, como ler sua saída XML, e onde ele entra no active scanning do Tandera.

O `nmap` dispensa apresentações e ganha uma mesmo assim, porque a maioria usa talvez cinco por cento dele. Ele descobre hosts, enumera portas, identifica serviços e versões, e roda uma engine de scripting que faz de tudo, do parsing de banner a verificações de vulnerabilidade.

## Instalação

```bash
# Debian / Ubuntu / Kali
sudo apt install nmap

# macOS
brew install nmap

# RHEL / Fedora
sudo dnf install nmap
```

## Comandos principais

```bash
# rápido, top portas, versões de serviço
nmap -sV --top-ports 1000 -T4 -oA scan example.com

# faixa TCP completa
nmap -p- -sV -T4 -oA fullscan 10.0.0.0/24

# SYN scan — precisa de root, mais silencioso e rápido
sudo nmap -sS -p- -T4 -oA syn 10.0.0.0/24

# UDP, o lento que acha o que todo mundo perde
sudo nmap -sU --top-ports 100 -oA udp 10.0.0.0/24

# scripts padrão mais detecção de versão
nmap -sC -sV -oA default example.com

# específicos de TLS
nmap --script ssl-enum-ciphers -p 443 example.com
```

O `-oA` grava os três formatos de uma vez — normal, greppable e XML. Sempre use: o XML é o que os importadores leem, e você não consegue regerá-lo depois sem reescanear.

## Saída

O XML (`scan.xml`) é o legível por máquina:

```xml
<port protocol="tcp" portid="22">
  <state state="open" reason="syn-ack"/>
  <service name="ssh" product="OpenSSH" version="6.6.1p1" method="probe"/>
</port>
```

## Onde ele entra no Tandera

O nmap roda na fase de **active_scan** apenas do `recon_web_full` — nunca no `recon_web_lite`, que tem teto `NonIntrusive`. Ele roda depois que o `cdncheck` classificou o espaço de endereços, então a lista de alvos exclui faixas de CDN e de provedor compartilhado.

O CLI `tandera` também importa XML do nmap diretamente:

```bash
nmap -sV -oX - example.com | tandera import --auto-dedupe
```

## Usando em um pentest

**`-T4` nem sempre é seguro.** Contra alvos industriais ou embarcados frágeis ele causa quedas. `-T2` em qualquer coisa sobre a qual você foi avisado, e combine o timing com o cliente por escrito.

**Detecção de versão é onde estão os findings.** Uma porta aberta não é um finding. `OpenSSH 6.6.1p1` é — é uma versão com problemas conhecidos que você pode citar. Sem `-sV` você tem um inventário, não resultados.

**UDP é onde vivem os serviços esquecidos.** É lento o bastante para a maioria dos testadores pular, que é exatamente por que SNMP com community string padrão ainda é encontrável em 2026.

**Guarde o XML.** É sua evidência de que o scan aconteceu, quando, e o que viu. Clientes contestam findings; XML com timestamp resolve.

---

Canonical: https://tandera.io/pt-br/tools/nmap
This page as markdown: https://tandera.io/pt-br/tools/nmap.md
Index for agents: https://tandera.io/llms.txt

Every page here is also available as markdown: append `.md` to the path (e.g. `/recon.md`, `/index.md` for this homepage, `/blog/<slug>.md`), or request the canonical path with `Accept: text/markdown`.
