這篇文章主要介紹nmap軟件常見用法有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
二、常見用法
1、使用nslookup 解析出域名的IP地址
2、使用 nmap -sL 查詢該IP網(wǎng)段中包含的ip地址(不檢測存活狀態(tài),僅列表)
3、使用nmap -sn 查詢網(wǎng)段中關(guān)注主機或者整個網(wǎng)段的IP存活狀態(tài)
nmap -sn
nmap針對局域網(wǎng)和廣域網(wǎng)(會根據(jù)源目的是否在同一網(wǎng)段進行判斷)有兩種不同的掃描方式
當目標主機與源主機不在同一網(wǎng)段時:
Nmap會發(fā)送四種不同類型的數(shù)據(jù)包來探測目標主機是否在線。
1) ICMP echo request
2) a TCP SYN packet to port 443
3) a TCP ACK packet to port 80
4) an ICMP timestamp request
舉例:以掃描某個公網(wǎng)IP為例
nmap -sn IP
當目標主機與源主機在同一網(wǎng)段時
nmap -sn 192.168.1.103
Nmap 將通過發(fā)送arp請求,來檢查ip是否在線
4、掃描感興趣主機的端口
需要注意,nmap在端口掃描前,首先會自動對ip的存活狀態(tài)掃描,如果發(fā)現(xiàn)目標ip不存活,將不再進行端口掃描。在進行ip存活掃描時(同-sn時的掃描,不過是nmap自動的),會發(fā)送2次掃描,以判斷ip的存活。
下面是對未存活ip的掃描抓包,使用的nmap -sS -p 80 [ip] 來掃描80端口,但實際nmap先進行了ip存活的掃描
nmap -sS -p 80 [ip] #掃描TCP 80端口
這是返回的結(jié)果,針對這種未存活的ip,nmap建議 使用 -Pn ,即不進行主機存活判斷,直接掃描端口。
下圖是使用-Pn 選項來掃描80端口
nmap -Pn -sS -p 80 113.11.*.*
從nmap的掃描結(jié)果看,該端口被過濾,即不確定是否存活,但該主機是存活的。
但從抓包來看,該主機沒有任何回包,說明該端口被過濾或未開啟,同時,也無該ip的其他回包信息,所以,判斷nmap的主機存活結(jié)論是錯誤的(個人認為)。從抓包來看,nmap當未受到數(shù)據(jù)包時,默認都發(fā)送2次請求包。當未收到回復(fù)包時,說明發(fā)送過去的數(shù)據(jù)包被防火墻等設(shè)備過濾掉了,如果沒有被過濾,應(yīng)該回復(fù)rest包,nmap顯示的端口則是關(guān)閉。
nmap端口掃描結(jié)果的說明:
Nmap通過探測將端口劃分為6個狀態(tài): open: 端口是開放的。 closed: 端口是關(guān)閉的。 filtered: 端口被防火墻IDS/IPS屏蔽,無法確定其狀態(tài)。 unfiltered: 端口沒有被屏蔽,但是否開放需要進一步確定。 open|filtered: 端口是開放的或被屏蔽。 closed|filtered : 端口是關(guān)閉的或被屏蔽。
nmap常見的端口掃描方式有以下幾種:
-P 指定端口號,如果不指定端口,默認是掃描1000個常用的tcp或udp端口(根據(jù)掃描項) -F 快速模式,當不指定端口時,僅掃描TOP 100的端口 -sS TCP端口掃描,使用SYN 方式掃描,不建立TCP連接 -sT TCP端口掃描,tcp connect 通過3次握手,建立tcp連接 -sU UDP端口掃描 其他端口掃描方式: -sA/sW/sM:指定使用 ACK/Window/Maimon scans的方式來對目標主機進行掃描。 -sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密掃描方式來協(xié)助探測對方的TCP端口狀態(tài)。 --scanflags <flags>: 定制TCP包的flags。 -sI <zombiehost[:probeport]>: 指定使用idle scan方式來掃描目標主機(前提需要找到合適的zombie host) -sY/sZ: 使用SCTP INIT/COOKIE-ECHO來掃描SCTP協(xié)議端口的開放的情況。 -sO: 使用IP protocol 掃描確定目標機支持的協(xié)議類型。 -b <FTP relay host>: 使用FTP bounce scan掃描方式
端口掃描原理
這是Nmap默認的掃描方式,通常被稱作半開放掃描(Half-open scanning)。該方式發(fā)送SYN到目標端口,如果收到SYN/ACK回復(fù),那么判斷端口是開放的;如果收到RST包,說明該端口是關(guān)閉的。如果沒有收到回復(fù),那么判斷該端口被屏蔽(Filtered)。因為該方式僅發(fā)送SYN包對目標主機的特定端口,但不建立的完整的TCP連接,所以相對比較隱蔽,而且效率比較高,適用范圍廣。
TCP SYN探測到端口關(guān)閉:
TCP SYN探測到端口開放:
TCP connect scanning
TCP connect方式使用系統(tǒng)網(wǎng)絡(luò)API connect向目標主機的端口發(fā)起連接,如果無法連接,說明該端口關(guān)閉。該方式掃描速度比較慢,而且由于建立完整的TCP連接會在目標機上留下記錄信息,不夠隱蔽。所以,TCP connect是TCP SYN無法使用才考慮選擇的方式。
TCP connect探測到端口關(guān)閉:
TCP connect探測到端口開放:
向目標主機的端口發(fā)送ACK包,如果收到RST包,說明該端口沒有被防火墻屏蔽;沒有收到RST包,說明被屏蔽。該方式只能用于確定防火墻是否屏蔽某個端口,可以輔助TCP SYN的方式來判斷目標主機防火墻的狀況。
TCP ACK探測到端口被屏蔽:
TCP ACK探測到端口未被屏蔽:
這三種掃描方式被稱為秘密掃描(Stealthy Scan),因為相對比較隱蔽。FIN掃描向目標主機的端口發(fā)送的TCP FIN包或Xmas tree包/Null包,如果收到對方RST回復(fù)包,那么說明該端口是關(guān)閉的;沒有收到RST包說明端口可能是開放的或被屏蔽的(open|filtered)。
其中Xmas tree包是指flags中FIN URG PUSH被置為1的TCP包;NULL包是指所有flags都為0的TCP包。
TCP FIN探測到主機端口是關(guān)閉的:
TCP FIN探測到主機端口是開放或屏蔽的:
UDP掃描方式用于判斷UDP端口的情況。向目標主機的UDP端口發(fā)送探測包,如果收到回復(fù)“ICMP port unreachable”就說明該端口是關(guān)閉的;如果沒有收到回復(fù),那說明UDP端口可能是開放的或屏蔽的。因此,通過反向排除法的方式來斷定哪些UDP端口是可能出于開放狀態(tài)。
UDP端口關(guān)閉:
UDP端口開放或被屏蔽:
隱藏自身IP的掃描
使用idle scan方式借助僵尸主機(zombie host,也被稱為idle host,該主機處于空閑狀態(tài)并且它的IPID方式為遞增。詳細實現(xiàn)原理參見:http://nmap.org/book/idlescan.html)來掃描目標在主機,達到隱蔽自己的目的;
或者使用FTP bounce scan,借助FTP允許的代理服務(wù)掃描其他的主機,同樣達到隱藏自己的身份的目的。
5、版本偵測
版本偵測,用于確定目標主機開放端口上運行的具體的應(yīng)用程序及版本信息。
Nmap提供的版本偵測具有如下的優(yōu)點:
高速。并行地進行套接字操作,實現(xiàn)一組高效的探測匹配定義語法。
盡可能地確定應(yīng)用名字與版本名字。
支持TCP/UDP協(xié)議,支持文本格式與二進制格式。
支持多種平臺服務(wù)的偵測,包括Linux/Windows/Mac OS/FreeBSD等系統(tǒng)。
如果檢測到SSL,會調(diào)用openSSL繼續(xù)偵測運行在SSL上的具體協(xié)議(如HTTPS/POP3S/IMAPS)。
如果檢測到SunRPC服務(wù),那么會調(diào)用brute-force RPC grinder進一步確定RPC程序編號、名字、版本號。
支持完整的IPv6功能,包括TCP/UDP,基于TCP的SSL。
通用平臺枚舉功能(CPE)
廣泛的應(yīng)用程序數(shù)據(jù)庫(nmap-services-probes)。目前Nmap可以識別幾千種服務(wù)的簽名,包含了180多種不同的協(xié)議。
簡要的介紹版本的偵測原理。
版本偵測主要分為以下幾個步驟:
首先檢查open與open|filtered狀態(tài)的端口是否在排除端口列表內(nèi)。如果在排除列表,將該端口剔除。
如果是TCP端口,嘗試建立TCP連接。嘗試等待片刻(通常6秒或更多,具體時間可以查詢文件nmap-services-probes中Probe TCP NULL q||對應(yīng)的totalwaitms)。通常在等待時間內(nèi),會接收到目標機發(fā)送的“WelcomeBanner”信息。nmap將接收到的Banner與nmap-services-probes中NULL probe中的簽名進行對比。查找對應(yīng)應(yīng)用程序的名字與版本信息。
如果通過“Welcome Banner”無法確定應(yīng)用程序版本,那么nmap再嘗試發(fā)送其他的探測包(即從nmap-services-probes中挑選合適的probe),將probe得到回復(fù)包與數(shù)據(jù)庫中的簽名進行對比。如果反復(fù)探測都無法得出具體應(yīng)用,那么打印出應(yīng)用返回報文,讓用戶自行進一步判定。
如果是UDP端口,那么直接使用nmap-services-probes中探測包進行探測匹配。根據(jù)結(jié)果對比分析出UDP應(yīng)用服務(wù)類型。
如果探測到應(yīng)用程序是SSL,那么調(diào)用openSSL進一步的偵查運行在SSL之上的具體的應(yīng)用類型。
如果探測到應(yīng)用程序是SunRPC,那么調(diào)用brute-force RPC grinder進一步探測具體服務(wù)。
5.2 版本偵測的用法
版本偵測方面的命令行選項比較簡單
-sV: 指定讓Nmap進行版本偵測 --version-intensity <level>: 指定版本偵測強度(0-9),默認為7。數(shù)值越高,探測出的服務(wù)越準確,但是運行時間會比較長。 --version-light: 指定使用輕量偵測方式 (intensity 2) --version-all: 嘗試使用所有的probes進行偵測 (intensity 9) --version-trace: 顯示出詳細的版本偵測過程信息。
下面以掃描80端口的版本為例,顯示snmp的掃描結(jié)果和抓包結(jié)果
snmp -sV -p 80 113.11.*.* #指定掃描80端口
從抓包可以看出,在未指定 -Pn 參數(shù)時,默認限制性的ip存活性檢測,只有當確認主機存活后才進行版本檢測。
使用snmp -sV 113.11.*.* 時,默認檢查存活狀態(tài),根據(jù)存活狀態(tài)再掃描TCP常見的1000端口,根據(jù)端口狀態(tài)再掃描版本(在http版本確認中,首先建立了tcp連接,然后關(guān)閉tcp連接,再建立連接3次握手,并發(fā)出get請求后進行4次揮手)
6、OS偵測
命令nmap -O 113.11.*.*
nmap首先檢測主機存活狀態(tài),然后掃描常見的1000端口,最后判斷OS系統(tǒng),下圖是運行后的結(jié)果。根據(jù)結(jié)果,里面的端口都能夠掃描出是開啟或是關(guān)閉,說明未架設(shè)防火墻等安全防護設(shè)備。
7、Nmap 高級用法
防火墻與IDS規(guī)避為用于繞開防火墻與IDS(***檢測系統(tǒng))的檢測與屏蔽,以便能夠更加詳細地發(fā)現(xiàn)目標主機的狀況。
Nmap提供了多種規(guī)避技巧,通??梢詮膬蓚€方面考慮規(guī)避方式:數(shù)據(jù)包的變換(Packet Change)與時序變換(Timing Change)。
7.1 分片(Fragmentation)
將可疑的探測包進行分片處理(例如將TCP包拆分成多個IP包發(fā)送過去),某些簡單的防火墻為了加快處理速度可能不會進行重組檢查,以此避開其檢查。
-f; --mtu <val>: 指定使用分片、指定數(shù)據(jù)包的MTU.
nmap -sn -f --mtu 16 113.11.*.* #注意 mtu后的數(shù)值必須是8的倍數(shù),如下圖提示
下圖中,首先是正常命令時的抓包,然后是采用分片后的抓包:
nmap -sn 113.11.*.* nmap -sn -f --mtu 16 113.11.*.*
從抓包中,可以看出data的數(shù)據(jù)包為16byte,與分片設(shè)定的字節(jié)是一致的,同時抓包中也有提示分片包"Reassembled in #878"
7.2 IP誘騙(IP decoys)
在進行掃描時,將真實IP地址和其他主機的IP地址(其他主機需要在線,否則目標主機將回復(fù)大量數(shù)據(jù)包到不存在的主機,從而實質(zhì)構(gòu)成了拒絕服務(wù)***)混合使用,以此讓目標主機的防火墻或IDS追蹤檢查大量的不同IP地址的數(shù)據(jù)包,降低其追查到自身的概率。注意,某些高級的IDS系統(tǒng)通過統(tǒng)計分析仍然可以追蹤出掃描者真實IP地址。
-D <decoy1,decoy2[,ME],...>: 用一組IP地址掩蓋真實地址,其中ME填入自己的IP地址。 nmap -sn -D 1.1.1.1 113.11.*.* #這里如果不添加[ME]自己的地址也會使用自己的地址,同時也會發(fā)送誘騙的地址,即2個地址都將作為源地址
下圖是抓包截圖,可以看出源地址有兩個,一個是誘騙的地址,另一個是自己的真實地址,利用偽裝地址可以發(fā)動反射形dos***
這是源地址為內(nèi)網(wǎng)地址,當源地址為公網(wǎng)地址時,不填寫源地址是否可行,需要驗證。
7.3 指定源端口
某些目標主機只允許來自特定端口的數(shù)據(jù)包通過防火墻。例如FTP服務(wù)器配置為:允許源端口為21號的TCP包通過防火墻與FTP服務(wù)端通信,但是源端口為其他端口的數(shù)據(jù)包被屏蔽。所以,在此類情況下,可以指定Nmap將發(fā)送的數(shù)據(jù)包的源端口都設(shè)置特定的端口。
-g/--source-port <portnum>: 使用指定源端口 nmap -sn -g 11111 113.11.*.* #指定源端口為11111,向外發(fā)送
下圖是抓包,從中可以看出tcp的源端口都是51111,這個可以通過指定源端口來符合防火墻的ACL訪問列表,從而躲避防火墻的檢測。
7.4 掃描延時
某些防火墻針對發(fā)送過于頻繁的數(shù)據(jù)包會進行嚴格的偵查,而且某些系統(tǒng)限制錯誤報文產(chǎn)生的頻率(例如,Solaris 系統(tǒng)通常會限制每秒鐘只能產(chǎn)生一個ICMP消息回復(fù)給UDP掃描),所以,定制該情況下發(fā)包的頻率和發(fā)包延時可以降低目標主機的審查強度、節(jié)省網(wǎng)絡(luò)帶寬。
<待補實例>
7.5 IP偽裝(IP Spoofing)
顧名思義,IP偽裝即將自己發(fā)送的數(shù)據(jù)包中的IP地址偽裝成其他主機的地址,從而目標機認為是其他主機在與之通信。需要注意,如果希望接收到目標主機的回復(fù)包,那么偽裝的IP需要位于統(tǒng)一局域網(wǎng)內(nèi)。另外,如果既希望隱蔽自己的IP地址,又希望收到目標主機的回復(fù)包,那么可以嘗試使用idle scan或匿名代理(如TOR)等網(wǎng)絡(luò)技術(shù)。
-S <IP_Address>: 偽裝成其他IP地址 nmap -sn -S 1.1.1.1 113.11.*.* #當源地址偽裝成其他ip時,目標機認為是其他主機在與之通信。
<實例不成功>,下面是未成功的抓圖,如有知曉的同學(xué),請指點
提示如果是偽裝的源ip地址,必須要使用-Pn 和 -e 選項
當使用了-Pn 和 -e 選項后,依然提示報錯,不能夠分配地址。
nmap -sn -Pn -e wlan0 -S 1.1.1.1 113.11.*.* nmap -sn -Pn -e eth0 -S 1.1.1.1 113.11.*.*
7.6 其他技術(shù)
Nmap還提供多種規(guī)避技巧,比如指定使用某個網(wǎng)絡(luò)接口來發(fā)送數(shù)據(jù)包、指定發(fā)送包的最小長度、指定發(fā)包的MTU、指定TTL、指定偽裝的MAC地址、使用錯誤檢查和(badchecksum)。
更多信息http://nmap.org/book/man-bypass-firewalls-ids.html
-f; --mtu <val>: 指定使用分片、指定數(shù)據(jù)包的MTU. -D <decoy1,decoy2[,ME],...>: 用一組IP地址掩蓋真實地址,其中ME填入自己的IP地址。 -S <IP_Address>: 偽裝成其他IP地址 -e <iface>: 使用特定的網(wǎng)絡(luò)接口 -g/--source-port <portnum>: 使用指定源端口 --data-length <num>: 填充隨機數(shù)據(jù)讓數(shù)據(jù)包長度達到Num。 --ip-options <options>: 使用指定的IP選項來發(fā)送數(shù)據(jù)包。 --ttl <val>: 設(shè)置time-to-live時間。 --spoof-mac <mac address/prefix/vendor name>: 偽裝MAC地址 --badsum: 使用錯誤的checksum來發(fā)送數(shù)據(jù)包(正常情況下,該類數(shù)據(jù)包被拋棄,如果收到回復(fù),說明回復(fù)來自防火墻或IDS/IPS)。
<待補充>
NSE腳本引擎(Nmap Scripting Engine)是Nmap最強大最靈活的功能之一,允許用戶自己編寫腳本來執(zhí)行自動化的操作或者擴展Nmap的功能。
NSE使用Lua腳本語言,并且默認提供了豐富的腳本庫,目前已經(jīng)包含14個類別的350多個腳本。
NSE的設(shè)計初衷主要考慮以下幾個方面:
網(wǎng)絡(luò)發(fā)現(xiàn)(Network Discovery)
更加復(fù)雜的版本偵測(例如skype軟件)
漏洞偵測(Vulnerability Detection)
后門偵測(Backdoor Detection)
漏洞利用(Vulnerability Exploitation)
以上是“nmap軟件常見用法有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當前題目:nmap軟件常見用法有哪些-創(chuàng)新互聯(lián)
瀏覽路徑:http://jinyejixie.com/article34/gpsse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、定制開發(fā)、App設(shè)計、自適應(yīng)網(wǎng)站、域名注冊、移動網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容