首先我們供給一台主機要進行的步驟就是對其主機埠的掃瞄,檢視其中開放的埠。
我們首先建立乙個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是...