埠掃描詳解(kali linux)
簡介
nmap 是被專業人員廣泛使用的一款埠掃描工具,使用靈活,它已經是滲透人員必備的工具。還具備以下功能
(1)主機探測:Nmap 可查詢目標網路中的線上主機。預設情況下,Nmap通過4方式———ICMP echo 請求(ping)、向 443 埠傳送 TCP SYN 包、向80 埠傳送 TCP ACK包和ICMP 時間戳請求——發現目標主機。
(2)服務/版本檢測:在發現開放埠後,Nmap 可進行進一步檢查目標主機的檢測服務協議、應用程式名稱、版本號等資訊。
(3)作業系統檢測
(4)網路路由跟蹤:它通過多種協議訪問目標主機的不同埠,以儘可能訪問目標主機。Nmap路由跟蹤功能從TTL的高值開始測試,逐步遞減,到零為止。
(5)Nmap指令碼引擎:如果你想要實現這個功能,可以利用他的指令碼引擎手寫一個檢測指令碼。目前,Nmap可檢查網路服務的漏洞,還可以列舉目標系統的資源。
kali Linux安裝
apt-get update
apt-get install nmap
1.指定掃描目標
(1)單個主機如 nmap 10.29.1.113
(2)以CIDR標記法表示整個網段 如 nmap 10.29.1.0/24
(3)十進位制的IP區間如 nmap 10.29.1-5.1 表示4個網段的IP
(4)多個主機目標10.29.1.1 10.29.3-5.1
ps: nmap 僅支援標準格式的IPv6地址和以主機名方式指定的IPv6主機地址
現在進行掃描10.29.1.0/24 整個網段。 抓取一下資料包如圖
表示確實有流量的流經。
根據以上的資訊可以得知,我們的主機從44587埠向目標主機的443埠(https)傳送含有SYN標識位的資料包。預設情況下,在Kali Linux 裡以root身份啟動 Nmap後,程式傳送的資料包都會設有SYN標識
再看看 掃描後得到的一小段資訊(資訊很多,這裡隨便選兩個解釋)
上面掃描了整個網段的ip,掃描了1000個10.29.1.23 這個主機的埠,全是關閉的。
下面的 999個關閉只有一個開啟。(原諒一下我的打碼,畢竟是別人的隱私,嘿嘿)
2. TCP 掃描
預設情況下Nmap會採用 TCP SYN 掃描。許可權不足的情況下進行TCP連線掃描。主要掃描方式如下:
TCP 連線掃描 (-sT),和所有埠建立三次握手,比較慢,而且會被目標記錄。許可權不足時預設此方式。
SYN 掃描 -sS)使用SYN標誌位的資料包進行埠探測,速度非常嗨皮,不會建立三次握手,隱蔽,高階許可權下預設此方式。
TCP NULL (-sN) FIN、(-sF)、XMAS(-sX)掃描
TCP Maimon 掃描 (-sM)含有 FIN\ACK 標識,如果埠開放則丟棄資料包,如果關閉則回覆 RST
TCP ACK 掃描(-sA)檢測目標是否採用防火牆,並且能確定哪些埠能被防火牆遮蔽,只有一個ACK標識
TCP 視窗掃描(-sW)返回欄位 ,開放為正值,否則為0.
TCP Idle掃描(-sI)採用這種技術後,通過指定的殭屍機發送掃描資料包,本機不與目標主機直接通訊。如果對方網路裡有IDS,IDS將認為發起掃描的是殭屍主機。
3.UDP掃描選項
UDP僅有一種掃描方式(-sU),雖然沒有TCP方式的可靠度高但是不能輕視,畢竟UDP埠代表著可能會有價值的服務端程式。
UDP掃描最大的問題是效能問題,Linux核心限制1秒最多傳送一次 ICMP Port UNreachable資訊,按照這個速度,對一臺主機的65536個UDP埠進行完整的掃描必定超過18個小時。
改善速度的主要方式:
(1)進行併發的UDP掃描
(2)優先掃描常用埠
(3)在防火牆後面掃描
(4)啟用 --host-timeout 選項跳過響應過慢的主機
假如我們需要找到目標主機開放了哪些UDP 埠。僅掃描53(DNS)和161埠(SNMP)如下
nmap -sU 10.29.133 -p 53,161
4.目標埠選項
預設情況下,Nmap將從每個協議的常用埠中隨機選擇1000個埠進行掃描。其nmap-services 檔案對埠命中率進行了排名。如需更改配置,可使用以下幾個選項。
(1)-p 埠範圍 -p 1-1024
(2)快速掃描 -F 僅將掃描100常用的埠
(3)-r 順序掃描 從小到大順序掃描
(4)-top-ports <1 or greater> 掃描nmap-services 裡面排名前N的埠。
以NULL方式掃描目標主機的22 25 埠如下
nmap -sN -P 22,25 10.19.1.133 如圖
捕獲資料資訊如下
5.輸出選項
將掃描結果輸出便於閱讀
nmap 10.29.1.26 -oX ~/Desktop/test.xml
從上面結果看出 TCP協議下的 7800 埠是開啟的
檢視
HTML檔案的可讀性比XML要高,所以一般會將XML轉換成HTML格式
xsltproc ~/Desktop/test.xml -o text.html
直接在桌面上點開就可以檢視掃描結果如下
如果埠開的多了可以用這種方法,它可以儲存你每次掃描完後的結果以免丟失或者讓你再次掃描。
強力檢測選項
nmap -A ip 檢測目標主機下述資訊(時間較長),包含以下資訊:
檢測服務端軟體版本資訊 nmap -sV ip
作業系統 系統識別 nmap -O ip
指令碼掃描 -sC
Traceroute --traceroute
6.指令碼引擎
auth 使用暴力破解等技術找出目標系統的認證資訊
default 啟用 -sC或者 -A 執行。速度快,輸出內容豐富,不會侵入目標系統,能洩露資訊給第三方
discover 用於探索網路
dos 拒絕服務攻擊
exploit 利用目標系統的安全漏洞(獲取許可之後進行)
external 可能洩露資訊給第三方
instrusive 導致目標系統崩潰,或者耗盡目標系統所有資源
fuzzer 對目標系統進行測試
malware 檢查目標系統上是否有惡意軟體或者後門
safe 不會導致崩潰、拒絕服務且不利用漏洞
version 配合 -sV 選項,對目標的服務程式深入版本檢測
vuln 檢測目標系統的安全漏洞
在 kali 裡,指令碼位於/usr/share/nmap/scripts.共 430 多個指令碼。
7.規避檢測
-f (使用小資料包)避免對方識別出我們探測的資料包
-mtu 調整資料包大小,必須是8的倍數,否則報錯
-D 誘餌 這個選項指定假ip,使用之後掃描的時候回摻雜其他的ip,以藏木於林的方法隱藏我方ip,也就是說對方的log還會記錄本機的真實ip,你也可以使用RAD生成隨機的假IP地址,或者用 RND: number 的引數生成<number>個ip。你所指定的誘餌主機應當在線,否則很容易擊潰目標主機。另外過多的誘餌可能會造成網路擁擠,尤其是在掃描網路的時候,最好避免這種現象。
--source-port<portnumber> 或 -g (模擬源埠)如果防火牆只允許某些源埠的入站流量,這個選項就非常有用
--date-length 改變資料包的長度與,避免被識別。
--max-parallelism 限制Nmap的併發掃描的最大連線數
--scan-delay <time> 控制探測資料時間間隔。