端口掃描介紹(一)——帶殭屍掃描詳解

端口掃描
1、端口對應網絡服務及應用端程序
2、服務端程序的漏洞通過端口攻入
3、發現開放的端口
4、更具體的攻擊面

 

UDP端口掃描:
假設ICMP port-unreachable 響應代表端口關閉(目標系統不響應ICMP port-unreachable 時,可能產生誤判)

 

對於完整的UDP應用層請求:準確性高、耗時巨大(比TCP快)

#與之前相反,響應ICMP表示端口關閉

 

掃描工具:Scapy UDP Scan、Nmap

Scapy UDP Scan:

端口關閉呈現ICMP port-unreachable,端口開放是沒有回包,同時是與三層相同的技術。

舉例:

 sr1(IP(dst="1.1.1.1")/UDP(dport=53),timeout=1,verbose=1) 
./udp_scan.py 1.1.1.1 100

 

Nmap:

基本功能有三個,一是探測一組主機是否在線;其次是掃描 主機端口,嗅探所提供的網絡服務;還可以推斷主機所用的操作系統 。Nmap可用於掃描僅有兩個節點的LAN,直至500個節點以上的網絡。Nmap 還允許用戶定製掃描技巧。通常,一個簡單的使用ICMP協議的ping操作可以滿足一般需求;也可以深入探測UDP或者TCP端口,直至主機所 使用的操作系統;還可以將所有探測結果記錄到各種格式的日誌中, 供進一步分析操作。

舉例:

nmap -sU 1.1.1.1 
#默認的1000個參數
nmap 1.1.1.1 -sU -p 53
nmap -sU 1.1.1.1 -p-  //1-65535端口
nmap -iL iplist.txt -sU -p 1-200
//同樣基於ICMP的不可達

 列舉多餘的:

進行ping掃描,打印出對掃描做出響應的主機,不做進一步測試(如端口掃描或者操作系統探測):

nmap -sP 192.168.1.0/24

僅列出指定網絡上的每臺主機,不發送任何報文到目標主機:

nmap -sL 192.168.1.0/24

探測目標主機開放的端口,可以指定一個以逗號分隔的端口列表(如-PS22,23,25,80):

nmap -PS 192.168.1.234

使用UDP ping探測主機:

nmap -PU 192.168.1.0/24

使用頻率最高的掃描選項:SYN掃描,又稱爲半開放掃描,它不打開一個完全的TCP連接,執行得很快:

nmap -sS 192.168.1.0/24

當SYN掃描不能用時,TCP Connect()掃描就是默認的TCP掃描:

nmap -sT 192.168.1.0/24

UDP掃描用-sU選項,UDP掃描發送空的(沒有數據)UDP報頭到每個目標端口:

nmap -sU 192.168.1.0/24

確定目標機支持哪些IP協議 (TCP,ICMP,IGMP等):

nmap -sO 192.168.1.19

探測目標主機的操作系統:

nmap -O 192.168.1.19

nmap -A 192.168.1.19


這個選項掃描主機scanme中 所有的保留TCP端口。選項-v啓用細節模式。

nmap -sS -O scanme./24

 

TCP端口掃描:


1、基於連接的協議
2、三次握手:
            1-SYN——>2-SYN、ACK——>3-ACK
3、隱蔽掃描        //不與目標建立完整連接,不讓對方知道我們在掃描他
4、殭屍掃描     //比隱蔽掃描更加隱蔽
5、全連接掃描     //完整的三次握手,行爲暴露
#所有的TCP掃描方式都是基於三次握手的變化來判斷目標端口狀態

 


隱蔽掃描————syn                        //只發SYN包,不發ACK包


1、不建立完整連接
2、應用日誌不記錄掃描行爲————隱蔽

 

殭屍掃描:


1、極度隱蔽
2、實施條件苛刻
3、可僞造源地址                       //目標與自己必須要有
4、選擇殭屍機         //要有殭屍機,即:下面的要求
        閒置系統           //特別閒
5、系統使用遞增的IPID
            0
            隨機


過程(掃描者、殭屍機、目標機):


端口打開狀態:
一:由掃描者給殭屍機發一個SYN/ACK包(爲發生三次握手),正常情況下,殭屍機返回一個RST給掃描者,收到一個IPID值
二:掃描者向目標服務器發一個SYN包(這個包是要僞造源地址的,不能透露scanner,這個包的源IP是要爲造成殭屍機的IP),因爲是SYN包,這個目標服務器就會向殭屍機的IP發一個SYN/ACK包,殭屍機(莫名奇妙收到一個ACK包,這個包是我們掃描目標,目標回給我們的ACK包,但是是殭屍機的IP,所以包給了殭屍機)收到後,有兩個ACK包?(一個我們發的,一個目標給的),殭屍機看來這個不是正常的數據包,再返回一個RST包,因爲是遞增的就是IPID+1。
因爲不能讓IPID穩定能是被識別,殭屍機要足夠空閒不可發生通信。
三:掃描者再向殭屍機發一個SYN/ACK,殭屍機而話不說直接回一個RST包,這裏的RST的IPID+2了
四:如果掃描者接受到IPID+2這個RST包,那麼就能判定目標的這個端口就是開放的狀態。

(IPID——>IPID+1——>IPID+2)

端口關閉狀態:
第一步一樣;
第二步掃描者向目標發一個SYN包,端口未開,就會給殭屍機發一個RST是IPID,殭屍機不會再跟目標通信;
第三步:掃描者給殭屍機發一個SYN/ACK包,殭屍機返回一個RST給掃描者,但是這裏掃描者掃收是IPID+1。(IPID——>IPID+1)
 

#通過一個特別繞的方式隱藏自己的IP地址。——>殭屍掃描:極度隱蔽

發佈了36 篇原創文章 · 獲贊 19 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章