Nmap和Zenmap详解
目錄
一:探索目標主機是否在線
當探測公網?ip時
nmap -sn
nmap? -PE/-PP/-PM
當探測內網ip時
nmap -sn
nmap? -PE/-PP/-PM
二:端口掃描及其原理
三:端口掃描用法
簡單掃描(nmap ip)
全面掃描(nmap -A ip)
探測指定端口的開放狀態?
探測N個最有可能開放的端口
四:版本偵測
版本偵測原理
版本偵測用法
五:OS偵測
OS偵測原理
OS偵測用法?
六:Nmap高級用法
防火墻/IDS規避
分片
IP誘騙(IP decoys)
IP偽裝
指定源端口
掃描延時
其他技術
NSE腳本引擎
Zenmap的使用
Nmap是一款開源免費的網絡發現(Network Discovery)和安全審計(Security Auditing)工具。軟件名字Nmap是Network Mapper的簡稱。Nmap最初是由Fyodor在1997年開始創建的。隨后在開源社區眾多的志愿者參與下,該工具逐漸成為最為流行安全必備工具之一。官網為:www.nmap.org。?
一般情況下,Nmap用于列舉網絡主機清單、管理服務升級調度、監控主機或服務運行狀況。Nmap可以檢測目標機是否在線、端口開放情況、偵測運行的服務類型及版本信息、偵測操作系統與設備類型等信息。?
Nmap的優點:?
- 靈活。支持數十種不同的掃描方式,支持多種目標對象的掃描
- 強大。Nmap可以用于掃描互聯網上大規模的計算機
- 可移植。支持主流操作系統:Windows/Linux/Unix/MacOS等等;源碼開放,方便移植
- 簡單。提供默認的操作能覆蓋大部分功能,基本端口掃描nmap targetip,全面的掃描nmap –A targetip
- 自由。Nmap作為開源軟件,在GPL License的范圍內可以自由的使用
- 文檔豐富。Nmap官網提供了詳細的文檔描述。Nmap作者及其他安全專家編寫了多部Nmap參考書籍
- 社區支持。Nmap背后有強大的社區團隊支持
Nmap包含四項基本功能:
- 主機發現 (Host Discovery)
- 端口掃描 (Port Scanning)
- 版本偵測 (Version Detection)
- 操作系統偵測 (Operating System Detection)
而這四項功能之間,又存在大致的依賴關系(通常情況下的順序關系,但特殊應用另外考慮),首先需要進行主機發現,隨后確定端口狀態,然后確定端口上運行的具體應用程序和版本信息,然后可以進行操作系統的偵測。而在這四項功能的基礎上,nmap還提供防火墻和 IDS 的規避技巧,可以綜合運用到四個基本功能的各個階段。另外nmap還提供強大的NSE(Nmap? Scripting Language)腳本引擎功能,腳本可以對基本功能進行補充和擴展。
先整理一些nmap參數及其意義
nmap –iflist : 查看本地主機的接口信息和路由信息
-A :選項用于使用進攻性方式掃描
-T4: 指定掃描過程使用的時序,總有6個級別(0-5),級別越高,掃描速度越快,但也容易被防火墻或IDS檢測并屏蔽掉,在網絡通訊狀況較好的情況下推薦使用T4
-oX test.xml: 將掃描結果生成 test.xml 文件
-oG test.txt: 將掃描結果生成 test.txt 文件
-sn : 只進行主機發現,不進行端口掃描
-O : 指定Nmap進行系統版本掃描
-sV: 指定讓Nmap進行服務版本掃描
-p <port ranges>: 掃描指定的端口
-sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式來對目標主機進行掃描
-sU: 指定使用UDP掃描方式確定目標主機的UDP端口狀況
-script <script name> : 指定掃描腳本
-Pn : 不進行ping掃描
-iL 1.txt : 批量掃描1.txt中的目標地址
-sL: List Scan 列表掃描,僅將指定的目標的IP列舉出來,不進行主機發現
-sY/sZ: 使用SCTP INIT/COOKIE-ECHO來掃描SCTP協議端口的開放的情況
-sO: 使用IP protocol 掃描確定目標機支持的協議類型
-PO : 使用IP協議包探測對方主機是否開啟
-PE/PP/PM : 使用ICMP echo、 ICMP timestamp、ICMP netmask 請求包發現主機
-PS/PA/PU/PY : 使用TCP SYN/TCP ACK或SCTP INIT/ECHO方式進行發現
-sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密掃描方式來協助探測對方的TCP端口狀態
-e eth0:指定使用eth0網卡進行探測
-f : --mtu <val>: 指定使用分片、指定數據包的 MTU.
-b <FTP relay host>: 使用FTP bounce scan掃描方式
-g: 指定發送的端口號
-r: 不進行端口隨機打亂的操作(如無該參數,nmap會將要掃描的端口以隨機順序方式掃描,以讓nmap的掃描不易被對方防火墻檢測到)
-v 表示顯示冗余信息,在掃描過程中顯示掃描的細節,從而讓用戶了解當前的掃描狀態
-n : 表示不進行DNS解析;
-D <decoy1,decoy2[,ME],...>: 用一組 IP 地址掩蓋真實地址,其中 ME 填入自己的 IP 地址
-R :表示總是進行DNS解析。
-F : 快速模式,僅掃描TOP 100的端口
-S <IP_Address>: 偽裝成其他 IP 地址
--ttl <val>: 設置 time-to-live 時間
--badsum: 使用錯誤的 checksum 來發送數據包(正常情況下,該類數據包被拋棄,如果收到回復,說明回復來自防火墻或 IDS/IPS)
--dns-servers : 指定DNS服務器
--system-dns : 指定使用系統的DNS服務器
--traceroute : 追蹤每個路由節點
--scanflags <flags>: 定制TCP包的flags
--top-ports <number> :掃描開放概率最高的number個端口
--port-ratio <ratio>: 掃描指定頻率以上的端口。與上述--top-ports類似,這里以概率作為參數
--version-trace: 顯示出詳細的版本偵測過程信息
--osscan-limit: 限制Nmap只對確定的主機的進行OS探測(至少需確知該主機分別有一個open和closed的端口)
--osscan-guess: 大膽猜測對方的主機的系統類型。由此準確性會下降不少,但會盡可能多為用戶提供潛在的操作系統
--data-length <num>: 填充隨機數據讓數據包長度達到 Num
--ip-options <options>: 使用指定的 IP 選項來發送數據包
--spoof-mac <mac address/prefix/vendor name> : 偽裝 MAC 地址
--version-intensity <level>: 指定版本偵測強度(0-9),默認為7。數值越高,探測出的服務越準確,但是運行時間會比較長。
--version-light: 指定使用輕量偵測方式 (intensity 2)
--version-all: 嘗試使用所有的probes進行偵測 (intensity 9)
--version-trace: 顯示出詳細的版本偵測過程信息
- 1
一:探索目標主機是否在線
主機發現的原理與Ping命令類似,發送探測包到目標主機,如果收到回復,那么說明目標主機是開啟的。Nmap支持十多種不同的主機探測方式,用戶可以在不同的條件下靈活選用不同的方式來探測目標機。主機發現常用參數如下。
-sn: Ping Scan 只進行主機發現,不進行端口掃描。
-PE/PP/PM: 使用ICMP echo、 ICMP timestamp、ICMP netmask 請求包發現主機。
-PS/PA/PU/PY[portlist]: 使用TCP SYN/TCP ACK或SCTP INIT/ECHO方式進行發現。
-sL: List Scan 列表掃描,僅將指定的目標的IP列舉出來,不進行主機發現。
-Pn: 將所有指定的主機視作開啟的,跳過主機發現的過程。
-PO[protocollist]: 使用IP協議包探測對方主機是否開啟。
-n/-R: -n表示不進行DNS解析;-R表示總是進行DNS解析。
--dns-servers <serv1[,serv2],...>: 指定DNS服務器。
--system-dns: 指定使用系統的DNS服務器
--traceroute: 追蹤每個路由節點
- 1
當探測公網?ip時
nmap -sn
Nmap會發送四種不同類型的數據包來探測目標主機是否在線。
- 1
依次發送四個報文探測目標機是否開啟。只要收到其中一個包的回復,那就證明目標機開啟。使用四種不同類型的數據包可以避免因防火墻或丟包造成的判斷錯誤
通常主機發現并不單獨使用,而只是作為端口掃描、版本偵測、OS偵測先行步驟。而在某些特殊應用(例如確定大型局域網內活動主機的數量),可能會單獨專門使用主機發現功能來完成。
nmap? -PE/-PP/-PM
- -PE 的ICMP Echo掃描簡單來說是通過向目標發送ICMP Echo數據包來探測目標主機是否存活,但由于許多主機的防火墻會禁止這些報文,所以僅僅ICMP掃描通常是不夠的。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? nmap ? -PE ? 133.133.100.30
- -PP 的ICMP time stamp時間戳掃描在大多數防火墻配置不當時可能會得到回復,可以以此方式來判斷目標主機是否存活。倘若目標主機在線,該命令還會探測其開放的端口以及運行的服務! ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?nmap? nmap? -PP? 133.133.100.30
- -PM 的ICMP address maskPing地址掩碼掃描會試圖用備選的ICMP等級Ping指定主機,通常有不錯的穿透防火墻的效果 ? ? ? nmap? -PM? 133.133.100.30
- -PS的TCP SYN掃描
當探測內網ip時
nmap -sn
使用?nmap? -sn? 內網ip? ?這個命令會發送arp請求包探測目標ip是否在線,如果有arp回復包,則說明在線。此命令可以探測目標主機是否在線,如果在線,還可以得到其MAC地址。但是不會探測其開放的端口號。
nmap? -PE/-PP/-PM
使用?nmap? -PE/PP/PM? 內網ip?探測主機的開啟情況,使用的是ARP請求報文,如果有ARP回復報文,說明主機在線。-PP/PE/PM命令探測到主機在線后,還會探測主機的端口的開啟狀態以及運行的服務,其探測端口狀態原理在下一節中有介紹。
?探測該主機所在網段內所有主機的在線情況,使用的是? nmap? -sn ? 網段/子網掩碼 。
例:nmap -sn 10.96.10.0/24 或 nmap -sn 10.96.10.100-200- 1
探測10.96.10.0 這個網段內主機的在線情況,返回在線主機的ip和MAC地址
二:端口掃描及其原理
端口掃描是Nmap最基本最核心的功能,用于確定目標主機的TCP/UDP端口的開放情況。
默認情況下,Nmap會掃描1000個最有可能開放的TCP端口
Nmap通過探測將端口劃分為6個狀態:
TCP SYN 掃描(-sS)
? ? ? ? 這是Nmap默認的掃描方式,通常被稱作半開放掃描。該方式發送SYN到目標端口,如果收到SYN/ACK回復,那么可以判斷端口是開放的;如果收到RST包,說明該端口是關閉的。如果沒有收到回復,那么可以判斷該端口被屏蔽了。因為該方式僅發送SYN包對目標主機的特定端口,但不建立完整的TCP連接,所以相對比較隱蔽,而且效率比較高,適用范圍廣。
TCP connent 掃描(-sT)
? ? ? TCP connect方式使用系統網絡API connect向目標主機的端口發起連接,如果無法連接,說明該端口關閉。該方式掃描速度比較慢,而且由于建立完整的TCP連接會在目標主機上留下記錄信息,不夠隱蔽。所以,TCP connect是TCP SYN無法使用才考慮使用的方式
TCP ACK 掃描(-sA)
? ? ? 向目標主機的端口發送ACK包,如果收到RST包,說明該端口沒有被防火墻屏蔽;沒有收到RST包,說明被屏蔽。該方式只能用于確定防火墻是否屏蔽某個端口,可以輔助TCP SYN的方式來判斷目標主機防火墻的狀況
TCP FIN/Xmas/NULL 掃描(-sN/sF/sX)
? ? ? 這三種掃描方式被稱為秘密掃描,因為相對比較隱蔽。FIN掃描向目標主機的端口發送的TCP FIN 包或Xmas tree包或NULL包,如果收到對方的RST回復包,那么說明該端口是關閉的;沒有收到RST包說明該端口可能是開放的或者被屏蔽了。其中Xmas tree包是指flags中FIN URG PUSH被置為1的TCP包;NULL包是指所有的flags都為0的TCP包。
UDP掃描(-sU)
? ? ? UDP掃描用于判斷UDP端口的情況,向目標主機的UDP端口發送探測包,如果收到回復ICMP port unreachable就說明該端口是關閉的;如果沒有收到回復,那說明該UDP端口可能是開放的或者屏蔽的。因此,通過反向排除法的方式來判斷哪些UDP端口是可能處于開放狀態的。
其他方式(-sY/-sZ)
? ? ?除了以上幾種常用的方式外,Nmap還支持多種其他的探測方式。例如使用SCTP INIT/Cookie-ECHO方式是來探測SCTP的端口開放情況;使用IP protocol方式來探測目標主機支持的協議類型(tcp/udp/icmp/sctp等等);使用idle scan方式借助僵尸主機來掃描目標主機,以達到隱蔽自己的目的;或者使用FTP bounce scan,借助FTP允許的代理服務掃描其他的主機,同樣達到隱蔽自己的目的
三:端口掃描用法
掃描方式選項
-sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式來對目標主機進行掃描。
-sU: 指定使用UDP掃描方式確定目標主機的UDP端口狀況。
-sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密掃描方式來協助探測對方的TCP端口狀態。
--scanflags <flags>: 定制TCP包的flags。
-sI <zombiehost[:probeport]>: 指定使用idle scan方式來掃描目標主機(前提需要找到合適的zombie host)
-sY/sZ: 使用SCTP INIT/COOKIE-ECHO來掃描SCTP協議端口的開放的情況。
-sO: 使用IP protocol 掃描確定目標機支持的協議類型。
-b <FTP relay host>: 使用FTP bounce scan掃描方式
- 1
端口參數與掃描順序
-p <port ranges>: 掃描指定的端口
實例: -p 22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9(其中T代表TCP協議、U代表UDP協議、S代表SCTP協議)
-F: Fast mode – 快速模式,僅掃描TOP 100的端口
-r: 不進行端口隨機打亂的操作(如無該參數,nmap會將要掃描的端口以隨機順序方式掃描,以讓nmap的掃描不易被對方防火墻檢測到)。
--top-ports <number>:掃描開放概率最高的number個端口(nmap的作者曾經做過大規模地互聯網掃描,以此統計出網絡上各種端口可能開放的概率。以此排列出最有可能開放端口的列表,具體可以參見文件:nmap-services。默認情況下,nmap會掃描最有可能的1000個TCP端口)
--port-ratio <ratio>: 掃描指定頻率以上的端口。與上述--top-ports類似,這里以概率作為參數,讓概率大于--port-ratio的端口才被掃描。顯然參數必須在在0到1之間,具體范圍概率情況可以查看nmap-services文件
- 1
簡單掃描(nmap ip)
nmap 202.207.236.2- 1
例如: nmap? 202.207.236.2 ?? 這個命令會按照 nmap-services 文件中指定的端口進行掃描,然后列出目標主機開放的端口號,以及端口號上運行的服務。在一次簡單掃描中,Nmap會以默認TCP SYN掃描方式進行,僅判斷目標端口是否開放,若開放,則列出端口對應的服務名稱。
探測端口開放過程:? 確定主機在線之后,nmap會按照nmap-services文件中的端口號發送TCP SYN報文給主機相應的端口,如果主機回復一個包含TCP SYN、ACK的報文,則說明該端口號開放。nmap會再回復一個TCP RST清除連接復位。下面的截圖是nmap是和目標主機的80號端口的探測過程,由此可見,目標主機的22號端口屬于開放狀態!
全面掃描(nmap -A ip)
nmap -A 202.207.236.2- 1
例如:?nmap? -A? 202.207.236.2 ?? 這個命令不僅列出目標主機開放的端口號,對應的服務,還較為詳細的列出了服務的版本,其支持的命令,到達目標主機的每一跳路由等信息。在進行完全掃描時,掃描機與目標主機之間存在大量的數據流量交互,掃描時長隨之增加。完全掃描不僅僅是TCP協議上的通信交互,還有例如ICMP、HTTP、NBSS、TDS、POP等等協議的交互,這些協議的交互是因為在完全掃描開始時首先對目標主機的開放端口進行了確認,之后再根據不同對應的不同服務進行服務版本信息探測、賬戶信息等信息的探測!
- 探測主機是否在線:全面掃描時探測主機是否在線和簡單掃描完全一致
- 探測端口是否打開:全面掃描時探測主機端口開放和簡單掃描完全一致
- 探測端口服務具體版本:每個協議都不一樣,總之就是確定端口開放了之后,和該端口進行更多的數據交互,以獲得更多的信息。在下一節的版本探測中有更深入的研究
- 探測主機系統:在下一節的系統探測中有更深入的研究。
- 1
- -A 選項用于使用進攻性方式掃描
- -T4 指定掃描過程使用的時序,總有6個級別(0-5),級別越高,掃描速度越快,但也容易被防火墻或IDS檢測并屏蔽掉,在網絡通訊狀況較好的情況下推薦使用T4
- -v 表示顯示冗余信息,在掃描過程中顯示掃描的細節,從而讓用戶了解當前的掃描狀態
例如:nmap -T4 -A -v 10.96.10.246
全面掃描時數據流量包的截圖,確定了哪些端口的協議開啟了之后,進行更加深入的探測!
探測指定端口的開放狀態
在默認情況下,Nmap對端口的掃描方式是從小到大進行的,或者是參照 nmap-services 中文件列出的端口進行掃描。-p選項可以指定一個端口號或者一個端口范圍。若既想掃描TCP端口又想掃描UDP端口,則需要在端口號前加上T:或U:來分別代表TCP和UDP協議。注意,要既掃描TCP又掃描UDP,則需要指定-sU及至少一個TCP掃描類型(-sS(半連接掃描),-sT(全連接掃描)等),如果沒有給定協議限定符,端口號會被加到所有協議列表。
例: nmap? -p? 80-445? 10.96.10.246 ? ? 掃描目標主機的80-445端口的開放情況
從上面的圖中可以看到,若只簡單的指定一個端口范圍,Nmap會默認以TCP SYN方式掃描目標端口,若既想掃描目標TCP端口又想掃描UDP的端口,則需要指定掃描方式以及端口。
例: nmap? -sS ? -sU? -p ?T:80,U:445 ? 10.96.10.246 ? ? 以半連接的TCP SYN方式掃描目標主機的80端口,以UDP方式掃描目標主機的445端口
探測N個最有可能開放的端口
例:nmap -sS -sU --top-ports 100 10.96.10.246- 1
參數-sS表示使用TCP SYN方式掃描TCP端口;-sU表示掃描UDP端口;--top-ports 100表示掃描最有可能開放的100個端口(TCP和UDP分別100個端口)。
四:版本偵測
版本偵測,用于確定目標主機開放端口上運行的具體的應用程序及版本信息。
Nmap提供的版本偵測具有如下的優點:
- 高速。并行地進行套接字操作,實現一組高效的探測匹配定義語法。
- 盡可能地確定應用名字與版本名字。
- 支持TCP/UDP協議,支持文本格式與二進制格式。
- 支持多種平臺服務的偵測,包括Linux/Windows/Mac OS/FreeBSD等系統。
- 如果檢測到SSL,會調用openSSL繼續偵測運行在SSL上的具體協議(如HTTPS/POP3S/IMAPS)。
- 如果檢測到SunRPC服務,那么會調用brute-force RPC grinder進一步確定RPC程序編號、名字、版本號。
- 支持完整的IPv6功能,包括TCP/UDP,基于TCP的SSL。
- 通用平臺枚舉功能(CPE)
- 廣泛的應用程序數據庫(nmap-services-probes)。目前Nmap可以識別幾千種服務的簽名,包含了180多種不同的協議。
版本偵測原理
版本偵測主要分為以下幾個步驟:
版本偵測用法
比如目標主機把SSH的22號端口改成了2222端口,那么如果使用普通掃描只會發現2222端口是開啟的,并不能知道2222號端口上運行的程序,通過加參數? -sV? 進行版本掃描,可以探測到目標主機上2222端口運行的是SSH服務
-sV: 指定讓Nmap進行版本偵測
--version-intensity <level>: 指定版本偵測強度(0-9),默認為7。數值越高,探測出的服務越準確,但是運行時間會比較長。
--version-light: 指定使用輕量偵測方式 (intensity 2)
--version-all: 嘗試使用所有的probes進行偵測 (intensity 9)
--version-trace: 顯示出詳細的版本偵測過程信息
- 1
- 1
五:OS偵測
操作系統偵測用于檢測目標主機運行的操作系統類型及設備類型等信息。
Nmap擁有豐富的系統數據庫nmap-os-db,目前可以識別2600多種操作系統與設備類型。
OS偵測原理
Nmap使用TCP/IP協議棧指紋來識別不同的操作系統和設備。在RFC規范中,有些地方對TCP/IP的實現并沒有強制規定,由此不同的TCP/IP方案中可能都有自己的特定方式。Nmap主要是根據這些細節上的差異來判斷操作系統的類型的。
具體實現方式如下:
OS偵測用法
-O: 指定Nmap進行OS偵測。
--osscan-limit: 限制Nmap只對確定的主機的進行OS探測(至少需確知該主機分別有一個open和closed的端口)。
--osscan-guess: 大膽猜測對方的主機的系統類型。由此準確性會下降不少,但會盡可能多為用戶提供潛在的操作系統
- 1
- 1
六:Nmap高級用法
防火墻/IDS規避
防火墻與IDS規避為用于繞開防火墻與IDS的檢測與屏蔽,以便能夠更加詳細地發現目標主機的狀況。nmap提供了多種規避技巧通常可以從兩個方面考慮規避方式:數據包的變換(Packet Change)和時序變換(Timing Change)
分片
將可疑的探測包進行分片處理(例如將TCP包拆分成多個IP包發送過去),某些簡單的防火墻為了加快處理速度可能不會進行重組檢查,以此避開其檢查
IP誘騙(IP decoys)
在進行掃描時,將真實IP地址在和其他主機的IP地址混合使用(其他主機需要在線,否則目標主機將回復大量數據包到不存在的數主機,從而實質構成了DOS攻擊),以此讓目標主機的防火墻或IDS追蹤大量的不同IP地址的數據包,降低其追查到自身的概率。但是,某些高級的IDS系統通過統計分析仍然可以追蹤出掃描者真實的IP地址
IP偽裝
IP偽裝就是將自己發送的數據包中的IP地址偽裝成其他主機的地址,從而目標機認為是其他主機與之通信。需要注意的是,如果希望接收到目標主機的回復包,那么偽裝的IP需要位于統一局域網內。另外,如果既希望隱蔽自己的IP地址,又希望收到目標主機的回復包,那么可以嘗試使用idle?scan?或匿名代理等網絡技術
指定源端口
某些目標主機只允許來自特定端口的數據包通過防火墻。例如,FTP服務器的配置為允許源端口為21號的TCP包通過防火墻與FTP服務器通信,但是源端口為其他的數據包被屏蔽。所以,在此類情況下,可以指定數據包的源端口
掃描延時
某些防火墻針對發送過于頻繁的數據包會進行嚴格的偵查,而且某些系統限制錯誤報文產生的頻率。所以,我們可以降低發包的頻率和發包延時以此降低目標主機的審查強度
其他技術
nmap還提供其他多種規避技巧,比如指定使用某個網絡接口來發送數據包、指定發送包的最小長度、指定發包的MTU、指定TTL、指定偽裝的MAC地址,使用錯誤檢查。
-f; --mtu <val>: 指定使用分片、指定數據包的 MTU.
-D <decoy1,decoy2[,ME],...>: 用一組 IP 地址掩蓋真實地址,其中 ME 填入自己的 IP 地址。
-S <IP_Address>: 偽裝成其他 IP 地址
-e <iface>: 使用特定的網絡接口
-g/--source-port <portnum>: 使用指定源端口
--data-length <num>: 填充隨機數據讓數據包長度達到 Num。
--ip-options <options>: 使用指定的 IP 選項來發送數據包。
--ttl <val>: 設置 time-to-live 時間。
--spoof-mac <mac address/prefix/vendor name>: 偽裝 MAC 地址
--badsum: 使用錯誤的 checksum 來發送數據包(正常情況下,該類數據包被拋棄,如果收到回復,
說明回復來自防火墻或 IDS/IPS)
- 1
實例:?
nmap -F -Pn -D 10.96.10.100,10.96.10.110,ME -e eth0 -g 5555 202.207.236.3
-F參數表示快速掃描100個端口,-Pn不進行ping掃描,-D表示使用ip誘騙方式掩飾真實ip,使用的是10.96.10.100和10.96.10.110,ME表示自己真實的ip,這里是10.96.10.234,-e 參數指定eth0網卡發送數據包,-g參數指定發送的端口號
- 1
?
NSE腳本引擎
NSE腳本引擎(Nmap Scripting Engine)是nmap最強大,最靈活的功能之一,允許用戶自己編寫腳本來執行自動化的操作或者擴展nmap的功能。
nmap的腳本庫的路徑:/usr/share/nmap/scripts? ,該目錄下的文件都是nse腳本
NSE使用Lua腳本語言,并且默認提供了豐富的腳本庫,目前已經包含了14個類別的350多個腳本。NSE的設計初衷主要考慮以下幾個方面
- 網絡發現(Network Discovery)
- 更加復雜的版本偵測(例如 skype 軟件)
- 漏洞偵測(Vulnerability Detection)
- 后門偵測(Backdoor Detection)
- 漏洞利用(Vulnerability Exploitation)
- 1
Zenmap的使用
Zenmap是Nmap官方提供的圖形界面,通常隨Nmap的安裝包發布。Zenmap是用Python語言編寫而成的開源免費的圖形界面,能夠運行在不同操作系統平臺上(Windows/Linux/Unix/Mac OS等)。Zenmap旨在為nmap提供更加簡單的操作方式。簡單常用的操作命令可以保存成為profile,用戶掃描時選擇profile即可;可以方便地比較不同的掃描結果;
| Intense scan | (nmap -T4 -A -v) | 一般來說,Intense scan可以滿足一般掃描 |
| ? | -T4 | ?加快執行速度 |
| ? | -A | ?操作系統及版本探測 |
| ? | -v | ?顯示詳細的輸出 |
| Intense scan plus UDP | (nmap -sS -sU -T4 -A -v) | 即UDP掃描 |
| ? | -sS | ? TCP SYN 掃描 |
| ? | -sU | ? UDP 掃描 |
| Intense scan,all TCP ports | (nmap -p 1-65536 -T4 -A -v) | 掃描所有TCP端口,范圍在1-65535,試圖掃描所有端口的開放情況,速度比較慢。 |
| ? | -p | ?指定端口掃描范圍 |
| Intense scan,no ping | (nmap -T4 -A -v -Pn) | 非ping掃描 |
| ? | -Pn | ?非ping掃描 |
| Ping scan | (nmap -sn) | Ping 掃描 <p>優點:速度快。</p><p>缺點:容易被防火墻屏蔽,導致無掃描結果</p></td></tr><tr><td><p> </p></td><td><p>-sn</p></td><td><p> ping掃描</p></td></tr><tr><td><p>Quick scan</p></td><td><p>(nmap -T4 -F)</p></td><td><p>快速的掃描</p></td></tr><tr><td><p> </p></td><td><p>-F</p></td><td><p> 快速模式。</p></td></tr><tr><td><p>Quick scan plus</p></td><td><p>(nmap -sV -T4 -O -F --version-light)</p></td><td><p>快速掃描加強模式</p></td></tr><tr><td><p> </p></td><td><p>-sV</p></td><td><p> 探測端口及版本服務信息。</p></td></tr><tr><td><p> </p></td><td><p>-O</p></td><td><p> 開啟OS檢測</p></td></tr><tr><td><p> </p></td><td><p>--version-light</p></td><td><p> 設定偵測等級為2。</p></td></tr><tr><td><p>Quick traceroute</p></td><td><p>(nmap -sn --traceroute)</p></td><td><p>路由跟蹤</p></td></tr><tr><td><p> </p></td><td><p>-sn Ping</p></td><td><p>掃描,關閉端口掃描</p></td></tr><tr><td><p> </p></td><td><p>-traceroute</p></td><td><p> 顯示本機到目標的路由躍點。</p></td></tr><tr><td><p>Regular scan</p></td><td><p>規則掃描</p></td><td><p> </p></td></tr><tr><td><p>Slow comprehensive scan</p></td><td><p>(nmap -sS -sU -T4 -A -v -PE -PP -PS80,443,-PA3389,PU40125 -PY -g 53 --script all)</p></td><td><p>慢速全面掃描。</p></td></tr></tbody></table></div> </div></div>
|
- 點贊 1
- 收藏
- 分享
總結
以上是生活随笔為你收集整理的Nmap和Zenmap详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux /proc/net/arp
- 下一篇: 找不到 快速启动 ,怎么办