O Nmap requer permissões de root para muitas coisas (veja abaixo). Por causa disso, é tentador usar vários esquemas (sudo NOPASSWD, setuid, etc.) para permitir que os usuários o executem sem fornecer uma senha de root. Mas isso é extremamente perigoso , já que é trivial usar o Nmap para iniciar qualquer outro comando ou shell. Por exemplo: nmap --script <(echo 'os.execute("/bin/sh")')
Felizmente, o Nmap tem suporte experimental para as capacidades do Linux . Ao instalar o Nmap com os recursos CAP_NET_RAW
, CAP_NET_ADMIN
e CAP_NET_BIND_SERVICE
, você pode permitir que usuários não privilegiados o executem com mais segurança. O próprio Nmap não pode detectar que possui esses recursos, portanto, você deve usar a opção --privileged
para informá-lo para tentar usá-los independentemente do UID. Mais discussão está disponível no link acima.
O Nmap requer permissões de root para tudo, exceto:
- Digitalização do TCP Connect (
-sT
) - Resolução de nomes DNS reverso
- Métodos de descoberta de host ("ping"), exceto para conexão TCP (
-PS
) - Detecção de versão de serviço e aplicativo (
-sV
) - A maioria dos scripts do NSE (Nmap Scripting Engine)