Nmap渗透测试详解(一)
Nmap滲透測試詳解(一)
如今,Nmap享有“掃描之王”盛譽。
Nmap誕生于1996年。在這個信息爆炸的互聯網時代,Nmap依然保持著充沛的活力以及旺盛的生命力。原因如下:
知名度高:只要是黑客,肯定知道Nmap,否則就不能稱為一名黑客。Nmap絕對是著名的網絡安全工具。
功能強大:也許Nmap 在不少人眼里是一個網絡端口掃描以及遠程操作系統、服務鑒別工具。其實除了這些基礎功能外,Nmap還具備相對完整的信息收集、數據庫滲透、網絡滲透測試等功能。Nmap 在強大的腳本支持下幾乎可以做到我們想做的任何網絡掃描測試
Nmap介紹
Nmap英文全稱為“Network Mapper”(網絡映射器)。Nmap是一款開放源代碼的網絡探測和安全審核的工具,它的設計目標不僅可以掃描單個主機,更重要地是可以快速地掃描大型網絡。Nmap以新穎的方式使用原始IP報文來發現網絡上有哪些主機,這些主機提供什么服務(應用程序名和版本),服務運行在什么操作系統(包括版本信息),他們使用什么類型的報文過濾器/防火墻,以及一些其他功能。雖然Nmap通常用于安全審核,許多系統管理員和網絡管理員也用它來做一些日常的工作,比如查看整個網絡的信息、管理服務升級計劃,以及監視主機和服務的運行。
Nmap的基本功能有3個,一是探測一組主機是否在線,其次是掃描主機端口,嗅探所提供的網絡服務,還可以推斷主機所用的操作系統。Nmap 可用于掃描僅有兩個節點的LAN,直至500個節點以上的網絡。Nmap還允許用戶定制掃描技巧。通常,一個簡單的使用ICMP協議的Ping 操作可以滿足一般需求;也可以深入探測UDP或者TCP端口,直至主機所使用的操作系統;還可以將所有探測結果記錄到各種格式的日志里,供進一步分析操作。
Nmap輸出的是掃描目標的列表,以及每個目標的補充信息,至于是哪些信息則依賴于所使用的選項。Open(開放的)意味著目標機器上的應用程序正在該端口監聽連接/報文。Filtered(被過濾的)意味著防火墻,過濾器或者其他網絡障礙阻止了該端口被訪問,Nmap無法得知它是Open(開放的)還是Closed(關閉的)。Closed(關閉的)端口上面沒有應用程序監聽,但是它們隨時可能開放。
Nmap-Script功能的使用。在Nmap的安裝目錄的share/nmap/scripts里,已經有多種寫好的腳本提供,使用這些腳本可以輕易地發起滲透測試。
Nmap工作原理
Nmap使用TCP/IP協議棧指紋準確地判斷目標主機的操作系統類型,Nmap工作原理如下:
| T1 | 發送TCP數據包(Flag=SYN)到開放TCP端口 |
| T2 | 發送一個空的TCP數據包到開放的TCP端口 |
| T3 | 發送TCP數據包(Flag=SYN,URG,PSH,FIN)到開放的TCP端口 |
| T4 | 發送TCP數據包(Flag=ACK)到開放的TCP端口 |
| T5 | 發送TCP數據包(Flag=SYN)到關閉的TCP端口 |
| T6 | 發送TCP數據包(Flag=ACK)到開放的TCP端口 |
| T7 | 發送TCP數據包(Flag=URG,PSH,FIN)到關閉的TCP端口 |
Nmap對目標主機進行一系列的測試,利用測試結構建立相應目標主機的Nmap指紋,然后Nmap會對指紋進行匹配,最終輸出相應的結果。
Nmap語法
Nmap固定語法格式如下:
Nmap 【空格】【選項|多選項|協議】【空格】【目標】
選項與多選項之間也是用空格進行分割的,如果某些選項需要指定某些數據,那么在這些選項與指定的數據之間也需要用空格進行分割。
注意:所有的選項與命令以及選項參數都用空格進行分割的,有時候選項與參數知己可以不用空格分割,如-p80,-p為選項,80為參數。為了讓Nmap語法更加嚴謹,建議嚴格按照空格進行分割。
Nmap的圖形界面工具Zenmap
Nmap不僅有命令行的輸入方式,還有圖形界面,極大地方便了操作。
Zenmap便是它的圖形用戶界面,它是一個跨平臺的開源應用,不僅方便初學者使用,同時為高級使用者提供了很多高級特性。頻繁的掃描能夠被存儲,激進型重復運行。命令行工具提供了直接與Nmap的交互操作。掃描結果能夠被存儲以便于時候查閱。存儲的掃描可以被比較,以辨別其異同。
Nmap的基本知識點
全面掃描
| -A(即All) | 全面掃描/綜合掃描,一種完整掃描目標信息的掃描方式 |
Nmap全面掃描的選項為-A,優點:它可以全面掃描指定IP或域名的所有端口及其目標系統信息等。缺點:它需要等待較長的時間。
如:nmap -A 192.168.126.129
掃描指定段
在Nmap里我們可以指定掃描一個C段,這個功能不需要其他額外的選項,只需要使用“-”連接即可
如:nmap 192.168.126.1-200(掃描192.168.126.1到192.168.126.200這個段)
一次簡單的掃描
該掃描方式可以針對IP或域名進行掃描,掃描方式迅速,可以很方便地發現目標端口的開放情況以及主機在線情況。
如:nmap 192.168.126.129
Ping掃描
| -sP(即scan ping縮寫) | Ping掃描 |
Ping掃描只進行Ping,然后顯示出在線的主機。掃描時只需要加入-sP選項就可以很方便地啟用Ping掃描,使用該選項時,Nmap僅進行Ping掃描,然后會顯出做出相應的主機,使用該選項掃描可以輕易地獲取目標信息而不會被輕易發現。在默認情況下,Nmap會發送一個ICMP回聲請求和一個TCP報文到目標端口。Ping掃描的優點是不會返回太多的信息造成對結果的分析,并且這是一個很高效的掃描方式。
如:nmap -sP 192.168.126.129/24
無Ping掃描
| -P0(0表示無,即無Ping掃描) | 無Ping掃描 |
無Ping掃描通常用于防火墻禁止Ping的情況下,它能確定正在運行的機器。默認情況下,Nmap只對正在運行的主機進行高強度的探測,如端口掃描、版本探測或者操作系統探測用-P0禁止主機發現會讓Nmap對每一個指定的目標IP地址進行所要求的掃描,這可以穿透防火墻,也可以避免被防火墻發現。需要注意的是,-P0的第二個字符是數字0而不是字母o。
注意:無Ping掃描可以躲避某些防火墻的防護,可以在目標主機禁止Ping的情況下采用。
格式為:“nmap -P0 【協議1,協議2】【目標】”
| 協議2 | IGMP協議 |
| 協議6 | TCP協議 |
| 協議17 | UDP協議 |
如果沒有指定任何協議,Nmap會默認使用協議1,協議2進行掃描
如:nmap -P0 192.168.126.129
若想知道這些協議是如何判斷目標主機是否存活可以使用 --packet-trace選項
如:nmap -P0 --packet-trace scanme.nmap.org
指定TCP,UDP,IGMP協議向目標主機發送包并判斷目標主機是否在線
如:nmap -P0 6,17,2 --packet-trace scanme.nmap.org
TCP SYN Ping掃描
| -PS(即Ping SYN縮寫) | TCP SYN Ping掃描 |
TCP協議是面向連接的、可靠的傳輸層協議,允許發送和接收字節流形式的數據,為了讓服務器和客戶端以不同的速度產生和消費數據,TCP提供了發送和接收兩個緩沖區。TCP提供全雙工服務,數據同時能雙向流動。通信的每一方都有發送和接收兩個緩沖區,可以雙向發送數據。TCP在報文里加上一個遞進的確認序列號來告訴發送者,接收者期望收到的下一個字節,如果在規定時間內,沒有收到關于這個包的確認響應,則重新發送此包,這保證了TCP為一種可靠的傳輸層協議。
-PS選項發送一個設置了SYN標志位的空TCP報文。默認目的端口為80(可以通過改變nmap.h)文件里的DEFAULT_TCP_PROBE_PORT值進行配置,但不同的端口也可以作為選項指定,甚至可以指定一個以逗號分隔的端口列表(如_PS22,23,25,80,115,3306,3389),在這種情況下,每個端口會并發地掃描。
通常情況下,Nmap默認Ping掃描是采用TCP ACK和ICMP Echo請求對目標進行是否存活的響應,當目標主機的防火墻阻止這些請求時,我們可以采用TCP SYN Ping掃描來進行對目標主機存活的判斷。
如:nmap -PS 192.168.126.129
TCP ACK Ping掃描
| -PA(即Ping ACK 縮寫) | TCP ACK Ping掃描 |
使用-PA選項可以進行TCP ACK Png掃描,它與TCP SYN Ping掃描是類似的,唯一的區別是設置TCP的標志位是ACK而不是SYN,使用這類方式掃描可以探測組織SYN包或ICMP Echo請求的主機。
很多防火墻會封鎖SYN報文,所以Nmap提供了TCP SYN Ping掃描與TCP ACK Ping掃描
兩種探測方式,這兩種方式可極大地提高通過防火墻的概率,我們還可同時采用-PS與-SA來既發送SYN又發送ACK。在采用TCP ACK Ping掃描時,Nmap會發送一個ACK標志的TCP包給目標主機,若目標主機不是存活狀態則不響應請求,若目標主機在線則會返回一個RST包。
進行TCP ACK Ping掃描:
如:nmap -PA 192.168.126.129
同時使用-PS與-PA選項:
如:nmap -PA -PS 192.168.126.129
UDP Ping掃描
| -PU (即Ping UDP縮寫) | UDP Ping掃描 |
-PU選項是發送一個空的UDP報文到指定端口。若不指定端口則默認為40125.該默認值可以通過在編譯時改變nmap.h文件里的DEFAULT-UDP-PROBE-PORT值進行配置。默認采用這樣一個奇怪的端口是因為對于開放端口,很少會使用這樣的掃描方式。
采用UDP Ping掃描時Nmap會發送一個空的UDP包到目標主機,若目標主機響應則返回一個ICMP端口不可達錯誤,若目標主機不是存活狀態則會返回不同的ICMP錯誤信息。
如:nmap -PU 192.168.126.129
ICMP Ping Types掃描
| -PE(即ICMP Echo縮寫) | 向目標發送ICMP Echo數據包 |
| -PP(即ICMP Ping縮寫) | ICMP時間戳Ping掃描 |
| -PM(即ICMP Mask縮寫) | ICMP地址掩碼Ping掃描 |
使用-PE;-PP;-PM選項可以進行ICMP Ping Types掃描。ICMP(Internet Control Message Protocol)是Internet控制報文協議。它是TCP/IP協議的一個子協議,用于在IP主機、路由器之間傳遞控制信息。控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡本身的消息。這些控制消息雖然并不傳輸用戶數據,但是對于用戶數據的傳遞起著重要的作用。
Nmap發送一個ICMP type8(回聲請求)報文到目標IP地址,從運行的主機得到一個type0(回聲響應)報文。
-PE選項簡單地來說是通過向目標發送ICMP Echo數據包來探測目標主機是否在線,正因為許多主機的防火墻會禁止這些報文,所以僅僅ICMP掃描對于互聯網上的目標通常是不夠的。但對于系統管理員監視一個內部網絡,它們可能是實際有效的途徑。使用選項打開該回聲請求功能。
-PP選項是ICMP時間戳Ping掃描,雖然大多數的防火墻配置不允許ICMP Echo請求,但由于配置不當可能回復ICMP時間戳請求,所以可以使用ICMP時間戳來確定目標主機是否存活。
-PM選項可以進行ICMP地址掩碼Ping掃描。此掃描方式會試圖用備選的ICMP等級Ping指定主機,通常有不錯的穿透防火墻的效果。
(1)使用ICMP Echo掃描方式
如:nmap -PE 192.168.126.129
(2)使用ICMP時間戳Ping掃描
如:nmap -PP 192.168.126.129
(3)使用ICMP地址掩碼Ping 掃描
如:nmap -PM 192.168.126.129
ARP Ping掃描
| -PR (即Ping ARP縮寫) | ARP Ping掃描 |
-PR選項通常在掃描局域網時可采用。地址解析協議,即ARP(Address Resolution Protocol),是根據IP地址獲取物理地址的一個TCP/IP協議,其功能是:主機將ARP請求廣播到網絡上的所有主機,并接收返回消息,確定目標IP地址的物理地址,同時將IP地址和硬件地址存入本機ARP緩存內,下次請求時直接查詢ARP緩存。
ARP Ping掃描是Nmap對目標進行一個ARP Ping的過程,尤其在內網的情況下,采用ARP Ping掃描方式是最有效的,在本地局域網內防火墻不會禁止ARP請求,這就導致它比其他Ping掃描都更加高效,在內網里采用ARP Ping是非常有效的。在默認情況下,若Nmap發現目標主機就在它所在的局域網上,會進行ARP掃描。即使指定了不同的Ping類型(如-PI或者-PS),Nmap也會對任何相同局域網上的目標機使用ARP。若不想用ARP 掃描,可以指定–send-ip。
如:nmap -PR 192.168.126.129
列表掃描
| -sL (即scan List縮寫) | 列表掃描 |
列表掃描是主機發現的退化形式,它僅僅列出指定網絡上的每臺主機,不發送任何報文到目標主機。默認情況下,Nmap仍然會對主機進行反向域名解析以獲取它們的名字。
如:nmap -sL 192.168.126.129/24
掃描一個IPv6地址
| -6(即IPv6縮寫) | 掃描IPv6地址 |
IPv6是Internet Protocol Version 6 的縮寫,是IPv4的下一代IP協議。
Nmap很早就支持IPv6的掃描,在Nmap選項后加入-6選項就可以對IPv6掃描。
IPv6將會逐漸替換IPv4,但在一段相當長的時間內,IPv4還會大量地存在。若需要掃描IPv6地址,則需要在語句的IPv6目標地址前面加上-6選項。
如:nmap -6 fe80::20c:29ff:;fee0:2e76
路由跟蹤
| –traceroute | 路由跟蹤 |
采用–traceroute選項即可進行路由跟蹤,它可以幫助用戶了解網路偶的同行情況,通過此選項可以輕松地查出從本地計算機到目標之間所經過的網絡節點,并可以看到通過各個節點的時間。
如:nmap --traceroute www.baidu.com
后面內容請見Nmap滲透測試詳解(二)。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Nmap渗透测试详解(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言简单编程题模板,C语言编程题,比较
- 下一篇: 杭州师范大学c语言程序设计机试,2016