-聖
TCP connect()掃描:這是最基本的TCP掃描方法。Connect()是操作系統提供的用於打開連接的系統調用。如果目標端口正在偵聽,connect()將成功返回,否則端口不可達。這項技術最大的好處就是不需要root權限。任何UNIX用戶都可以自由使用這個系統調用。這種掃描很容易被檢測到,目標主機的日誌中會記錄大量的連接請求和錯誤信息。
-黨衛軍
TCP SYN:因為不需要打開所有的TCP連接,所以這種技術通常被稱為半開。您可以發送TCP同步數據包(SYN)並等待響應。如果對方返回SYN|ACK包,說明目標端口在監聽;如果返回RST數據包,則意味著目標端口沒有監聽器;如果收到SYN|ACK包,源主機將立即發送壹個RST(重置)包以斷開與目標主機的連接,這實際上是由我們的操作系統內核自動完成的。這種技術最大的優點是很少有系統能夠在系統日誌中記錄這壹點。但是,您需要root權限來定制SYN包。
-sF -sF -sN
Secret FIN數據包掃描、聖誕樹和空掃描模式:在SYN掃描不確定時使用。壹些防火墻和包過濾軟件可以監控發送到受限端口的SYN數據包,壹些程序如synlogger和courtney可以檢測到這些掃描。這些先進的掃描方法可以避開這些幹擾。這些掃描方法的理論基礎是,關閉的端口需要用RST包響應妳的探測包,而打開的端口必須忽略有問題的包(參考RFC 793第64頁)。FIN掃描使用暴露的FIN數據包進行檢測,而聖誕樹掃描打開數據包的FIN、URG和PUSH標誌。不幸的是,微軟決定完全忽略這個標準,另起爐竈。所以這種掃描方式對Windows95/NT無效。但是,從另壹個角度來看,妳可以用這個方法來區分兩個不同的平臺。如果使用這種掃描方法可以找到打開的端口,則可以確定目標沒有運行Windows。如果使用-sF、-sX或-sN掃描顯示所有端口關閉,使用SYN掃描顯示有打開的端口,則可以確定目標主機可能運行的是Windwos系統。現在這種方法用處不大,因為nmap有嵌入式操作系統檢測功能。還有其他幾個系統使用與windows相同的處理方法,包括思科、BSDI、惠普/UX、MYS和IRIX。當數據包應該被丟棄時,這些系統都從開放的端口發送復位數據包。
-sP
Ping掃描:有時候妳只是想知道此時網絡上有哪些主機在運行。Nmap可以通過向指定網絡中的每個IP地址發送ICMP回應請求數據包來完成此任務。如果主機正在運行,則做出響應。不幸的是,有些網站,如microsoft.com,會攔截ICMP回應請求數據包。但是,默認情況下,nmap也可以向端口80發送TCP ack數據包。如果您收到RST數據包,這意味著主機正在運行。nmap使用的第三種技術是發送SYN數據包,然後等待RST或SYN/ACK數據包。Root非root用戶,nmap使用connect()方法。
默認情況下(root用戶),nmap並行使用ICMP和ACK技術。
請註意,nmap將在任何情況下執行ping掃描,並且只有當目標主機正在運行時,才會執行後續掃描。如果您只想知道目標主機是否正在運行,而不想進行其他掃描,請使用此選項。
-蘇
UDP掃描:如果您想知道主機上提供了哪些UDP(用戶數據報協議,RFC768)服務,您可以使用這種掃描方法。Nmap首先向目標主機的每個端口發送0字節的UDP數據包。如果我們收到端口不可達的ICMP消息,端口被關閉,否則我們認為它是開放的。
可能有人會覺得UDP掃描沒有意義。但是,我經常想到最近的solaris rpcbind缺陷。Rpcbind隱藏在壹個未公開的UDP端口上,該端口大於32770。所以即使端口111(PortMap眾所周知的端口號)被防火墻屏蔽了,也很重要。但是妳能找出哪個端口大於30000並且有程序監聽嗎?用UDP掃描就行了!cDc Back Orifice的後門程序隱藏在Windows主機的壹個可配置UDP端口中。盡管存在壹些常見的安全缺陷,但壹些服務(如snmp、tftp和NFS)使用UDP協議。不幸的是,UDP掃描有時非常慢,因為大多數主機限制ICMP錯誤消息的比例(RFC1812中推薦)。例如,在Linux內核中(在net/ipv4/ICMP.h文件中),每4秒鐘只能出現80條目標不可達的ICMP消息。超過這個比例,就要罰1/4秒。Solaris的限制更多,每秒僅允許大約2條ICMP不可達消息,這使得掃描速度更慢。Nmap會檢測這個限制的比值,減慢發送速度,而不是發送大量無用的數據包,這些數據包會被目標主機丟棄。
但是Micro$oft忽略了RFC1812的這個建議,對這個比例不做任何限制。所以我們可以快速掃描運行Win95/NT的主機上的所有65K端口。
-薩
ACK掃描:這種高級掃描方法通常用於穿越防火墻的規則集。通常,這有助於確定防火墻是功能齊全,還是僅阻止傳入SYN數據包的簡單數據包過濾器。
這種掃描是向特定端口發送ACK包(使用隨機回復/序列號)。如果返回RST數據包,端口將被標記為未過濾。如果沒有返回任何內容,或者返回了無法到達的ICMP消息,則該端口被歸類為過濾類。請註意,nmap通常不會輸出未過濾的端口,因此所有被探測的端口通常不會顯示在輸出中。顯然,這種掃描方法無法找出開放的端口。
-軟件
掃描滑動窗口:這種高級掃描技術與ACK掃描非常相似,只是它有時可以檢測到打開的端口,因為滑動窗口的大小是不規則的,壹些操作系統可以報告它的大小。這些系統至少包括:部分版本的AIX、Amiga、BeOS、BSDI、Cray、Tru64 UNIX、DG/UX、OpenVMS、Digital UNIX、OpenBSD、OpenStep、QNX、Rhapsody、SunOS 4.x、Ultrix、VAX和VXWORKS。完整的列表可以從nmap-黑客郵件列表3的文檔中獲得。
-sR
RPC掃描此方法與nmap的其他不同端口掃描方法結合使用。選擇所有打開的端口,向其發出SunRPC程序的NULL命令,確定是否為RPC端口,如果是,確定是什麽軟件及其版本號。所以妳可以得到壹些關於防火墻的信息。誘餌掃描還不能和RPC掃描結合。
-乙
FTP反彈攻擊:FTP協議(RFC 959)壹個有趣的特性是支持代理FTP連接。換句話說,我可以從evil.com連接到target.com的FTP服務器,我可以要求這個FTP服務器為我自己在互聯網上的任何地方發送文件!當RFC959在1985中完成時,此功能將正常工作。但是,在今天的互聯網中,我們不能讓人劫持FTP服務器,讓它向互聯網上的任何壹個節點發送數據。正如霍比特在1995寫的壹篇文章中所說,這種協議“可以用來傳遞虛擬的不可到達的郵件和新聞,進入各種網站的服務器,填充硬盤,跳過防火墻,以及其他騷擾活動,並且很難被追蹤”。我們可以使用這個特性來掃描代理FTP服務器中的TCP端口。因此,您需要連接到防火墻後面的FTP服務器,然後掃描端口。如果這個FTP服務器中有可讀的目錄,妳也可以隨意向目標端口發送數據(但是nmap不能幫妳做到這壹點)。
傳遞給-b函數選項的參數是您希望充當代理的FTP服務器。語法格式為:
-b用戶名:密碼@服務器:端口.
除了服務器,其他都是可選的。想知道是什麽服務器有這個缺陷,可以參考我在Phrack 51發表的文章。妳也可以在nmap的網站上獲得這篇文章的最新版本。
4.2壹般選項
這些內容不是必須的,但很有用。
-P0
在掃描之前,沒有必要ping主機。壹些網絡的防火墻不允許ICMP回應請求通過。使用此選項掃描這些網絡。Microsoft.com就是壹個例子,所以在掃描這個站點時,您應該總是使用-P0或-PT 80選項。
-角
在掃描之前,使用TCP ping來確定哪些主機正在運行。nmap不是發送ICMP回應請求數據包並等待響應,而是向目標網絡(或單個主機)發送TCP ACK數據包並等待響應。如果主機正在運行,將會返回RST數據包。此選項僅在目標網絡/主機阻止ping數據包但仍允許您掃描它時有效。對於非root用戶,我們使用connect()系統調用來實現這個功能。使用-PT設置目標端口。默認端口號為80,因為該端口通常不會被過濾。
-PS
對於root用戶,此選項允許nmap使用SYN數據包而不是ACK數據包掃描目標主機。如果主機正在運行,則返回RST數據包(或SYN/ACK數據包)。
-圓周率
設置此選項可讓nmap使用真正的ping(ICMP回應請求)來掃描目標主機是否正在運行。使用此選項讓nmap發現正在運行的主機,nmap也會觀察您的直接子網廣播地址。直接子網廣播地址壹些外部可訪問的IP地址將外部數據包轉換為向內的IP廣播數據包,並將其發送到計算機子網。這些IP廣播包應該被刪除,因為它會引起拒絕服務攻擊(如smurf)。
-PB
這是默認的ping掃描選項。它使用兩種掃描類型:ACK(-PT)和ICMP(-PI)並行掃描。如果防火墻可以過濾其中壹個數據包,妳就可以通過這種方式穿過防火墻。
表示“具有…性質的”
此選項激活TCP/IP指紋掃描,以獲取遠程主機的徽標。換句話說,nmap使用壹些技術來檢測目標主機操作系統的網絡協議棧的特征。Nmap使用這些信息來建立遠程主機的指紋特征,並將其與已知的操作系統指紋數據庫進行比較,從而可以知道目標主機操作系統的類型。
我
此選項打開nmap的反向標誌掃描功能。戴夫·戈德史密斯1996發給bugtap的郵件註意到了這個協議。ident協議(rfc 1413)允許使用TCP連接給出任何進程所有者的用戶名,即使該進程沒有啟動連接。例如,您可以連接到HTTP端口,然後使用identd來確定服務器是否由root用戶運行。只有當與目標端口建立了完整的TCP連接時,此掃描才能成功(例如-sT掃描選項)。使用-I選項,遠程主機的identd向導進程將查詢監聽每個開放端口的進程的所有者。顯然,如果遠程主機沒有運行identd程序,這種掃描方法是無效的。
-f
此選項使nmap能夠使用分段的IP數據包發送SYN、FIN、XMAS、NULL。使用碎片數據包會使包過濾和入侵檢測系統更難知道您的意圖。但是,請小心使用該選項!壹些程序在處理這些碎片時會有困難。當我最喜歡的嗅探器接收到第壹個36字節的片段時,就會發生分段。因此,nmap中使用24字節的碎片包。盡管包過濾和防火墻不能阻止這種方法,但出於性能原因,許多網絡禁止包分段。
請註意,此選項並非在所有平臺上都可用。它在Linux、FreeBSD、OpenBSD和其他壹些UNIX系統中運行良好。
-v
冗余模式。強烈建議使用此選項,它將在掃描過程中提供詳細信息。有了這個選項,可以事半功倍。使用-d選項可以獲得更詳細的信息。
-h
快速參考選項。
表示“亞原子”
將掃描結果重定向到可讀文件logfilename。
-嗯
將掃描結果重定向到logfilename文件,該文件使用主機可以解析的語法。您可以使用-oM-而不是logfilename,以便將輸出重定向到標準輸出stdout。在這種情況下,正常輸出將被覆蓋,錯誤消息可以輸出到標準錯誤stderr。註意,如果同時使用-v選項,其他信息將打印在屏幕上。
-這是妳的掃描結果嗎?您可以給出第四個參數-
(不帶qUOteZ)到sh00t輸出iNT0 stDouT!@!!莫名其妙,以下是我猜測和翻譯的。
將掃描結果重定向到壹個文件logfilename,該文件使用了“黑客方言”的語法形式(作者是在開玩笑嗎?)。類似地,使用-oS-會將結果重定向到標準輸出。
簡歷
網絡掃描可能因control-C或網絡中斷而中斷。使用此選項可使掃描繼續上壹次掃描。Logfilename是壹個未被掃描的日誌文件。它必須是可讀的形式或者是機器可以解析的形式。而且後續掃描不能添加新的選項,只能使用與中斷掃描相同的選項。Nmap將在日誌文件中上次成功掃描後執行新的掃描。
-伊爾
從輸入文件名文件中讀取掃描的目標。這個文件中應該有壹個主機或網絡列表,用空格鍵、tab鍵或enter鍵作為分隔符。如果使用了-iL -, nmap將從標準輸入stdin中讀取主機名。妳可以從指定目標壹節中獲得更詳細的信息。
-iR
讓nmap隨機選擇要掃描的主機。
-p
此選項允許您選擇要掃描的端口號範圍。例如,-p 23表示只掃描目標主機的端口23。-p 20-30,139,60000-表示:掃描端口20到30,端口139以及所有大於60000的端口。默認情況下,nmap掃描編號1到1024中定義的端口列表和nmap服務文件(如果使用RPM軟件包,通常在/usr/share/nmap/目錄中)。
-F
快速掃描模式,僅掃描nmap-services文件中列出的端口。顯然比掃描所有65535端口要快。
-D
使用誘餌掃描方法掃描目標網絡/主機。如果nmap使用這種方法來掃描目標網絡,那麽從目標主機/網絡的角度來看,掃描將與來自其他主機的掃描壹樣(decoy1等。).所以即使目標主機的IDS(入侵檢測系統)對端口掃描報警,他們也不可能知道哪個是真正發起掃描的地址,哪個是無辜的。這種掃描方式可以有效應對路由跟蹤、響應丟棄等主動防禦機制,可以很好的隱藏妳的IP地址。
每個誘餌主機名由逗號分隔,您也可以使用ME選項,它代表您自己的主機,並與誘餌主機名混合在壹起。如果妳把我放在第六個或者更靠後的位置,有些端口掃描檢測軟件幾乎根本不會顯示妳的IP地址。如果不使用ME選項,nmap會在誘餌主機中隨機混合您的IP地址。
註意:您用作誘餌的主機應該正在運行,或者您只是偶爾向目標發送SYN數據包。顯然,如果網絡上只有壹臺主機在運行,目標將很容易確定掃描的是哪臺主機。或許,妳應該直接用誘餌的IP地址,而不是它的域名,這樣誘餌網域名服務器的日誌就不會留下關於妳的記錄。
還要註意:壹些愚蠢的端口掃描檢測軟件會拒絕路由試圖掃描端口的主機。因此,您需要斷開目標主機與壹些誘餌的連接。如果誘餌是目標主機的網關或者本身,會對目標主機造成很大的問題。所以妳需要小心使用這個選項。
誘餌掃描可用於初始ping掃描和實際掃描狀態。它也可以與-o選項結合使用。
使用太多誘餌掃描會降低妳的掃描速度,甚至可能導致不正確的掃描結果。同時,壹些ISP會過濾掉妳的欺詐套餐。雖然現在大部分ISP都不限制這個。
構成名詞復數
在某些情況下,nmap可能無法確定您的源地址(nmap會告訴您)。在這種情況下,您可以使用此選項給出您的IP地址。
欺騙掃描時也使用此選項。使用此選項使目標認為其他主機正在掃描自己。
-e
告訴nmap使用哪個接口來發送和接收數據包。Nmap可以自動檢測此接口,並告訴您它是否無效。
-g
設置掃描的源端口。壹些簡單的防火墻和包過濾規則集允許源端口為DNS(53)或FTP-DATA(20)的數據包通過並連接。顯然,如果攻擊者將源端口更改為20或53,就可以破壞防火墻保護。使用UDP掃描時,首先使用端口53;使用TCP掃描時,首先使用端口20。請註意,nmap將僅在此端口可用於掃描時使用它。例如,如果您不能掃描TCP,nmap將自動更改源端口,即使您使用了-g選項。
對於某些掃描,使用該選項會導致輕微的性能損失,因為我有時會保存壹些關於特定源端口的有用信息。
-r
告訴nmap不要打亂掃描端口的順序。
-隨機化_主機
掃描前讓nmap打亂每組主機的順序,nmap最多可以掃描每組2048臺主機。這樣,掃描就不太容易被網絡監視器發現,尤其是與- scan_delay選項結合使用時,可以有效地避免被發現。
-M
設置掃描TCP連接時用於並行掃描的最大套接字數量()。使用此選項可以降低掃描速度並避免遠程目標的停機時間。