-f (fragmenta os pacotes);
--mtu (usando a MTU especificada)A opção -f faz com que o rastreio(scan) solicitado
(incluindo rastreios(scans) usando ping) utilize pequenos pacotes IP
fragmentados. A idéia é dividir o cabeçalho TCP em diversos
pacotes para tornar mais difícil para os filtros de pacotes, os
sistemas de detecção de intrusão e outros aborrecimentos,
detectar o que está fazendo. Tenha cuidado com isto! Alguns
programas tem problemas para lidar com estes pequenos pacotes. O
sniffer da velha-guarda chamado Sniffit sofria uma falha de
segmentação assim que recebia o primeiro fragmento. Especifique
esta opção uma vez e o Nmap dividirá os pacotes em 8 bytes ou
menos após o cabeçalho IP. Portanto, um cabeçalho TCP de 20 bytes
seria dividido em 3 pacotes. Dois com oito bytes do cabeçalho TCP
e um com os quatro restantes. É claro que cada fragmento também
tem um cabeçalho IP. Especifique -f novamente
para usar 16 bytes por fragmento (reduzindo o número de
fragmentos). Ou então, pode especificar o seu próprio tamanho
de quebra com a opção --mtu. Não especifique
também o -f se usar o
--mtu. A quebra deve ser um múltiplo de 8. Embora
os pacotes fragmentados não passem por filtros de pacotes e
firewalls que enfilerem todos os fragmentos IP, tal como a opção
CONFIG_IP_ALWAYS_DEFRAG do kernel do Linux faz, algumas redes não
aguentam o impacto no desempenho que isso causa deixando a opção
desabilitada. Outros não conseguem habilitar isso porque os
fragmentos podem seguir por rotas diferentes na rede. Alguns
sistemas de origem desfragmentam pacotes de saída no kernel. O
Linux e o módulo de reastreamento de conexão do iptables é um
exemplo desse tipo. Faça um rastreio(scan) enquanto executa um sniffer como
o Ethereal para ter a certeza de que pacotes enviados estão
fragmentados. Se o SO do seu anfitrião(host) estiver causando problemas
tente a opção --send-eth para passar por cima da
camada IP e enviar frames ethernet em estado bruto(raw).
-D <chamariz1 [,chamariz2][,ME],...>
(Disfarça um rastreio(scan) usando chamarizes)Faz com que um rastreio(scan) com chamarizes seja executado, o que
parece ao anfitrião(host) remoto que, o(s) anfitrião(host)(s) que especificou como
chamarizes também estejam rastreando a rede-alvo. Com isso, o IDS
poderá reportar 5 a 10 rastreios(scans) de portas de endereços IP únicos, mas
não saberá qual IP estava realmente efectuado o rastreio(scan) e qual era um
chamariz inocente. Embora isso possa ser desvendado através de
rastreamento de caminho de router, descarte de respostas
(response-dropping) e outros mecanismos activos, normalmente é uma
técnica eficaz para esconder o seu endereço IP.
Separe cada anfitrião(host)-chamariz com vírgulas e pode
opcionalmente usar ME como um dos chamarizes
para representar a posição do seu endereço IP real. Se
colocar ME na 6a. posição ou acima, alguns
detectores de rastreio(scan) de portas comuns (como o excelente scanlogd da
Solar Designer) pouco provavelmente irão mostrar o seu endereço
IP. Se não utilizar o ME o nmap irá
colocá-lo em uma posição aleatória.
Observe que os anfitriões(hosts) que utilizar como chamarizes devem
estar activos ou poderá acidentamente inundar com SYN os
seus alvos. Também será bastante fácil determinar qual é o anfitrião(host)
que está a efectuar o rastreio(scan) se houver apenas um anfitrião(host) realmente activo na
rede. Você pode preferir usar endereços IP ao invés de nomes (de
forma que as redes chamarizes não vejam em seus logs dos
servidores de nomes).
Chamarizes são utilizados tanto no rastreio(scan) com ping inicial
(usando ICMP, SYN, ACK ou qualquer outro) como também durante a
fase real de rastreio(scan) de portas. Chamarizes também são usados
durante a detecção de SO remoto (-O). Chamarizes
não funcionam com a detecção de versão ou com o rastreio(scan) TCP
connect().
Vale a pena observar que usar chamarizes demais pode deixar
seu rastreio(scan) lento e potencialmente até torná-lo menos preciso. Outra
coisa, alguns provedores ISP irão filtrar os seus pacotes
disfarçados mas muitos não restringem pacotes IP
disfarçados.
-S <Endereço_IP> (Disfarça o endereço
de origem)Em algumas circunstâncias o Nmap pode não conseguir
determinar o seu endereço de origem (o Nmap irá dizer se for esse
o caso). Nesta situação use o -S com o endereço
IP da interface que deseja utilizar para enviar os
pacotes.
Outro uso possível para esta flag é para disfarçar o rastreio(scan) e
fazer com que os alvos achem que alguma outra
pessoa está fazendo o rastreio(scan). Imagine uma empresa que está
constantemente sofrendo rastreios(scans) de portas de um concorrente! A opção
-e normalmente seria requerida para este tipo de
uso e -P0 seria recomendável.
-e <interface> (Usa a interface
especificada)Diz ao Nmap qual interface deve ser utilizada para enviar e
receber pacotes. O Nmap deveria ser capaz de detectar isto
automaticamente mas ele informará se não conseguir.
--source-port <númerodaporta>;
-g <númerodaporta> (Disfarça o número de
porta de origem)Um erro de configuração surpreendentemente comum é confiar
no tráfego com base apenas no número da porta de origem. É fácil
entender como isso acontece. Um administrador configura um
firewall novinho em folha só para ser inundado com queixas de
usuários ingratos cujas aplicações param de funcionar. Em
particular, o DNS pode parar de funcionar porque as respostas DNS
UDP de servidores externos não conseguem mais entrar na rede. O
FTP é outro exemplo comum. Em tranferências FTP activas o servidor
remoto tenta estabelecer uma conexão de volta com o cliente para
poder transferir o arquivo solicitado.
Soluções seguras para esses problemas existem
frequentemente na forma de proxies no nível da aplicação ou
módulos de firewall para análise de protocolo. Infelizmente também
há soluções mais fáceis e inseguras. Observando que as respostas
DNS chegam pela porta 53 e o FTP activo pela porta 20 muitos
administradores caem na armadilha de apenas permitir tráfego vindo
dessas portas. Eles normalmente assumem que nenhum atacante irá
notar e explorar essas brechas no firewall. Em outros casos os
administradores consideram isso uma medida provisória de curto
prazo até que eles possam implementar uma solução mais segura.
Normalmente ele esquecem-se de fazer as actualizações de
segurança.
Administradores de rede sobrecarregados não são os únicos a
caírem nessa armadilha. Diversos produtos foram empacotados com
essas regras inseguras. Mesmo a Microsoft é culpada. Os filtros
IPsec que vieram com o Windows 2000 e com o Windows XP contém uma
regra implícita que permite todo o tráfego TCP ou UDP da porta 88
(Kerberos). Em outro caso bastante conhecido, versões do firewall
pessoal Zone Alarm, até a versão 2.1.25, permitiam qualquer pacote
UDP entrante com a porta de origem 53 (DNS) ou 67 (DHCP).
O Nmap oferece as opções -g e
--source-port (elas são equivalentes) para
explorar essas fraquezas. Apenas forneça um número de porta e o
Nmap irá enviar pacotes dessa porta onde for possível. O Nmap
utiliza números de porta diferentes para que certos testes de
detecção de SO funcionem direito e as requisições DNS ignoram a
flag --source-port porque o Nmap confia nas
bibliotecas de sistema para lidar com isso. A maioria dos rastreios(scans)
TCP, incluindo o rastreio(scan) SYN, suportam a opção completamente assim
como o rastreio(scan) UDP.
--data-length <número> (Acrescenta
dados aleatórios nos pacotes enviados)Normalmente o Nmap envia pacotes minimalistas contendo
apenas o cabeçalho. Dessa forma os pacotes TCP têm normalmente 40
bytes e os echo requests ICMP tem só 28. Esta opção faz com que o
Nmap acrescente o número informado de bytes aleatórios na maioria
dos pacotes que envia. Os pacotes de detecção de SO
(-O) não são afectados mas a maioria dos pacotes
de ping e rastreio(scan) de portas são. Isso atrasa as coisas mas pode
tornar um rastreio(scan) ligeiramente menos chamativo.
--ttl <valor> (Establece o valor do
campo time-to-live)Estabelece que o campo tempo-de-vida (time-to-live) dos
pacotes enviados terá o valor informado.
--randomize-hosts (Torna aleatória a ordem
dos anfitriões(hosts)-alvo)Informa ao Nmap que ele deve embaralhar cada grupo de, no
máximo, 8096 anfitriões(hosts) antes de efectuar o rastreio(scan).
Isso torna os rastreios(scans) menos
óbvios a vários sistemas de monitoramento de rede, especialmente
quando combina isso com as opções de temporização lentas. Se
deseja que fazer isso em grupos maiores aumente o
PING_GROUP_SZ no nmap.h e recompile. Uma
solução alternativa é gerar uma lista de endereços IP-alvos com um
rastreio(scan) de lista (-sL -n -oN
<nomedoarquivo>), embaralhar a
lista com um script Perl e então fornecer a lista completa para o
Nmap com -iL.
--spoof-mac <endereço mac, prefixo, ou nome do
fabricante> (Disfarça o endereço MAC)Solicita ao Nmap que utilize o endereço MAC informado para
todos os frames ethernet em estado bruto (raw) que ele enviar.
Esta opção implica em --send-eth para assegurar
que o Nmap realmente envie pacotes no nível ethernet. O MAC
fornecido pode assumir diversos formatos. Se for apenas a string
“0” o Nmap irá escolher um MAC completamente
aleatório para a sessão. Se a string informada for um número par
de dígitos hexa (com os pares opcionalmente separados por dois
pontos) o Nmap irá usa-la como o MAC. Se menos do que 12 dígitos
hexa forem informados o Nmap preenche o restante dos 6 bytes com
valores aleatórios. Se o argumento não for um 0 ou uma string
hexa o Nmap irá procurar no
nmap-mac-prefixes para encontrar o nome de um
fabricante contendo a string informada (não é sensível a
maiúsculas ou minúsculas). Se encontrar, o Nmap usa o OUI (prefixo
de 3 bytes) do fabricante e preenche os 3 bytes restantes
aleatoriamente. Exemplos de argumentos
--spoof-mac válidos são Apple,
0, 01:02:03:04:05:06,
deadbeefcafe, 0020F2 e
Cisco.