nmap 學習筆記(三)

.防火牆/IDS躲避和欺騙

-f; --mtu <val> : -f選項要求掃描時(包挺ping掃描)使用小的IP包分段。其思路是將TCP頭分段在幾個包中,使得包過濾器、 IDS以及其它工具的檢測更加困難。必須小心使用這個選項,有些系統在處理這些小包時存在問題,例如舊的網絡嗅探器Sniffit在接收到第一個分段時會立刻出現分段錯誤。該選項使用一次,NmapIP 頭後將包分成8個字節或更小。因此,一個20字節的TCP頭會被分成3個包,其中2個包分別有TCP頭的8個字節,另1個包有TCP頭的剩下4個字節。當然,每個包都有一個IP頭。再次使用-f可使用 16字節的分段(減少分段數量)。使用--mtu選項可 以自定義偏移的大小,使用時不需要-f,偏移量必須是8的倍數。包過濾器和防火牆對所有的IP分段排隊,如Linux核心中的 CONFIG_IP_ALWAYS_DEFRAG配置項,分段包不會直接使用。一些網絡無法承受這樣所帶來的性能衝擊,會將這個配置禁止。其它禁止的原因有分段包會通過不同的路由進入網絡。一些源系統在內核中對發送的報文進行分段,使用iptables連接跟蹤模塊的Linux就是一個例子。當使用類似Ethereal的嗅探器時,掃描必須保證發送的報文要分段。如果主機操作系統會產生問題,嘗試使用--send-eth選項以避開IP層而直接發送原始的以太網幀。

 

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

爲使誘餌掃描起作用,需要使遠程主機認爲是誘餌在掃描目標網絡。 IDS可能會報個某個IP5-10個端口掃描,但並不知道哪個IP在掃描以及哪些不是誘餌。但這種方式可以通過路由跟蹤、響應丟棄以及其它主動機制在解決。這是一種常用的隱藏自身IP地址的有效技術。

使用逗號分隔每個誘餌主機,也可用自己的真實IP作爲誘餌,這時可使用ME選項說明。如果在第6個位置或更後的位置使用ME選項,一些常用端口掃描檢測器(Solar Designer's excellent scanlogd)就不會報告這個真實IP。如果不使用ME選項,Nmap將真實IP放在一個隨機的位置

注意,作爲誘餌的主機須在工作狀態,否則會導致目標主機的SYN洪水***。如果在網絡中只有一個主機在工作,那就很容易確定哪個主機在掃描。也可使用IP地址代替主機名(被誘騙的網絡就不可能在名字服務器日誌中發現)

誘餌可用在初始的ping掃描(ICMPSYNACK)階段或真正的端口掃描 階段。誘餌也可以用於遠程操作系統檢測(-O)。在進行版 本檢測或TCP連接掃描時,誘餌無效。

使用過多的誘餌沒有任何價值,反而導致掃描變慢並且結果不準確。 此外,一些ISP會過濾哄騙的報文,但很多對欺騙IP包沒有任何限制。

 

-S <IP_Address>  : (源地址哄騙)

在某些情況下,Nmap可能無法確定你的源地址(如果這樣,Nmap會給出 提示)。此時,使用-S選項並說明所需發送包的接口IP地址。

這個標誌的另一個用處是哄騙性的掃描,使得目標認爲是另 一個地址在進行掃描。可以想象某一個競爭對手在不斷掃描某個公司! -e選項常在這種情況下使用,也可採用-P0選項。

-e <iface>  :(使用指定的接口)

告訴Nmap使用哪個接口發送和接收報文,Nmap可以進行自動檢測,如果檢測不出會給出提示。

--source-port <portnumber>; -g <portnumber>   (源端口哄騙)

僅依賴於源端口號就信任數據流是一種常見的錯誤配置,這個問題非常好理解。例如一個管理員部署了一個新的防火牆,但招來了很多用戶的不滿,因爲他們的應用停止工作了。可能是由於外部的UDP DNS服務器響應無法進入網絡,而導致 DNS的崩潰。FTP是另一個常見的例子,在FTP傳輸時,遠程服務器嘗試和內部用建立連接以傳輸數據。

對這些問題有安全解決方案,通常是應用級代理或協議分析防火牆模塊。但也存在一些不安全的方案。注意到DNS響應來自於53端口,FTP連接來自於20端口,很多管理員會掉入一個陷阱,即允許來自於這些端口的數據進入網絡。他們認爲這些端口裏不會有值得注意的***和漏洞利用。此外,管理員或許認爲這是一個短期的措施,直至他們採取更安全的方案。但他們忽視了安全的升級。

不僅僅是工作量過多的網絡管理員掉入這種陷阱,很多產品本身也會有這類不安全的隱患,甚至是微軟的產品。Windows 2000Windows XP中包含的IPsec過濾器也包含了一些隱含規則,允許所有來自88端口(Kerberos)TCPUDP數據流。另一個常見的例子是Zone Alarm個人防火牆到2.1.25版本仍然允許源端口53(DNS) 67(DHCP)UDP包進入。

Nmap提供了-g--source-port選項(它們是等價的),用於利用上述弱點。只需要提供一個端口號,Nmap就可以從這些端口發送數據。爲使特定的操作系統正常工作,Nmap必須使用不同的端口號。 DNS請求會忽略--source-port選項,這是因爲Nmap依靠系統庫來處理。大部分TCP掃描,包括SYN掃描,可以完全支持這些選項,UDP掃描同樣如此。

 

--ttl <val>  : (設置IP time-to-live) ,設置IPv4報文的time-to-live域爲指定的值。

--spoof-mac <mac address/prefix/vendor name>  : (MAC地址哄騙) ,要求Nmap在發送原以太網幀時使用指定的MAC地址,這個選項隱含了--send-eth選項,以保證Nmap真正發送以太網包。MAC地址有幾種格式。如果簡單地使用字符串“0”Nmap選擇一個完全隨機的MAC 地址。如果給定的字符品是一個16進制偶數(使用:分隔)Nmap將使用這個MAC地址。 如果是小於1216進制數字,Nmap會隨機填充剩下的6個字節。如果參數不是016進 制字符串,Nmap將通過nmap-mac-prefixes查找 廠商的名稱(大小寫區分),如果找到匹配,Nmap將使用廠商的OUI(3字節前綴),然後隨機填充剩餘的3個節字。正確的--spoof-mac參數有:Apple 001:02:03:04:05:06deadbeefcafe0020F2,和Cisco

 

.時間和性能:

-T  <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane> (設置時間模板)

上述優化時間控制選項的功能很強大也很有效,但有些用戶會被迷惑。此外,往往選擇合適參數的時間超過了所需優化的掃描時間。因此,Nmap提供了一些簡單的方法,使用6個時間模板,使用時採用-T選項及數字(0 - 5) 或名稱。模板名稱有paranoid (0)sneaky (1)polite (2)normal(3) aggressive (4)insane (5)。前兩種模式用於IDS躲避,Polite模式降低了掃描速度以使用更少的帶寬和目標主機資源。默認模式爲Normal,因此-T3 實際上是未做任何優化。Aggressive模式假設用戶具有合適及可靠的網絡從而加速掃描。Insane模式假設用戶具有特別快的網絡或者願意爲獲得速度而犧牲準確性。

用戶可以根據自己的需要選擇不同的模板,由Nmap負責選擇實際的時間值。模板也會針對其它的優化控制選項進行速度微調。例如,-T4 針對TCP端口禁止動態掃描延遲超過10ms-T5對應的值爲5ms。模板可以和優化調整控制選項組合使用,但模板必須首先指定,否則模板的標準值會覆蓋用戶指定的值。建議在掃描可靠的網絡時使用 -T4,即使在自己要增加優化控制選項時也使用(在命令行的開始),從而從這些額外的較小的優化中獲益。

如果用於有足夠的帶寬或以太網連接,仍然建議使用-T4選項。有些用戶喜歡-T5選項,但這個過於強烈。有時用戶考慮到避免使主機崩潰或者希望更禮貌一些會採用-T2選項。他們並沒意識到-T Polite選項是如何的慢,這種模式的掃描比默認方式實際上要多花10倍的時間。默認時間選項(-T3)很少有主機崩潰和帶寬問題,比較適合於謹慎的用戶。不進行版本檢測比進行時間調整能更有效地解決這些問題。

雖然-T0-T1選項可能有助於避免IDS告警,但在進行上千個主機或端口掃描時,會顯著增加時間。對於這種長時間的掃描,寧可設定確切的時間值,而不要去依賴封裝的-T0-T1選項。

T0選項的主要影響是對於連續掃描,在一個時間只能掃描一個端口,每個探測報文的發送間隔爲5分鐘。T1T2選項比較類似,探測報文間隔分別爲15秒和0.4秒。T3Nmap的默認選項,包含了並行掃描。 T4選項與 --max-rtt-timeout 1250 --initial-rtt-timeout 500 等價,最大TCP掃描延遲爲10msT5等價於 --max-rtt-timeout 300 --min_rtt_timeout 50 --initial-rtt-timeout 250 --host-timeout 900000,最大TCP掃描延遲爲5ms
 
 
此文的很多資料摘自[url]http://nmap.org/man/zh/[/url] ,如果有引用不當之處,請及時聯繫本人。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章