Nmap高級技術與防禦措施

Nmap網絡安全審計(五)

Nmap的高級技術與防禦措施

Nmap的僞裝技術

大部分人認爲,Nmap中不應該提供逃避防火牆規則和欺騙IDS的功能。但是很多安全工具都已經提供了這些功能,因此Nmap中包含這些功能可以幫助網絡管理員增強安全性。Nmap不提供檢測和破壞防火牆及IDS系統專門工具和選項,但是卻提供了相關技術。

  1. Nmap -f 目標

    使用 -f 選項可以對Nmap發送的探測數據包進行分段。這樣將原來的數據包分爲幾個部分,目標網絡的防禦機制如包過濾,防火牆等在對這些數據包進行檢測的時候就會變得更加困難。另外必須謹慎使用這個選項,一些比較老的系統在處理分段的包時會經常出現死機的情況。

nmap -f 192.168.0.103

Nmap高級技術與防禦措施

在這裏想要看的更直觀一些的話,我們可以通過抓包工具對這個步驟進行抓包。我們就會發現大量的數據包上面都含有 Fragmented IP protocol 的標誌。這個標誌就說明這些數據包都是分段的報文。
我們在檢測結果中可以發現有一個warning的提示,這個提示說明我們剛纔所演示的功能可能在windows下無法正常工作。

  1. -mtu(使用指定的MTU)

    MTU(最大輸出單元)是指一種通信協議的某一層上面所能通過的最大數據包大小。一般來說,以太網的MTU值默認是1500 bytes,這個含義就是指當發送者的協議高層向IP層發送了長度爲2008 bytes數據報文,則該報文再添加20 bytes的IP包頭後,IP包的總長度是2028 bytes。爲2028大於1500,因此該數據報文就會被分片。
    在Nmap中使用 -mtu 參數可以指定MTU的大小。這裏 MTU 的值必須是8的整數倍。

nmap --mtu 16 192.168.0.103

因爲我這裏的windows沒有操作成功我這裏就暫時不貼圖了。在這裏我們同樣使用抓包工具查看,我們會發現每個發送的數據包大小都被修改成了16bytes。

  1. -D <decoy1[,decoy2][,ME],...>(使用誘餌主機隱蔽掃描)

    通常在對目標進行掃描時,有可能會被發現。一個比好用的方法就是同時僞造大量的主機地址對目標進行掃描,這是目標主機及時發現了有人正在進行掃描,但是由於掃描數據包來自於多個主機,即使是IDS也只能知道目前正在被掃描,並不知道到底是哪臺主機在進行掃描。這是一種常用的隱蔽自身IP的技術。

    Nmap中支持使用誘餌主機,在掃描時,使用選項-D來指定誘餌主機,使用逗號分隔每個誘餌IP地址,也可以使用自己的真實IP做爲誘餌,自己的ip地址可以使用ME選項。如果在第六個位置和更後的位置使用ME選項,一些常用的端口掃描檢測器就不會報告這個真實IP。如果不使用ME選項,Nmap將真實IP放在一個隨機位置。

    作爲誘餌的主機,必須處於工作狀態中,否則這次掃描就可能變成SYN FLOOD,也就是我們常說的DDoS。如果網絡中只有一臺主機在工作,無論你產生多少個誘餌,都是這一臺主機在掃描。

    在我們之前講到的Ping掃描(ICMP、SYN、ACK等)階段或真正的端口掃描。以及遠程操作系統檢測階段,都可以使用誘餌主機選項。但是在進行版本檢測或TCP連接掃描時,誘餌主機選項是不能使用的。

    我們用這條命令來進行測試,在參數-D 後面加上RND:10 表示產生十臺誘餌主機。(產生的誘餌主機的數量越多,會導致掃描變慢,而且結果不準確。)

nmap -D RND:10 192.168.0.103

Nmap高級技術與防禦措施

這個時候我們使用抓包工具進行抓包檢測的話,我們就可以發現很多源地址不一樣的數據包發送。

  1. --source-port <portnumber>;-g <portnumber>(源端口欺騙)

    網絡安全控制中有一種訪問控制列表技術(Access Control Lists, ACL)。這種技術主要是依靠ip地址和端口數來對數據包進行限制,有時候需要保證DNS和FTP協議正常工作,DNS響應來自53端口,FTP連接來自於20端口,很多時候網絡管理員會直接允許來自於這些端口的數據進入網絡,這樣做其實就是在防護的網絡邊界上開的一個漏洞。

    Nmap提供了-g和--source-port參數,用於利用上述弱點,nmap就可從不常用或被遺忘的端口發送數據,下面我們來測試一下,將掃描的源端口指定爲8888。

    nmap -g 8888 192.168.0.103

    Nmap高級技術與防禦措施

    在這裏我們也可以通過抓包工具,對發送出去的數據包進行檢測,在數據包中的Source port 字段中可以看到源端口爲8888。

5.--date-length <number> (發送報文時附加隨機數據)

默認情況下,Nmap發送到報文中只包含頭部,內容部分是空的。,因此,TCP的數據包大小隻有40字節,而ICMP ECHO請求只有28字節。我們在之前也講到這種空的報文,很容易被網絡中檢測機制發現,所以在試圖通過這些網絡的檢測機制時,可以在數據包上附加指定數量的隨機字節,這個選項會使得大部分Ping和端口掃描變慢,但是影響並不大。
使用 --data-length 指定爲25

nmap --data-length 25 192.168.0.103

Nmap高級技術與防禦措施

想要進一步查看是否更改成功的話,還需要通過抓包軟件。在抓包軟件中可以看到發送出去的數據包的data部分的長度是25字節。

  1. --ttl <value> (設置IP time to live )

    TTL(time to live 生存時間)。Nmap中可以設置IPv4數據包的ttl域爲指定的值,指定參數爲 -ttl

    nmap -ttl 25 192.168.0.103

    在這裏就不再去貼圖片了,因爲結果都是一樣的。不一樣的就是需要自己通過抓包軟件去分析數據包中被修改過的值。

  2. --spoof-mac <mac address ,prefix ,or vendor name> (MAC地址欺騙)

    通過這個選項可以人爲指定Nmap在進行掃描工作時發送的Mac地址。這個選項默認使用了 --send-eth 參數,這樣Nmap發送的纔是真正的以太網包。Nmap支持多種格式,如果簡單使用字符串 0 ,Nmap選擇一個完全隨機的MAC地址。如果給定的字符是一個使用分號分隔的十六進制偶數,Nmap將使用這個MAC地址。如果是小於12的十六進制數字,Nmap會隨機填充剩下的六個字節。如果參數不是0和十六進制字符串,Nmap將通過Nmap-mac-prefixes查找廠商名稱,如果找到匹配,將使用廠商的三字節前綴,然後隨機填充剩下的三個字節。

    僞造MAC地址的掃描方法(-PR ARP ping 掃描)

    nmap -sn -PR --spoof-mac 0 192.168.0.103

    Nmap高級技術與防禦措施

TCP Connect掃描的檢測

這個TCP Connect掃描之前說過,這裏就不再多寫了,算了還是寫上吧...

TCP Connect掃描是一種最爲基本的掃描方式。Nmap向一個開放的端口發起了連接請求,並且完成三次握手,之後結束了這次連接。這種掃描很容易被檢測到,因爲Nmap會向每一個目標端口發送一個數據包。如果該端口是關閉的,目標會回覆一個RST和ACK標誌位的數據包。如果該端口是開放的,目標會回覆一個設置了SYN/ACK標誌位的數據包。然後Nmap會發送一個設置了ACK標誌位的數據包來完成三次握手,在這個過程中會產生大量錯誤消息。

下面來測試分析一下這個實驗,我這裏使用物理機192.168.126.1去掃描虛擬機192.168.126.139
我們可以看到這段時間內有大量的TCP Connect活動出現,如此頻繁地對大量TCP端口發起連接很可能意味有人正在對你的主機進行掃描。如果網絡中部署了網絡檢測設備,當達到一定的閾值時就會報警。

Nmap高級技術與防禦措施

可以看出這個時間段內正在嘗試大量的端口進行連接
Nmap高級技術與防禦措施

操作系統掃描的防範

當維護一個網絡的時候,最簡單的辦法無非爲系統及時打上補丁,及時安裝更新等。但是真正這樣並不能阻止他人的掃描,最好增加防火牆之類的安全設備。另外,Morph和IP Personality兩款軟件也是極爲優秀的防護軟件。
防範網絡中進行的操作系統掃描,最好的辦法就是提供虛假的信息來迷惑對方,可以使用上述兩個軟件。
具體的我也沒用過,感興趣的可以自己下一下試試。

問題

應該沒啥大問題,這個環節主要是需要Nmap配合wireshake進行使用,這樣實驗的效果會更明顯,理解起來也有幫助。

爲什麼最後一點才貼wireshake的圖,因爲我懶的貼圖。

過段時間會更新wireshake的用法和操作

文章可能有的地方寫的比較多,什麼TTL,ACL這種基礎的網絡知識其實都不想寫,就當給自己複習了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章