端口掃描:
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地址。——>殭屍掃描:極度隱蔽