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)