python使用nmap埠掃瞄

2021-08-14 07:18:16 字數 2012 閱讀 8403

#coding=utf-8

#!/usr/bin/env python

import nmap

import optparse

def nmapscan(tgthost,tgtport):

'''#建立nmap掃瞄器,初始化portscanner模組

#class portscanner()

# __init__(self, nmap_search_path=('nmap', '/usr/bin/nmap', '/usr/local/bin/nmap', '/sw/bin/nmap', '/opt/local/bin/nmap'))

#初始化時先檢測系統中是否存在nmap版本,根據nmap_search_path中字串進行搜尋,無返回值。

'''nmscan = nmap.portscanner() #建立乙個portscanner()類物件

'''#掃瞄指定主機

#scan(self, hosts='127.0.0.1', ports=none, arguments='-sv', sudo=false)

#hosts 主機

#ports 埠

#arguments 掃瞄引數

#sudo

#返回值為目標掃瞄結果列表

'''nmscan.scan(tgthost,tgtport) #呼叫portscanner類的scan()函式,將目標和埠作為引數輸入並進行nmap掃瞄

#輸出掃瞄結果中的狀態資訊

state=nmscan[tgthost]['tcp'][int(tgtport)]['state']

print ("[*] " + tgthost + " tcp/"+tgtport +" "+state)

def main():

parser = optparse.optionparser('usage %prog ' + '-h -p ')

parser.add_option('-h', dest='tgthost', type='string', help='specify target host')

parser.add_option('-p', dest='tgtport', type='string', help='specify target port[s] separated by comma')

(options, args) = parser.parse_args()

tgthost = options.tgthost

######這段**支援以逗號分割及以-分割的埠範圍

tgtports =

tgtports_cache = str(options.tgtport).split(',')

i = int(len(tgtports_cache))

for m in range( 0,i ):

tgtports_split = str(tgtports_cache[m]).split('-')

if(len(tgtports_split) < 2):

tgtports.extend(tgtports_split)

#print(tgtports)

else:

for n in range(int(tgtports_split[0]),int(tgtports_split[1])+1):

#print(tgtports)

######以下列表是你需要掃瞄的埠列表

#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()

Python使用nmap進行埠掃瞄

python 3.x版本的nmap python 2.x版本的nmap 先cd進入到解壓的nmap裡面 e python python nmap 0.1.4 python nmap 0.1.4 再執行乙個安裝的操作 注意路徑 e python python nmap 0.1.4 python nma...

Nmap 05 Nmap埠探測技巧

目錄 1.實際場景 2.埠探測技巧 在實際環境中,當系統管理員對裝置進行管理時,或者滲透測試人員對裝置進行檢測時,並不一定對所有的服務進行操作,極有可能是對某個或者某個範圍內的服務進行檢測。如果對所有服務進行探測,就會出現耗時長,費力不討好的情況。針對此,我們很有必要了解如何使用nmap來更加靈活的...

Nmap埠探測技巧

在實際環境中,當系統管理員對裝置進行管理時,或者滲透測試人員對裝置進行檢測是,並不一定需要對所有的服務進行操作。極有可能是對某個或某個範圍的服務進行檢測。如果不管什麼情況都對所有服務進行探測,會出現耗時長,費力不討好的情況。針對這種情況,可以使用nmap來對服務進行更加靈活的探測,避免全埠探測對伺服...