滲透測試--Nmap主機識別


通過本篇博客可以學到:Nmap的安裝和使用,列舉遠程機器服務端口,識別目標機器上的服務,指紋,發現局域網中存活主機,端口探測技巧,NSE腳本使用,使用特定網卡進行檢測,對比掃描結果ndiff,可視化Nmap的使用等。


Nmap簡介

Nmap:開源、免費的網絡探測、安全審計工具

nmap 安裝在電腦后,電腦可以通過nmap 將數據包傳遞到相關的網絡設備,服務器接收到數據包后會返回一些信息,Nmap可以對這些信息進行分析。(通過nmap探測服務器存活以及開放的服務,對目標進行安全審計)。

Nmap原理:首先判斷nmap輸入的命令行中是否包含域名,如果包含域名需要用DNS服務器進行域名解析。然后發送ICMP Echo Request 來探測主機的存活性。Nmap根據返回的數據包來探測機器信息。

Nmap scanme.namp.org

Nmap參數和意義

-sT:TCP connect掃描,類似於的Metasploit中的tcp掃描模塊
-sS:TCP SYN掃描,類似於Metasploit中的syn掃描模塊,這種掃描方式不等待打開一天完全的TCP鏈接,所以速度的會更快,而且這種方式不會被IDS(入侵檢測系統)等設備記錄。
-sF/-sX/-sN:這些掃描通過發送一些特殊的標志位以避開設備或軟件的檢測
-sP:通過發送ICMP echo請求探測主機是否存活,原理同ping
-sU:探測目標主機開發了哪些UDP端口
-sA:TCP ACK掃描,類似於metasploit中的acK掃描模塊
-Pn:在掃描之前,不發送ICMP echo請求測試目標是否活躍。如果是在Internet環境,應該使用-Pn選項,不要使用ICMP ping,因為ICMP數據包通常無法穿透Internet上的網絡邊界
-O:啟用對於TCP/IP的協議棧指紋特征掃描以獲取遠程主機的操作系統類型等信息 -F :快速掃描的模式 -p<端口范圍>:可以用這個參數指定希望掃描的端口

例如:nmap scanme.nmap.org

nmap進行探測之前要把域名通過DNS服務器解析為IP地址,我們也可以使用指定的DNS服務器來進行解析。使用--dns-servers參數來指定

nmap --dns-servers 8.8.8.8 baidu.com

注意點:對於主機存活或者防火牆開啟的機器,可以使用-Pn參數來停止探測之前的ICMP請求,以達到不觸發防火牆的安全機制。

對於默認的端口范圍,並不能滿足日常工作需要。可以使用-p,m-n來指定探測端口范圍為m-n之間的所有端口

nmap -p <端口>  <IP地址/域名>
namp -p 1-1000 nuistshare.cn

可以看到不需要的端口可以不掃描,並且知道了掃描了的1-1000端口內開放的端口、狀態與服務。

Nmap有多種端口狀態

imgOpen:表示端口處於開放狀態

imgClosed:表示端口處於關閉狀態

imgFiltered:表示端口處於過濾無法收到返回的probe狀態

imgunfiltered:表示端口收到返回的probe,但是無法確認

imgOpen/Unfiltered:表示端口處於開放或者是未過濾狀態

imgClosed/filtered:表示端口處於關閉或者是過濾狀態


服務指紋

為了確保有一個成功的滲透測試或網絡設備監控,必須知道目標系統中服務的指紋信息。服務指紋包括服務端口,服務名和版本等。

通過分析往Nmap發送的數據包的某些協議標記、選項和數據,我們推斷發送這些數據的包的操作系統。

nmap通過向目標主機發送多個UDP與TCP數據包並分析其相應來進行操作系統識別

nmap -sV IP //地址來識別目標主機的服務信息

可以說明tcp三次握手已經完成,但是並沒有和目標主機建立連接。

這表明這些服務是可以提供的,但是我們並不在訪問主機的名單之中,而有大量的端口為tcpwrpped,說明服務器采用了負載均衡或者防火牆。


nmap侵略性探測

nmap -A -v -T4 IP地址
//-A :使用侵略性的策略探測
//-v :持續輸出,返回解析不用按回車
//-T(1-5):掃描速度
nmap -A -v -T5 182.92.58.95 //注意此處只能是IP地址而能是域名

使用此方法,我們可以得到之前沒有得到的信息

 

nmap -sC -SV -o
-sC表示使用Nmap腳本進行探測,sV表示探測目標機器上的服務信息,表示探測目標機器上的操作系統信息
-O表示啟用對於TCP/IP的協議棧指紋特征掃描以獲取遠程主機的操作系統類型等信息

一個局域網中肯定連接着多個IP,可以使用ping命令去測試一下

CIDR(無類別域間路由)

nmap -sP CIDR :對該網絡中所有主機經了ping掃描,以探測主機的存活行,掃描過程中使用了,TCP/SYN掃描掃描,ICMP echo Request
來探測主機存活
nmap -sn CIDR :對該網絡中所有主機進行了掃描,不進行端口掃描,直接掃描存活性
nmap -Pn CIDR :對所有端口進行掃描

Nmap結果輸出

nmap -p 80,445 -v baidu.com -oX test.xml

  掃描結果將輸入到test.xml中去

Nmap端口掃描技巧

實際場景:

在實際環境中,當系統管理員對設備進行管理時,或者滲透測試人員對設備進行檢測的時候,並不是一定對所有的服務進行操作,極有可能是對某個活某個范圍內的服務進行檢測。

如果對所有服務進行探測,那么就會出現耗時長,費力不討好的情況。針對這樣的情況,我們很有必要了解使用Nmap來更加靈活的進行服務探測,避免全端口探測對服務器造成壓力。

//針對某一個端口進行檢測
namp -p 80 baidu.com
//針對某幾個端口進行檢測
nmap -p 80,445 baidu.com
//針對某個范圍端口進行檢測
nmap -p1--100 baidu.com
//針對所有端口進行檢測
nmap -p baidu.com
//通過協議名來掃描端口
nmap -p smtp baidu.com

Nmap NSE腳本的使用

NSE:nmap script engine,nmap腳本引擎,內置很多可以用來掃描的,用來針對特定任務的腳本,通過nse可以不斷擴展nmap的掃描策略,加強namp的功能。

Nmap中使用 --script 參數來指定調用的腳本,並且腳本存儲再nmap 安裝路徑下的script文件夾下,對於kali linux存儲在/usr/share/namp/script下

//使用Nmap 探測web服務的title信息 
nmap --script http-title Ip
nmap --script http-headers IP

 

Nmap分類使用:

對於目標使用多個分類腳本進行檢測,可以更快的找到目標的信息和弱點。

使用nmap中的漏洞分類腳本來對目標進行檢測,使用命令如下:

nmap -sV --script vuln 目標

通過這個可以得到目標的漏洞

如果想要發現分版本信息分類進行探測,可以使用命令如下

nmap -sV --script="version,discovery"

使用nmap除了exploit(溢出)分類之外的其他分類進行探測,使用命令如下

namp -sV --script="not exploit" <目標>

使用http*(探測Http服務的腳本)

nmap -sV --script "(http*) and not (http-slowors and http-brute)"

NSE調試功能的使用

nmap -sV --script exploit -d 3 --script-trace 目標

-d(debug 范圍0-9)

NSE 參數的使用

nmap -sV --script http-title --script-args http.useragent="Mozilla 999" <target>

NSE 更新

nmap --script-updatedb

使用特定網卡進行掃描

 首先查看網卡:

nmap -e etho0 192.168.206.131

Nmap 對某個網絡進去探測的時候,有可能之前有探測過的結果,現在探測過后,需要對比之前和現在的結果進行對比,來找到兩次不同點。

監視網絡變化,達到網絡監控的目的。

在Nmap整個工程中,除了主要的nmap工具之外,還包括很多其他工具,比如ndiff

ndiff -h    //查看nidff 幫助信息
ndiff File1 File2    //對比兩次結果

Nmap 查看網卡列表

nmap -iflist
nmap -e 192.168.206.131

 

 

------------恢復內容結束------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM