需要額外埠資訊 python進行TCP埠掃瞄

2021-10-11 14:47:18 字數 3494 閱讀 9900

首先我們供給一台主機要進行的步驟就是對其主機埠的掃瞄,檢視其中開放的埠。

我們首先建立乙個tcp的全連線的掃瞄器。我們使用socket來建立聯結器。

#測試當前主機和埠是否開放,直接使用socket連線

為了從捕獲我們的目標主機的應用標識,我們必須首先插入額外的驗證**到 connscan函式中。一旦發現開放的埠,我們傳送乙個字串資料到這個端 口然後等待響應。收集這些響應並推斷可能會得到執行在目標主機埠上的應 用程式的一些資訊。

#測試當前主機和埠是否開放,直接使用socket連線

def connscan(host,port):

try:

connskt = socket.socket(socket.af_inet, socket.sock_stream)

connskt.connect((host,port))

connskt.send('pythonrn')

results = connskt.recv(100)

print("tcp open port:" + str(port))

print('[+] ' + str(results))

except:

print('tcp closed:'+str(port))

def portscan(tgthost, tgtports):

try:

tgtip = socket.gethostbyname(tgthost)

except:

print("[-] cannot resolve '%s': unknown host" % tgthost)

return

try:

tgtname = socket.gethostbyaddr(tgtip)

print('n[+] scan results for: ' + tgtname[0])

except:

print('n[+] scan results for: ' + tgtip)

socket.setdefaulttimeout(1)

for tgtport in tgtports:

print('scanning port ' + str(tgtport))

connscan(tgthost, int(tgtport))

portscan('www.qq.com', [22,80,443,3389,1433,23,445])

因為每乙個socket都有時間延遲,每乙個socket掃瞄都將會耗時幾秒鐘,雖 然看起來無足輕重,但是如果我們掃瞄多個埠和主機延遲時間將迅速增大。 理想情況下,我們希望這些socket按順序掃瞄。引入python執行緒。執行緒提供 了一種同時執行的方式。在我們的掃瞄中利用執行緒,只需將 portscan()函式的迭代改一下。請注意,我們可以把每乙個connscan()函式都 當做是乙個執行緒。在迭代的過程中產生的每乙個執行緒將在同時執行。

for tgtport in tgtports:

print('scanning port ' + str(tgtport))

t = threading.thread(target=connscan, args=(tgthost,

int(tgtport)))

t.start()

import nmap

def nmapscan(tgthost, tgtport):

nmscan = nmap.portscanner()

results = nmscan.scan(tgthost, tgtport)

state = results['scan'][tgthost]['tcp'][int(tgtport)]['state']

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

nmapscan('10.108.x.x','8080')

udp繫結埠資訊

會變的埠號 重新執行多次指令碼,然後在 網路除錯助手 中,看到的現象如下 說明 每重新執行一次網路程式,上圖中紅圈中的數字,不一樣的原因在於,這個數字標識這個網路程式,當重新執行時,如果沒有確定到底用哪個,系統缺省會隨機分配 記住一點 這個網路程式在執行的過程中,這個就唯一標識這個程式,所以如果其他...

Linux 檢視埠資訊

netstat netstat命令用於顯示與ip tcp udp和icmp協議相關的統計資料,一般用於檢驗本機各埠的網路連線情況 netstat是在核心中訪問網路及相關資訊的程式,它能提供tcp連線,tcp和udp監聽,程序記憶體管理的相關報告 linux netstat命令詳解 netstat a...

檢視機器埠資訊

開啟 執行 視窗輸入 cmd 後回車進入命令提示符視窗,在提示符下首先輸入 netstat an 並回車,其中引數 a的含義表示顯示所有連線和偵聽埠,n表示以數字格式顯示位址和埠號,命令執行後我們就可以檢視詳細的埠開放資訊了。其中active connections表示當前本機活動連線,proto是...