十大黑客工具之一——nmap
端口掃描是指某些別有用心的人發(fā)送一組端口掃描消息,試圖以此侵入某臺計算機,并了解其提供的計算機網絡服務類型(這些網絡服務均與端口號相關),但是端口掃描不但可以為黑客所利用,同時端口掃描還是網絡安全工作者的必備的利器,通過對端口的掃描,了解網站中出現(xiàn)的漏洞以及端口的開放情況,對網站安全方面有著不可或缺的貢獻。
端口的幾種狀態(tài)
掃描對于黑客和安全人員來說,掃描的流程是這樣的:
Nmap,也就是Network Mapper,最早是Linux下的網絡掃描和工具包。nmap是一個網絡連接端掃描軟件,用來掃描網上電腦開放的網絡連接端。確定哪些服務運行在哪些連接端,并且推斷計算機運行哪個操作系統(tǒng)(這是亦稱 fingerprinting)。它是網絡管理員必用的軟件之一,以及用以評估網絡系統(tǒng)安全。
其基本功能有三個,一是探測一組主機是否在線;其次是掃描主機端口,所提供的網絡服務;還可以推斷主機所用的操作系統(tǒng) 。Nmap可用于掃描僅有兩個節(jié)點的LAN,直至500個節(jié)點以上的網絡。Nmap 還允許用戶定制掃描技巧。通常,一個簡單的使用ICMP協(xié)議的ping操作可以滿足一般需求;也可以深入探測UDP或者TCP端口,直至主機所 使用的操作系統(tǒng);還可以將所有探測結果記錄到各種格式的日志中,供進一步分析操作。
Nmap使用TCP/IP協(xié)議棧指紋準確地判斷目標主機的操作系統(tǒng)類型。首先,Nmap通過對目標主機進行端口掃描,找出有哪些端口正在目標主機上監(jiān)聽。當偵測到目標主機上有多于一個開放的TCP端口、一個關閉的TCP端口和一個關閉的UDP端口時,Nmap的探測能力是最好的。Nmap工具的工作原理如表所示。
Nmap對目標主機進行一系列測試。利用得出的測試結果建立相應目標主機的Nmap指紋。最后,將此Nmap指紋與指紋庫中指紋進行查找匹配,從而得出目標主機的操作系統(tǒng)類型。
Nmap常用掃描類型
1. TCP掃描(-sT)
這是一種最為普通的掃描方法,這種掃描方法的特點是:掃描的速度快,準確性高,對操作者沒有權限上的要求,但是容易被防火墻和IDS(防入侵系統(tǒng))發(fā)現(xiàn)
運行的原理:通過建立TCP的三次握手連接來進行信息的傳遞
- Client端發(fā)送SYN;
- Server端返回SYN/ACK,表明端口開放;
- Client端返回ACK,表明連接已建立;
- Client端主動斷開連接。
2. SYN掃描(-sS)
這是一種秘密的掃描方式之一,因為在SYN掃描中Client端和Server端沒有形成3次握手,所以沒有建立一個正常的TCP連接,因此不被防火墻和日志所記錄,一般不會再目標主機上留下任何的痕跡,但是這種掃描是需要root權限(對于windows用戶來說,是沒有root權限這個概念的,root權限是linux的最高權限,對應windows的管理員權限)
運行的原理圖如下:
3. NULL掃描
NULL掃描是一種反向的掃描方法,通過發(fā)送一個沒有任何標志位的數(shù)據(jù)包給服務器,然后等待服務器的返回內容。這種掃描的方法比前面提及的掃描方法要隱蔽很多,但是這種方法的準確度也是較低的, 主要的用途是用來判斷操作系統(tǒng)是否為windows,因為windows不遵守RFC 793標準,不論端口是開啟還是關閉的都返回RST包
但是雖然NULL具有這樣的一些用處,但是本人卻認為不宜使用NULL:
- NULL方法的精確度不高,端口的狀態(tài)返回的不是很準確
- 要獲取目標主機的運行系統(tǒng),可以使用參數(shù)(-O),來獲取對于一些操作系統(tǒng)無法準確判斷的,可以加上參數(shù)(-osscan-guess)
- NULL掃描易被過濾
- FIN掃描
FIN掃描的原理與NULL掃描的原理基本上是一樣的在這里就不重復了。
4. ACK掃描
ACK掃描的原理是發(fā)送一個ACK包給目標主機,不論目標主機的端口是否開啟,都會返回相應的RST包,通過判斷RST包中的TTL來判斷端口是否開啟
運行原理圖:
TTL值小于64端口開啟,大于64端口關閉。
大致上主要的掃描方法就是這些,除了我們可以按照這樣些參數(shù)去執(zhí)行掃描外,還可以自己定義一個TCP掃描包。
5. 自定義TCP掃描包的參數(shù)為(--scanflags)
例如:定制一個包含ACK掃描和SYN掃描的安裝包。
命令:nmap --scanflags ACKSYN nmap.org
好了,接下來還有各種掃描方法的端口列表參數(shù)。
- PS 端口列表用,隔開[tcp80 syn 掃描]-PA 端口列表用,隔開[ack掃描](PS+PA測試狀態(tài)包過濾防火墻【非狀態(tài)的PA可以過】)【默認掃描端口1-1024】-PU 端口列表用,隔開[udp高端口掃描 穿越只過濾tcp的防火墻]
其他的常見命令
輸出命令
- oN 文件名 輸出普通文件
- oX 文件名 輸出xml文件
錯誤調試:
- log-errors 輸出錯誤日志
- packet-trace 獲取從當前主機到目標主機的所有節(jié)點