1. 程式人生 > >埠掃描詳解(kali linux)

埠掃描詳解(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> 控制探測資料時間間隔。