介紹:
Nmap使用原始IP數(shù)據(jù)包來確定網(wǎng)絡(luò)上可用的主機(jī)、主機(jī)提供的服務(wù)(應(yīng)用程序名稱和版本)、正在運(yùn)行的操作系統(tǒng)(和OS版本)、包過濾器/防火墻的類型。它旨在快速掃描大型網(wǎng)絡(luò),但可以在單個(gè)主機(jī)上正常運(yùn)行。Nmap可在所有主要的計(jì)算機(jī)操作系統(tǒng)上運(yùn)行,并且官方二進(jìn)制程序包可用于Linux,Windows和Mac OSX。
namp說白了就是掃描目標(biāo)主機(jī)的各種服務(wù)服務(wù),也可以掃描多個(gè)主機(jī),而這些復(fù)雜的操作只需要一條命了就可以完成
基本用法,可以參見官網(wǎng)
Nmap 7.90SVN(https://nmap.org)
用法:nmap [掃描類型] [選項(xiàng)] {目標(biāo)規(guī)范}
目標(biāo)規(guī)格:
可以傳遞主機(jī)名,IP地址,網(wǎng)絡(luò)等。
例如:scanme.nmap.org,microsoft.com / 24、192.168.0.1;10.0.0-255.1-254
-iL <inputfilename>:主機(jī)/網(wǎng)絡(luò)列表中的輸入
-iR <num主機(jī)>:選擇隨機(jī)目標(biāo)
--exclude <host1 [,host2] [,host3],...>:排除主機(jī)/網(wǎng)絡(luò)
--excludefile <exclude_file>:從文件中排除列表
主機(jī)發(fā)現(xiàn):
-sL:列出掃描-僅列出要掃描的目標(biāo)
-sn:Ping掃描-禁用端口掃描
-Pn:將所有主機(jī)視為聯(lián)機(jī)-跳過主機(jī)發(fā)現(xiàn)
-PS / PA / PU / PY [端口列表]:對給定端口的TCP SYN / ACK,UDP或SCTP發(fā)現(xiàn)
-PE / PP / PM:ICMP回顯,時(shí)間戳和網(wǎng)絡(luò)掩碼請求發(fā)現(xiàn)探針
-PO [協(xié)議列表]:IP協(xié)議Ping
-n / -R:從不進(jìn)行DNS解析/始終解析[默認(rèn)值:有時(shí)]
--dns-servers <serv1 [,serv2],...>:指定自定義DNS服務(wù)器
--system-dns:使用操作系統(tǒng)的DNS解析器
--traceroute:跟蹤到每個(gè)主機(jī)的躍點(diǎn)路徑
掃描技術(shù):
-sS / sT / sA / sW / sM:TCP SYN / Connect()/ ACK / Window / Maimon掃描
-sU:UDP掃描
-sN / sF / sX:TCP空,F(xiàn)IN和Xmas掃描
--scanflags <標(biāo)志>:自定義TCP掃描標(biāo)志
-sI <僵尸主機(jī)[:probeport]>:空閑掃描
-sY / sZ:SCTP INIT / COOKIE-ECHO掃描
-sO:IP協(xié)議掃描
-b <FTP中繼主機(jī)>:FTP退回掃描
端口規(guī)格和掃描順序:
-p <端口范圍>:僅掃描指定的端口
例如:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
--exclude-ports <端口范圍>:從掃描中排除指定的端口
-F:快速模式-掃描的端口少于默認(rèn)掃描的端口
-r:連續(xù)掃描端口-不要隨機(jī)化
--top-ports <編號>:掃描<編號>最常見的端口
--port-ratio <比率>:掃描端口比<比率>更常見
服務(wù)/版本檢測:
-sV:探測打開的端口以確定服務(wù)/版本信息
--version-intensity <級別>:設(shè)置為0(淺)至9(嘗試所有探針)
--version-light:限制為最可能的探測(強(qiáng)度2)
--version-all:嘗試每個(gè)探針(強(qiáng)度9)
--version-trace:顯示詳細(xì)的版本掃描活動(dòng)(用于調(diào)試)
腳本掃描:
-sC:相當(dāng)于--script = default
--script = <Lua腳本>:<Lua腳本>是逗號分隔的列表
目錄,腳本文件或腳本類別
--script-args = <n1 = v1,[n2 = v2,...]>:提供腳本參數(shù)
--script-args-file =文件名:在文件中提供NSE腳本args
--script-trace:顯示所有發(fā)送和接收的數(shù)據(jù)
--script-updatedb:更新腳本數(shù)據(jù)庫。
--script-help = <Lua腳本>:顯示有關(guān)腳本的幫助。
<Lua腳本>是逗號分隔的腳本文件列表,或者
腳本類別。
操作系統(tǒng)檢測:
-O:啟用操作系統(tǒng)檢測
--osscan-limit:將操作系統(tǒng)檢測限制在有希望的目標(biāo)上
--osscan-guess:更積極地猜測操作系統(tǒng)
時(shí)間和性能:
花費(fèi)<時(shí)間>的選項(xiàng)以秒為單位,或附加“ ms”(毫秒),
值的“ s”(秒),“ m”(分鐘)或“ h”(小時(shí))(例如30m)。
-T <0-5>:設(shè)置時(shí)間模板(越高速度越快)
--min-hostgroup / max-hostgroup <大小>:并行主機(jī)掃描組大小
--min-parallelism / max-parallelism <numprobes>:探針并行化
--min-rtt-timeout / max-rtt-timeout / initial-rtt-timeout <時(shí)間>:指定
探測往返時(shí)間。
--max-retries <tries>:限制端口掃描探針重新傳輸?shù)拇螖?shù)。
--host-timeout <時(shí)間>:在很長一段時(shí)間后放棄目標(biāo)
--scan-delay /-max-scan-delay <時(shí)間>:調(diào)整探頭之間的延遲
--min-rate <number>:每秒發(fā)送數(shù)據(jù)包的速度不低于<number>
--max-rate <number>:每秒發(fā)送數(shù)據(jù)包的速度不超過<number>
防火墻/標(biāo)識閃避和疏散:
-F; --mtu <val>:分段數(shù)據(jù)包(可選,帶有給定的MTU)
-D <decoy1,decoy2 [,ME],...>:用誘餌掩蓋掃描
-S <IP地址>:欺騙源地址
-e <iface>:使用指定的接口
-g /-source-port <端口號>:使用給定的端口號
--proxies <url1,[url2],...>:通過HTTP / SOCKS4代理中繼連接
--data <十六進(jìn)制字符串>:將自定義有效負(fù)載附加到發(fā)送的數(shù)據(jù)包
--data-string <字符串>:將自定義ASCII字符串附加到發(fā)送的數(shù)據(jù)包
--data-length <num>:將隨機(jī)數(shù)據(jù)追加到發(fā)送的數(shù)據(jù)包中
--ip-options <選項(xiàng)>:發(fā)送具有指定ip選項(xiàng)的數(shù)據(jù)包
--ttl <val>:設(shè)置IP生存時(shí)間字段
--spoof-mac <mac地址/前綴/供應(yīng)商名稱>:欺騙您的MAC地址
--badsum:使用偽造的TCP / UDP / SCTP校驗(yàn)和發(fā)送數(shù)據(jù)包
輸出:
-oN / -oX / -oS / -oG <文件>:以普通,XML,s | <rIpt kIddi3,
和Grepable格式分別更改為給定的文件名。
-oA <basename>:一次以三種主要格式輸出
-v:提高詳細(xì)程度(使用-vv或更高以產(chǎn)生更大的效果)
-d:提高調(diào)試級別(使用-dd或更多以獲得更大的效果)
--reason:顯示端口處于特定狀態(tài)的原因
--open:僅顯示打開(或可能打開)的端口
--packet-trace:顯示所有發(fā)送和接收的數(shù)據(jù)包
--iflist:打印主機(jī)接口和路由(用于調(diào)試)
--append-output:追加而不是破壞指定的輸出文件
--resume <文件名>:恢復(fù)中止的掃描
--stylesheet <路徑/ URL>:XSL樣式表,可將XML輸出轉(zhuǎn)換為HTML
--webxml:Nmap.Org的參考樣式表,用于更便攜式的XML
--no-stylesheet:防止關(guān)聯(lián)帶有XML輸出的XSL樣式表
MISC:
-6:啟用IPv6掃描
-A:啟用操作系統(tǒng)檢測,版本檢測,腳本掃描和跟蹤路由
--datadir <目錄名>:指定自定義Nmap數(shù)據(jù)文件位置
--send-eth /-send-ip:使用原始以太網(wǎng)幀或IP數(shù)據(jù)包發(fā)送
--privileged:假設(shè)用戶具有完全特權(quán)
--unprivileged:假設(shè)用戶缺乏原始套接字特權(quán)
-V:打印版本號
-h:打印此幫助摘要頁面。
在繼續(xù)講之前,先介紹一下Nmap可以識別出的6種端口狀態(tài)
開放:工作于開放端口的服務(wù)器端的應(yīng)用程序可以受理TCP連接、接收UDP數(shù)據(jù)包或者響應(yīng)SCTP(流控制傳輸協(xié)議)請求。
關(guān)閉:雖然我們確實(shí)可以訪問有關(guān)的端口,但是沒有應(yīng)用程序工作于該端口上。
過濾:Nmap不能確定該端口是否開放。包過濾設(shè)備屏蔽了我們向目標(biāo)發(fā)送的探測包。
未過濾:雖然可以訪問到指定端口,但Nmap不能確定該端口是否處于開放狀態(tài)。
打開|過濾:Nmap認(rèn)為指定端口處于開放狀態(tài)或過濾狀態(tài),但是不能確定處于兩者之中的 哪種狀態(tài)。在遇到?jīng)]有響應(yīng)的開放端口時(shí),Nmap會(huì)作出這種判斷。這可以是由于防火墻丟 棄數(shù)據(jù)包造成的。
關(guān)閉|過濾:Nmap認(rèn)為指定端口處于關(guān)閉狀態(tài)或過濾狀態(tài),但是不能確定處于兩者之中的 哪種狀態(tài)。
操作系統(tǒng)探測
-
可以使用
-o(開啟系統(tǒng)檢測)
或者-A(同時(shí)開啟操作系統(tǒng)檢測和版本檢測)
-
--osscan-limit(針對制定目標(biāo)進(jìn)行操作系統(tǒng)檢測)
如果發(fā)現(xiàn)一個(gè)打開和關(guān)閉的TCP端口時(shí),操作系統(tǒng)檢測會(huì)更有效。 采用這個(gè)選項(xiàng),Nmap只對滿足這個(gè)條件的主機(jī)進(jìn)行操作系統(tǒng)檢測,這樣可以節(jié)約時(shí)間。這里的操作系統(tǒng)掃描需要root權(quán)限
-
輸出
-
-oN [filename]
標(biāo)準(zhǔn)輸出,輸出到指定的文件 -
-oX [filename]
XML輸出,輸出為XML格式,這個(gè)比較常用,后期可以結(jié)合暴力工具進(jìn)行輸入
實(shí)例
nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127
掃描 192.116.0.1----192.116.255.127內(nèi)的22、53、110、143、4564端口
這 個(gè)測試用于確定系統(tǒng)是否運(yùn)行了sshd、DNS、imapd或4564端口。如果這些端口 打開,將使用版本檢測來確定哪種應(yīng)用在運(yùn)行。
nmap -v -A 172.16.52.128
掃描172.16.52.128里面的各個(gè)服務(wù)的版本和操作系統(tǒng)