压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

nmap軟件使用思路及常見用法

  一、掃描思路

  二、常見用法

  1、使用nslookup 解析出域名的IP地址

  2、使用 nmap -sL 查詢?cè)揑P網(wǎng)段中包含的ip地址(不檢測(cè)存活狀態(tài),僅列表)

  3、使用nmap -sn 查詢網(wǎng)段中關(guān)注主機(jī)或者整個(gè)網(wǎng)段的IP存活狀態(tài)

  nmap -sn

  nmap針對(duì)局域網(wǎng)和廣域網(wǎng)(會(huì)根據(jù)源目的是否在同一網(wǎng)段進(jìn)行判斷)有兩種不同的掃描方式

  當(dāng)目標(biāo)主機(jī)與源主機(jī)不在同一網(wǎng)段時(shí):

  Nmap會(huì)發(fā)送四種不同類型的數(shù)據(jù)包來(lái)探測(cè)目標(biāo)主機(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

  舉例:以掃描某個(gè)公網(wǎng)IP為例

  nmap -sn IP

  

  當(dāng)目標(biāo)主機(jī)與源主機(jī)在同一網(wǎng)段時(shí)

  nmap -sn 192.168.1.103

  Nmap 將通過(guò)發(fā)送arp請(qǐng)求,來(lái)檢查ip是否在線 

  4、掃描感興趣主機(jī)的端口

  需要注意,nmap在端口掃描前,首先會(huì)自動(dòng)對(duì)ip的存活狀態(tài)掃描,如果發(fā)現(xiàn)目標(biāo)ip不存活,將不再進(jìn)行端口掃描。在進(jìn)行ip存活掃描時(shí)(同-sn時(shí)的掃描,不過(guò)是nmap自動(dòng)的),會(huì)發(fā)送2次掃描,以判斷ip的存活。

  下面是對(duì)未存活ip的掃描抓包,使用的nmap -sS -p 80 [ip] 來(lái)掃描80端口,但實(shí)際nmap先進(jìn)行了ip存活的掃描

  nmap -sS -p 80 [ip]             #掃描TCP 80端口

 

  這是返回的結(jié)果,針對(duì)這種未存活的ip,nmap建議 使用 -Pn ,即不進(jìn)行主機(jī)存活判斷,直接掃描端口。  

 

    下圖是使用-Pn 選項(xiàng)來(lái)掃描80端口

  nmap -Pn -sS -p 80 113.11.*.*  

 
 

  從nmap的掃描結(jié)果看,該端口被過(guò)濾,即不確定是否存活,但該主機(jī)是存活的。

  但從抓包來(lái)看,該主機(jī)沒有任何回包,說(shuō)明該端口被過(guò)濾或未開啟,同時(shí),也無(wú)該ip的其他回包信息,所以,判斷nmap的主機(jī)存活結(jié)論是錯(cuò)誤的(個(gè)人認(rèn)為)。從抓包來(lái)看,nmap當(dāng)未受到數(shù)據(jù)包時(shí),默認(rèn)都發(fā)送2次請(qǐng)求包。當(dāng)未收到回復(fù)包時(shí),說(shuō)明發(fā)送過(guò)去的數(shù)據(jù)包被防火墻等設(shè)備過(guò)濾掉了,如果沒有被過(guò)濾,應(yīng)該回復(fù)rest包,nmap顯示的端口則是關(guān)閉。

  nmap端口掃描結(jié)果的說(shuō)明:

  Nmap通過(guò)探測(cè)將端口劃分為6個(gè)狀態(tài):

  1 open:                    端口是開放的。

  2 closed:                  端口是關(guān)閉的。

  3 filtered:                 端口被防火墻IDS/IPS屏蔽,無(wú)法確定其狀態(tài)。

  4 unfiltered:             端口沒有被屏蔽,但是否開放需要進(jìn)一步確定。

  5 open|filtered:       端口是開放的或被屏蔽。

  6 closed|filtered :    端口是關(guān)閉的或被屏蔽。

  nmap常見的端口掃描方式有以下幾種:

  -P     指定端口號(hào),如果不指定端口,默認(rèn)是掃描1000個(gè)常用的tcp或udp端口(根據(jù)掃描項(xiàng))

  -F     快速模式,當(dāng)不指定端口時(shí),僅掃描TOP 100的端口

  -sS    TCP端口掃描,使用SYN 方式掃描,不建立TCP連接

  -sT    TCP端口掃描,tcp connect 通過(guò)3次握手,建立tcp連接

  -sU   UDP端口掃描

  其他端口掃描方式:

  -sA/sW/sM:指定使用 ACK/Window/Maimon scans的方式來(lái)對(duì)目標(biāo)主機(jī)進(jìn)行掃描。

  -sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密掃描方式來(lái)協(xié)助探測(cè)對(duì)方的TCP端口狀態(tài)。

  –scanflags <flags>: 定制TCP包的flags。

  -sI <zombiehost[:probeport]>: 指定使用idle scan方式來(lái)掃描目標(biāo)主機(jī)(前提需要找到合適的zombie host)

  -sY/sZ: 使用SCTP INIT/COOKIE-ECHO來(lái)掃描SCTP協(xié)議端口的開放的情況。

  -sO: 使用IP protocol 掃描確定目標(biāo)機(jī)支持的協(xié)議類型。

  -b <FTP relay host>: 使用FTP bounce scan掃描方式

  端口掃描原理

  TCP SYN scanning

  這是Nmap默認(rèn)的掃描方式,通常被稱作半開放掃描(Half-open scanning)。該方式發(fā)送SYN到目標(biāo)端口,如果收到SYN/ACK回復(fù),那么判斷端口是開放的;如果收到RST包,說(shuō)明該端口是關(guān)閉的。如果沒有收到回復(fù),那么判斷該端口被屏蔽(Filtered)。因?yàn)樵摲绞絻H發(fā)送SYN包對(duì)目標(biāo)主機(jī)的特定端口,但不建立的完整的TCP連接,所以相對(duì)比較隱蔽,而且效率比較高,適用范圍廣。

  TCP SYN探測(cè)到端口關(guān)閉:

  TCP SYN探測(cè)到端口開放:

  TCP connect scanning

  TCP connect方式使用系統(tǒng)網(wǎng)絡(luò)API connect向目標(biāo)主機(jī)的端口發(fā)起連接,如果無(wú)法連接,說(shuō)明該端口關(guān)閉。該方式掃描速度比較慢,而且由于建立完整的TCP連接會(huì)在目標(biāo)機(jī)上留下記錄信息,不夠隱蔽。所以,TCP connect是TCP SYN無(wú)法使用才考慮選擇的方式。

  TCP connect探測(cè)到端口關(guān)閉:

  TCP connect探測(cè)到端口開放:

  TCP ACK scanning

  向目標(biāo)主機(jī)的端口發(fā)送ACK包,如果收到RST包,說(shuō)明該端口沒有被防火墻屏蔽;沒有收到RST包,說(shuō)明被屏蔽。該方式只能用于確定防火墻是否屏蔽某個(gè)端口,可以輔助TCP SYN的方式來(lái)判斷目標(biāo)主機(jī)防火墻的狀況。

  TCP ACK探測(cè)到端口被屏蔽:

  TCP ACK探測(cè)到端口未被屏蔽:

  TCP FIN/Xmas/NULL scanning

  這三種掃描方式被稱為秘密掃描(Stealthy Scan),因?yàn)橄鄬?duì)比較隱蔽。FIN掃描向目標(biāo)主機(jī)的端口發(fā)送的TCP FIN包或Xmas tree包/Null包,如果收到對(duì)方RST回復(fù)包,那么說(shuō)明該端口是關(guān)閉的;沒有收到RST包說(shuō)明端口可能是開放的或被屏蔽的(open|filtered)。

  其中Xmas tree包是指flags中FIN URG PUSH被置為1的TCP包;NULL包是指所有flags都為0的TCP包。

  TCP FIN探測(cè)到主機(jī)端口是關(guān)閉的:

  TCP FIN探測(cè)到主機(jī)端口是開放或屏蔽的:

  UDP scanning

  UDP掃描方式用于判斷UDP端口的情況。向目標(biāo)主機(jī)的UDP端口發(fā)送探測(cè)包,如果收到回復(fù)“ICMP port unreachable”就說(shuō)明該端口是關(guān)閉的;如果沒有收到回復(fù),那說(shuō)明UDP端口可能是開放的或屏蔽的。因此,通過(guò)反向排除法的方式來(lái)斷定哪些UDP端口是可能出于開放狀態(tài)。

  UDP端口關(guān)閉:

  UDP端口開放或被屏蔽:

  隱藏自身IP的掃描

  使用idle scan方式借助僵尸主機(jī)(zombie host,也被稱為idle host,該主機(jī)處于空閑狀態(tài)并且它的IPID方式為遞增。詳細(xì)實(shí)現(xiàn)原理參見:http://nmap.org/book/idlescan.html)來(lái)掃描目標(biāo)在主機(jī),達(dá)到隱蔽自己的目的;

  或者使用FTP bounce scan,借助FTP允許的代理服務(wù)掃描其他的主機(jī),同樣達(dá)到隱藏自己的身份的目的。

  5、版本偵測(cè)

  版本偵測(cè),用于確定目標(biāo)主機(jī)開放端口上運(yùn)行的具體的應(yīng)用程序及版本信息。

  Nmap提供的版本偵測(cè)具有如下的優(yōu)點(diǎn):

  高速。并行地進(jìn)行套接字操作,實(shí)現(xiàn)一組高效的探測(cè)匹配定義語(yǔ)法。

  盡可能地確定應(yīng)用名字與版本名字。

  支持TCP/UDP協(xié)議,支持文本格式與二進(jìn)制格式。

  支持多種平臺(tái)服務(wù)的偵測(cè),包括Linux/Windows/Mac OS/FreeBSD等系統(tǒng)。

  如果檢測(cè)到SSL,會(huì)調(diào)用openSSL繼續(xù)偵測(cè)運(yùn)行在SSL上的具體協(xié)議(如HTTPS/POP3S/IMAPS)。

  如果檢測(cè)到SunRPC服務(wù),那么會(huì)調(diào)用brute-force RPC grinder進(jìn)一步確定RPC程序編號(hào)、名字、版本號(hào)。

  支持完整的IPv6功能,包括TCP/UDP,基于TCP的SSL。

  通用平臺(tái)枚舉功能(CPE)

  廣泛的應(yīng)用程序數(shù)據(jù)庫(kù)(nmap-services-probes)。目前Nmap可以識(shí)別幾千種服務(wù)的簽名,包含了180多種不同的協(xié)議。

  5.1   版本偵測(cè)原理

  簡(jiǎn)要的介紹版本的偵測(cè)原理。

  版本偵測(cè)主要分為以下幾個(gè)步驟:

  1.首先檢查open與open|filtered狀態(tài)的端口是否在排除端口列表內(nèi)。如果在排除列表,將該端口剔除。

  2.如果是TCP端口,嘗試建立TCP連接。嘗試等待片刻(通常6秒或更多,具體時(shí)間可以查詢文件nmap-services-probes中Probe TCP NULL q||對(duì)應(yīng)的totalwaitms)。通常在等待時(shí)間內(nèi),會(huì)接收到目標(biāo)機(jī)發(fā)送的“WelcomeBanner”信息。nmap將接收到的Banner與nmap-services-probes中NULL probe中的簽名進(jìn)行對(duì)比。查找對(duì)應(yīng)應(yīng)用程序的名字與版本信息。

  3.如果通過(guò)“Welcome Banner”無(wú)法確定應(yīng)用程序版本,那么nmap再嘗試發(fā)送其他的探測(cè)包(即從nmap-services-probes中挑選合適的probe),將probe得到回復(fù)包與數(shù)據(jù)庫(kù)中的簽名進(jìn)行對(duì)比。如果反復(fù)探測(cè)都無(wú)法得出具體應(yīng)用,那么打印出應(yīng)用返回報(bào)文,讓用戶自行進(jìn)一步判定。

  4.如果是UDP端口,那么直接使用nmap-services-probes中探測(cè)包進(jìn)行探測(cè)匹配。根據(jù)結(jié)果對(duì)比分析出UDP應(yīng)用服務(wù)類型。

  5.如果探測(cè)到應(yīng)用程序是SSL,那么調(diào)用openSSL進(jìn)一步的偵查運(yùn)行在SSL之上的具體的應(yīng)用類型。

  6.如果探測(cè)到應(yīng)用程序是SunRPC,那么調(diào)用brute-force RPC grinder進(jìn)一步探測(cè)具體服務(wù)。

  5.2    版本偵測(cè)的用法

  版本偵測(cè)方面的命令行選項(xiàng)比較簡(jiǎn)單

  -sV: 指定讓Nmap進(jìn)行版本偵測(cè)

  –version-intensity <level>: 指定版本偵測(cè)強(qiáng)度(0-9),默認(rèn)為7。數(shù)值越高,探測(cè)出的服務(wù)越準(zhǔn)確,但是運(yùn)行時(shí)間會(huì)比較長(zhǎng)。

  –version-light: 指定使用輕量偵測(cè)方式 (intensity 2)

  –version-all: 嘗試使用所有的probes進(jìn)行偵測(cè) (intensity 9)

  –version-trace: 顯示出詳細(xì)的版本偵測(cè)過(guò)程信息。

  下面以掃描80端口的版本為例,顯示snmp的掃描結(jié)果和抓包結(jié)果

  snmp -sV -p 80 113.11.*.*        #指定掃描80端口


  從抓包可以看出,在未指定 -Pn 參數(shù)時(shí),默認(rèn)限制性的ip存活性檢測(cè),只有當(dāng)確認(rèn)主機(jī)存活后才進(jìn)行版本檢測(cè)。

  使用snmp -sV 113.11.*.* 時(shí),默認(rèn)檢查存活狀態(tài),根據(jù)存活狀態(tài)再掃描TCP常見的1000端口,根據(jù)端口狀態(tài)再掃描版本(在http版本確認(rèn)中,首先建立了tcp連接,然后關(guān)閉tcp連接,再建立連接3次握手,并發(fā)出get請(qǐng)求后進(jìn)行4次揮手)

  6、OS偵測(cè)

  命令nmap -O 113.11.*.*

  nmap首先檢測(cè)主機(jī)存活狀態(tài),然后掃描常見的1000端口,最后判斷OS系統(tǒng),下圖是運(yùn)行后的結(jié)果。根據(jù)結(jié)果,里面的端口都能夠掃描出是開啟或是關(guān)閉,說(shuō)明未架設(shè)防火墻等安全防護(hù)設(shè)備。

  

  7、Nmap 高級(jí)用法

  防火墻與IDS規(guī)避為用于繞開防火墻與IDS(入侵檢測(cè)系統(tǒng))的檢測(cè)與屏蔽,以便能夠更加詳細(xì)地發(fā)現(xiàn)目標(biāo)主機(jī)的狀況。

  Nmap提供了多種規(guī)避技巧,通常可以從兩個(gè)方面考慮規(guī)避方式:數(shù)據(jù)包的變換(Packet Change)與時(shí)序變換(Timing Change)。

  7.1 分片(Fragmentation)

  將可疑的探測(cè)包進(jìn)行分片處理(例如將TCP包拆分成多個(gè)IP包發(fā)送過(guò)去),某些簡(jiǎn)單的防火墻為了加快處理速度可能不會(huì)進(jìn)行重組檢查,以此避開其檢查。

  -f; –mtu <val>: 指定使用分片、指定數(shù)據(jù)包的MTU.

  nmap -sn -f –mtu 16 113.11.*.*          #注意 mtu后的數(shù)值必須是8的倍數(shù),如下圖提示

  

  下圖中,首先是正常命令時(shí)的抓包,然后是采用分片后的抓包:

  nmap -sn 113.11.*.*

  nmap  -sn -f –mtu 16 113.11.*.*

  wKiom1SzxLaj4WcNAAWMdWEuyaY985.jpg從抓包中,可以看出data的數(shù)據(jù)包為16byte,與分片設(shè)定的字節(jié)是一致的,同時(shí)抓包中也有提示分片包"Reassembled in #878"

  7.2 IP誘騙(IP decoys)

  在進(jìn)行掃描時(shí),將真實(shí)IP地址和其他主機(jī)的IP地址(其他主機(jī)需要在線,否則目標(biāo)主機(jī)將回復(fù)大量數(shù)據(jù)包到不存在的主機(jī),從而實(shí)質(zhì)構(gòu)成了拒絕服務(wù)攻擊)混合使用,以此讓目標(biāo)主機(jī)的防火墻或IDS追蹤檢查大量的不同IP地址的數(shù)據(jù)包,降低其追查到自身的概率。注意,某些高級(jí)的IDS系統(tǒng)通過(guò)統(tǒng)計(jì)分析仍然可以追蹤出掃描者真實(shí)IP地址。

  -D <decoy1,decoy2[,ME],…>: 用一組IP地址掩蓋真實(shí)地址,其中ME填入自己的IP地址。

  nmap -sn -D 1.1.1.1 113.11.*.*        #這里如果不添加[ME]自己的地址也會(huì)使用自己的地址,同時(shí)也會(huì)發(fā)送誘騙的地址,即2個(gè)地址都將作為源地址

  

  下圖是抓包截圖,可以看出源地址有兩個(gè),一個(gè)是誘騙的地址,另一個(gè)是自己的真實(shí)地址,利用偽裝地址可以發(fā)動(dòng)反射形dos攻擊

  這是源地址為內(nèi)網(wǎng)地址,當(dāng)源地址為公網(wǎng)地址時(shí),不填寫源地址是否可行,需要驗(yàn)證。

  7.3 指定源端口

  某些目標(biāo)主機(jī)只允許來(lái)自特定端口的數(shù)據(jù)包通過(guò)防火墻。例如FTP服務(wù)器配置為:允許源端口為21號(hào)的TCP包通過(guò)防火墻與FTP服務(wù)端通信,但是源端口為其他端口的數(shù)據(jù)包被屏蔽。所以,在此類情況下,可以指定Nmap將發(fā)送的數(shù)據(jù)包的源端口都設(shè)置特定的端口。

  -g/–source-port <portnum>: 使用指定源端口

  nmap -sn -g  11111 113.11.*.*        #指定源端口為11111,向外發(fā)送

  

  下圖是抓包,從中可以看出tcp的源端口都是51111,這個(gè)可以通過(guò)指定源端口來(lái)符合防火墻的ACL訪問(wèn)列表,從而躲避防火墻的檢測(cè)。

  

  7.4 掃描延時(shí)

  某些防火墻針對(duì)發(fā)送過(guò)于頻繁的數(shù)據(jù)包會(huì)進(jìn)行嚴(yán)格的偵查,而且某些系統(tǒng)限制錯(cuò)誤報(bào)文產(chǎn)生的頻率(例如,Solaris 系統(tǒng)通常會(huì)限制每秒鐘只能產(chǎn)生一個(gè)ICMP消息回復(fù)給UDP掃描),所以,定制該情況下發(fā)包的頻率和發(fā)包延時(shí)可以降低目標(biāo)主機(jī)的審查強(qiáng)度、節(jié)省網(wǎng)絡(luò)帶寬。

  <待補(bǔ)實(shí)例>

  7.5 IP偽裝(IP Spoofing)

  顧名思義,IP偽裝即將自己發(fā)送的數(shù)據(jù)包中的IP地址偽裝成其他主機(jī)的地址,從而目標(biāo)機(jī)認(rèn)為是其他主機(jī)在與之通信。需要注意,如果希望接收到目標(biāo)主機(jī)的回復(fù)包,那么偽裝的IP需要位于統(tǒng)一局域網(wǎng)內(nèi)。另外,如果既希望隱蔽自己的IP地址,又希望收到目標(biāo)主機(jī)的回復(fù)包,那么可以嘗試使用idle scan或匿名代理(如TOR)等網(wǎng)絡(luò)技術(shù)。

  -S <IP_Address>: 偽裝成其他IP地址

  nmap -sn -S 1.1.1.1 113.11.*.*        #當(dāng)源地址偽裝成其他ip時(shí),目標(biāo)機(jī)認(rèn)為是其他主機(jī)在與之通信。

  <實(shí)例不成功>,下面是未成功的抓圖,如有知曉的同學(xué),請(qǐng)指點(diǎn)j_0069.gif

  提示如果是偽裝的源ip地址,必須要使用-Pn 和 -e 選項(xiàng)

  

  當(dāng)使用了-Pn 和 -e 選項(xiàng)后,依然提示報(bào)錯(cuò),不能夠分配地址。

  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ī)避技巧,比如指定使用某個(gè)網(wǎng)絡(luò)接口來(lái)發(fā)送數(shù)據(jù)包、指定發(fā)送包的最小長(zhǎng)度、指定發(fā)包的MTU、指定TTL、指定偽裝的MAC地址、使用錯(cuò)誤檢查和(badchecksum)。

  更多信息http://nmap.org/book/man-bypass-firewalls-ids.html

  -f; –mtu <val>: 指定使用分片、指定數(shù)據(jù)包的MTU.

  -D <decoy1,decoy2[,ME],…>: 用一組IP地址掩蓋真實(shí)地址,其中ME填入自己的IP地址。

  -S <IP_Address>: 偽裝成其他IP地址

  -e <iface>: 使用特定的網(wǎng)絡(luò)接口

  -g/–source-port <portnum>: 使用指定源端口

  –data-length <num>: 填充隨機(jī)數(shù)據(jù)讓數(shù)據(jù)包長(zhǎng)度達(dá)到Num。

  –ip-options <options>: 使用指定的IP選項(xiàng)來(lái)發(fā)送數(shù)據(jù)包。

  –ttl <val>: 設(shè)置time-to-live時(shí)間。

  –spoof-mac <mac address/prefix/vendor name>: 偽裝MAC地址

  –badsum: 使用錯(cuò)誤的checksum來(lái)發(fā)送數(shù)據(jù)包(正常情況下,該類數(shù)據(jù)包被拋棄,如果收到回復(fù),說(shuō)明回復(fù)來(lái)自防火墻或IDS/IPS)。

  8 NSE腳本引擎

  <待補(bǔ)充>

  NSE腳本引擎(Nmap Scripting Engine)是Nmap最強(qiáng)大最靈活的功能之一,允許用戶自己編寫腳本來(lái)執(zhí)行自動(dòng)化的操作或者擴(kuò)展Nmap的功能。

  NSE使用Lua腳本語(yǔ)言,并且默認(rèn)提供了豐富的腳本庫(kù),目前已經(jīng)包含14個(gè)類別的350多個(gè)腳本。

  NSE的設(shè)計(jì)初衷主要考慮以下幾個(gè)方面:

  網(wǎng)絡(luò)發(fā)現(xiàn)(Network Discovery)

  更加復(fù)雜的版本偵測(cè)(例如skype軟件)

  漏洞偵測(cè)(Vulnerability Detection)

  后門偵測(cè)(Backdoor Detection)

  漏洞利用(Vulnerability Exploitation)

    文章來(lái)源:http://2042617.blog.51cto.com/2032617/1602300

上一篇:安卓防火墻 PS DroidWall

下一篇:Nmap高級(jí)用法與典型場(chǎng)景