Osclass не возвращается с Nmap при использовании флага -O в Python - PullRequest
0 голосов
/ 14 ноября 2018

После прочтения этого ответа я попытался написать простой вызов nmap в Python, чтобы получить osclass в возвращаемых результатах.

Мой сценарий выглядит следующим образом:

import sys
import os
import nmap

try:
    nm = nmap.PortScanner()
except nmap.PortScannerError:
    print('Nmap not found', sys.exc_info()[0])
    sys.exit(1)
except:
    print("Unexpected error:", sys.exc_info()[0])
    sys.exit(1)

if(os.getuid() == 0):
    nm.scan("127.0.0.1", arguments="-O")
    print(nm.command_line())
    if 'osclass' in nm["127.0.0.1"]:
            for osclass in nm["127.0.0.1"]["osclass"]:
                    print('OsClass.type : {0}'.format(osclass['type']))
                    print('OsClass.vendor : {0}'.format(osclass['vendor']))
                    print('OsClass.osfamily : {0}'.format(osclass['osfamily']))
                    print('OsClass.osgen : {0}'.format(osclass['osgen']))
                    print('OsClass.accuracy : {0}'.format(osclass['accuracy']))
                    print('')
    else:
            print("no osClass detected")

И мой вывод возвращается при запуске с привилегиями root:

nmap -oX - -O 127.0.0.1

osClass не обнаружен

...