溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux-Python-Scapy的TCP掃描

發(fā)布時(shí)間:2020-06-20 11:22:46 來源:網(wǎng)絡(luò) 閱讀:2418 作者:wangbaoping1 欄目:安全技術(shù)
  1. TCP 連接掃描:
    客戶端與服務(wù)器建立 TCP 連接要進(jìn)行一次三次握手,如果進(jìn)行了一次成功的三次握手,則說明端口開放;
  2. TCP SYN 掃描(也稱為半開放掃描或stealth掃描):
    這個(gè)技術(shù)同 TCP 連接掃描非常相似。同樣是客戶端向服務(wù)器發(fā)送一個(gè)帶有 SYN 標(biāo)識(shí)和端口號(hào)的數(shù)據(jù)包,如果目標(biāo)端口開發(fā),則會(huì)返回帶有 SYN 和 ACK 標(biāo)識(shí)的 TCP 數(shù)據(jù)包;
  3. TCP 圣誕樹(Xmas Tree)掃描:
    在圣誕樹掃描中,客戶端會(huì)向服務(wù)器發(fā)送帶有 PSH,FIN,URG 標(biāo)識(shí)和端口號(hào)的數(shù)據(jù)包給服務(wù)器。如果目標(biāo)端口是開放的,那么不會(huì)有任何來自服務(wù)器的回應(yīng)。如果服務(wù)器返回了一個(gè)帶有 RST 標(biāo)識(shí)的 TCP 數(shù)據(jù)包,那么說明端口處于關(guān)閉狀態(tài)
  4. TCP FIN 掃描:
    FIN 掃描會(huì)向服務(wù)器發(fā)送帶有 FIN 標(biāo)識(shí)和端口號(hào)的 TCP 數(shù)據(jù)包。如果沒有服務(wù)器端回應(yīng)則說明端口開放。如果服務(wù)器返回一個(gè) RST 數(shù)據(jù)包,則說明目標(biāo)端口是關(guān)閉的。
  5. TCP 空掃描(Null):
    在空掃描中,客戶端發(fā)出的 TCP 數(shù)據(jù)包僅僅只會(huì)包含端口號(hào)而不會(huì)有其他任何的標(biāo)識(shí)信息。如果目標(biāo)端口是開放的則不會(huì)回復(fù)任何信息。如果服務(wù)器返回了一個(gè) RST 數(shù)據(jù)包,則說明目標(biāo)端口是關(guān)閉的。
  6. TCP ACK 掃描:ACK 掃描不是用于發(fā)現(xiàn)端口開啟或關(guān)閉狀態(tài)的,而是用于發(fā)現(xiàn)服務(wù)器上是否存在有狀態(tài)防火墻的。它的結(jié)果只能說明端口是否被過濾。再次強(qiáng)調(diào),ACK 掃描不能發(fā)現(xiàn)端口是否處于開啟或關(guān)閉狀態(tài)??蛻舳藭?huì)發(fā)送一個(gè)帶有 ACK 標(biāo)識(shí)和端口號(hào)的數(shù)據(jù)包給服務(wù)器。如果服務(wù)器返回一個(gè)帶有 RST 標(biāo)識(shí)的 TCP 數(shù)據(jù)包,則說明端口沒有被過濾,不存在狀態(tài)防火墻。如果目標(biāo)服務(wù)器沒有任何回應(yīng)或者返回ICMP 錯(cuò)誤類型3且代碼為1,2,3,9,10或13的數(shù)據(jù)包,則說明端口被過濾且存在狀態(tài)防火墻。
  7. TCP 窗口掃描:
    TCP 窗口掃描的流程同 ACK 掃描類似,同樣是客戶端向服務(wù)器發(fā)送一個(gè)帶有 ACK 標(biāo)識(shí)和端口號(hào)的 TCP 數(shù)據(jù)包,但是這種掃描能夠用于發(fā)現(xiàn)目標(biāo)服務(wù)器端口的狀態(tài)。在 ACK 掃描中返回 RST 表明沒有被過濾,但在窗口掃描中,當(dāng)收到返回的 RST 數(shù)據(jù)包后,它會(huì)檢查窗口大小的值。如果窗口大小的值是個(gè)非零值,則說明目標(biāo)端口是開放的。
    一、SYN掃描:

    i=IP()
    t=TCP()
    i.dst='10.202.32.0/24'/連續(xù)地址段
    t.sport=8888
    t.dport=[3389,80,21,22,23,443,445,137,138,139]/(1,1024)
    []表示多個(gè)端口,()表示連續(xù)端口
    repose=(i/t)
    repose=(i/t)
    t.flags='S'/產(chǎn)生標(biāo)志位也可以寫數(shù)據(jù)例如ACK寫16

從下到上FIN—SYN—RST—PSH—ACK—URG
1 2 4 8 16 32

ans,unans=sr(respose)
ans.show()
0000 IP / TCP 192.168.80.250:8888 > 10.202.32.1:ssh S ==> IP / TCP 10.202.32.1:ssh > 192.168.80.250:8888 SA / Padding
0001 IP / TCP 192.168.80.250:8888 > 10.202.32.74:microsoft_ds S ==> IP / TCP 10.202.32.74:microsoft_ds > 192.168.80.250:8888 SA / Padding
0002 IP / TCP 192.168.80.250:8888 > 10.202.32.74:netbios_ns S ==> IP / TCP 10.202.32.74:netbios_ns > 192.168.80.250:8888 RA / Padding
0003 IP / TCP 192.168.80.250:8888 > 10.202.32.74:netbios_ssn S ==> IP / TCP 10.202.32.74:netbios_ssn > 192.168.80.250:8888 SA / Padding
對(duì)數(shù)據(jù)進(jìn)行監(jiān)控:
sniff(iface="eth0",prn=lambda x:x.show() )
對(duì)數(shù)據(jù)進(jìn)行查看處理:
ans.summary( lambda(s,r): r.sprintf("%IP.src% \t %TCP.sport% \t %TCP.flags%") )
10.200.230.1 ssh SA
10.200.230.11 3389 SA
10.200.230.11 loc_srv SA
10.200.230.11 microsoft_ds SA
10.200.230.12 3389 SA
10.200.230.12 https SA
10.200.230.40 3389 SA
10.200.230.41 3389 SA
10.200.230.42 loc_srv SA
10.200.230.42 microsoft_ds SA
10.200.230.50 3389 SA
二、TCP ACK 掃描;
i=IP()
i.dst='10.200.193.0/24'
t=TCP()
t.flags='A'
t.sport=9999
t.dport=[3389,21,22,23,80,443]
respose=(i/t)
ans,unans=sr(respose)
ans.show()
0000 IP / TCP 192.168.80.250:9999 > 10.200.193.0:3389 A ==> IP / TCP 10.200.193.0:3389 > 192.168.80.250:9999 R / Padding
0001 IP / TCP 192.168.80.250:9999 > 10.200.193.0:ftp A ==> IP / TCP 10.200.193.0:ftp > 192.168.80.250:9999 R / Padding
0002 IP / TCP 192.168.80.250:9999 > 10.200.193.0:ssh A ==> IP / TCP 10.200.193.0:ssh > 192.168.80.250:9999 R / Padding
0003 IP / TCP 192.168.80.250:9999 > 10.200.193.0:telnet A ==> IP / TCP 10.200.193.0:telnet > 192.168.80.250:9999 R / Padding
如果服務(wù)器返回一個(gè)帶有 RST 標(biāo)識(shí)的 TCP 數(shù)據(jù)包,則說明端口沒有被過濾,不存在狀態(tài)防火墻。
對(duì)數(shù)據(jù)進(jìn)行監(jiān)控:
sniff(iface="eth0",prn=lambda x:x.show() )
對(duì)數(shù)據(jù)進(jìn)行查看處理:
ans.summary( lambda(s,r): r.sprintf("%IP.src% \t %TCP.sport% \t %TCP.flags% \t %ICMP.type%") )
10.200.193.1 3389 R ??
10.200.193.1 ftp R ??
10.200.193.1 ssh R ??

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI