استفاده از nmap در پایتون

مشکل

برای کارهای برنامه نویسی و تست نفوذ با اینکه نسخه جدید پایتون 3 هستش ولی بیشتر توصیه میشه از آخرین نسخه 2 استفاده بشه که فرق اساسیش توی یسری از توابعه، ازونجایی که پایتون بیشتر برای کارهای تست نفوذ استفاده میشه بهتره برای ساخت یه پورت‌اسکنر از اتصال نرم‌افزار nmap‌به اسکریپتی که مینویسیم استفاده کنیم. python-nmap دو نسخه داره، یکی 0.3.4 و یکی 0.1.4. نکته مهم در استفاده از این نرم افزار اینه که نسخه 0.3.4 با پایتون 2 درست کار نمیکنه و ممکنه اسکریپتتون ارور بده. یکی از ارورهایی که ممکنه بهش برخوریدو مثال میزنم:

نرم افزار پورت‌اسکنر با استفاده از nmap

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import nmap
import optparse
 
def nmapScan(tgtHost, tgtPort):
    nmScan = nmap.PortScanner()
    nmScan.scan(tgtHost, tgtPort)
    state = nmScan[tgtHost]['tcp'][int(tgtPort)]['state']
    print ' [*] ' + tgtHost + 'tcp/' + tgtPort + " " + state
 
def main():
    parser = optparse.OptionParser('usage%prog -H <target host> -p <target port>')
    parser.add_option('-H', dest = 'tgtHost', type = 'string', help = 'specify target host')
    parser.add_option('-p', dest = 'tgtPort', type = 'string', help = 'specify target port')
    (options, args) = parser.parse_args()
    tgtHost = options.tgtHost
    tgtPorts = str(options.tgtPort).split(',')
    if (tgtHost == None) | (tgtPorts[0] == None):
        print parser.usage
        exit(0)
    for tgtPort in tgtPorts:
        nmapScan(tgtHost, tgtPort)
 
if __name__ == '__main__':
    main()

اروری که در صورت استفاده از نسخه اشتباه بهش بر میخورید:

Traceback (most recent call last):
  File "pynmap.py", line 24, in <module>
    main()
  File "pynmap.py", line 21, in main
    nmapScan(tgtHost, tgtPort)
  File "pynmap.py", line 7, in nmapScan
    state = nmScan[tgtHost]['tcp'][int(tgtPort)]['state']
  File "/usr/local/lib/python2.7/dist-packages/nmap/nmap.py", line 567, in __getitem__
    return self._scan_result['scan'][host]
KeyError: 'YOUR_SPECIFIED_HOST'

راه حل

پس راه حل اینه که برای پایتون نسخه 2 از نسخه 0.1.4 و برای پایتون نسخه 3 از 0.3.4 استفاده کنیم.
نظری وجود ندارد. - نظر دهید

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*