Executando o Nmap no Ubuntu

3

Estou executando um script python que executa o nmap em um determinado conjunto de parâmetros. O ponto é automatizar isso, então não tenho que interagir com o cli. Toda vez que eu corro meu script, eu sou solicitado com a mensagem de erro:

 'You requested a scan type which requires root priveleges.\nQUITTING!\n'

Eu entendo que posso colocar "sudo" na frente do meu comando, mas o objetivo do meu script é não interagir com o cli. Eu dei a propriedade do script para o meu usuário, mas ainda tenho o mesmo erro. Existe uma maneira em que eu possa executar o nmap como um super usuário toda vez sem ter que dar o comando sudo? Toda ajuda apreciada!

    
por John Wick 09.08.2017 / 17:12

2 respostas

2

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)
por bonsaiviking 10.08.2017 / 16:33
0

Uma solução seria adicionar esse comando específico ao arquivo sudoers ,

Cmnd_Alias    NMAP = /path/to/nmap, /path/to/script

username      ALL=(ALL:ALL) NOPASSWD: NMAP

Algo ao longo desta linha permitiria que você fizesse script dos comandos sudo , mas não precisasse digitar uma senha especificamente para esse comando. Você pode optar por fazer isso apenas para essa combinação de script / usuário, para que tudo no script seja executado como raiz, ou você poderia fazê-lo especificamente para o comando nmap e ter muitas sudo entradas em seu script.

Escolha seu veneno ...

    
por ben-Nabiy Derush 09.08.2017 / 19:43