從誕生之初,Nmap就一直是網絡發現和攻擊界面測繪的首選工具。從主機發現和端口掃描,到操作系統檢測和IDS規避/欺騙,Nmap是大大小小黑客行動的基本工具。下面就開始介紹一下Namp的用法。
一:簡介
Nmap是一個網絡連接端口掃描軟件,用來掃描網上電腦開放的網絡連接端口。確定哪些服務運行在哪些連接端口,並且推斷計算機運行哪個操作系統,用以評估網絡系統安全。
二:功能
Nmap用於瀏覽網絡,執行安全掃描,網絡審計以及在遠程機器找到開放端口。它可以掃描在線主機,操作系統,濾包器和遠程主機打開的端口。
三:命令用法
1、掃描單一的一個主機:
#nmap cnblogs.com
#nmap 10.1.1.26
2、掃描整個子網,命令如下:
#nmap 10.1.1.26/24
3、掃描多個目標,命令如下:
#nmap 10.1.1.26 10.1.1.27
4、掃描一個範圍內的目標,如下:
#nmap 10.1.1.1-100 (掃描IP地址爲10.1.1.1-10.1.1.100內的所有主機)
5、如果你有一個ip地址列表,將這個保存爲一個txt文件,和namp在同一目錄下,掃描這個txt內的所有主機,命令如下:
#nmap -iL target.txt
6、如果你想看到你掃描的所有主機的列表,用以下命令:
#nmap -sL 10.1.1.1/24
7、掃描除過某一個ip外的所有子網主機,命令:
#nmap 10.1.1.1/24 -exclude 10.1.1.1
8、掃描除過某一個文件中的ip外的子網主機命令
#nmap 10.1.1.1/24 -exclude file xxx.txt (xxx.txt中的文件將會從掃描的主機中排除)
9、掃描特定主機上的80,21,23端口,命令如下
#nmap -p80,21,23 10.1.1.1
四:掃描技術
1、Tcp SYN Scan (sS)
這是一個基本的掃描方式,它被稱爲半開放掃描,因爲這種技術使得Nmap不需要通過完整的握手,就能獲得遠程主機的信息。Nmap發送SYN包到遠程主機,但是它不會產生任何會話.因此不會在目標主機上產生任何日誌記錄,因爲沒有形成會話。這個就是SYN掃描的優勢.
如果Nmap命令中沒有指出掃描類型,默認的就是Tcp SYN.但是它需要root/administrator權限.
#nmap -sS 192.168.1.1
2、Tcp connect() scan(sT)
如果不選擇SYN掃描,TCP connect()掃描就是默認的掃描模式.不同於Tcp SYN掃描,Tcp connect()掃描需要完成三次握手,並且要求調用系統的connect().Tcp connect()掃描技術只適用於找出TCP和UDP端口.
#nmap -sT 192.168.1.1
3、Udp scan(sU)
顧名思義,這種掃描技術用來尋找目標主機打開的UDP端口.它不需要發送任何的SYN包,因爲這種技術是針對UDP端口的。UDP掃描發送UDP數據包到目標主機,並等待響應,如果返回ICMP不可達的錯誤消息,說明端口是關閉的,如果得到正確的適當的迴應,說明端口是開放的.
#nmap -sU 192.168.1.1
4、FIN scan (sF)
有時候Tcp SYN掃描不是最佳的掃描模式,因爲有防火牆的存在.目標主機有時候可能有IDS和IPS系統的存在,防火牆會阻止掉SYN數據包。發送一個設置了FIN標誌的數據包並不需要完成TCP的握手.
root@bt:~# nmap -sF 192.168.1.8
Starting Nmap 5.51 at 2012-07-08 19:21 PKT
Nmap scan report for 192.168.1.8
Host is up (0.000026s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
111/tcp open|filtered rpcbind
FIN掃描也不會在目標主機上創建日誌(FIN掃描的優勢之一).個類型的掃描都是具有差異性的,FIN掃描發送的包只包含FIN標識,NULL掃描不發送數據包上的任何字節,XMAS掃描發送FIN、PSH和URG標識的數據包.
5、PING Scan (sP)
PING掃描不同於其它的掃描方式,因爲它只用於找出主機是否是存在在網絡中的.它不是用來發現是否開放端口的.PING掃描需要ROOT權限,如果用戶沒有ROOT權限,PING掃描將會使用connect()調用.
#nmap -sP 192.168.1.1
6、版本檢測(sV)
版本檢測是用來掃描目標主機和端口上運行的軟件的版本.它不同於其它的掃描技術,它不是用來掃描目標主機上開放的端口,不過它需要從開放的端口獲取信息來判斷軟件的版本.使用版本檢測掃描之前需要先用TCP SYN掃描開放了哪些端口.
#nmap -sV 192.168.1.1
7、Idle scan (sL)
Idle scan是一種先進的掃描技術,它不是用你真實的主機Ip發送數據包,而是使用另外一個目標網絡的主機發送數據包.
#nmap -sL 192.168.1.6 192.168.1.1
Idle scan是一種理想的匿名掃描技術,通過目標網絡中的192.168.1.6向主機192.168.1.1發送數據,來獲取192.168.1.1開放的端口
有需要其它的掃描技術,如 FTP bounce(FTP反彈), fragmentation scan(碎片掃描), IP protocol scan(IP協議掃描),以上討論的是幾種最主要的掃描方式.
8、Nmap的OS檢測(O)
Nmap最重要的特點之一是能夠遠程檢測操作系統和軟件,Nmap的OS檢測技術在滲透測試中用來了解遠程主機的操作系統和軟件是非常有用的,通過獲取的信息你可以知道已知的漏洞。Nmap有一個名爲的nmap-OS-DB數據庫,該數據庫包含超過2600操作系統的信息。 Nmap把TCP和UDP數據包發送到目標機器上,然後檢查結果和數據庫對照。
Initiating SYN Stealth Scan at 10:21
Scanning localhost (www.nxadmin.com) [1000 ports]
Discovered open port 111/tcp on www.nxadmin.com
Completed SYN Stealth Scan at 10:21, 0.08s elapsed (1000 total ports)
Initiating OS detection (try #1) against localhost (www.nxadmin.com)
Retrying OS detection (try #2) against localhost (www.nxadmin.com)
上面的例子清楚地表明,Nmap的首次發現開放的端口,然後發送數據包發現遠程操作系統。操作系統檢測參數是O(大寫O)
如果遠程主機有防火牆,IDS和IPS系統,你可以使用-PN命令來確保不ping遠程主機,因爲有時候防火牆會組織掉ping請求.-PN命令告訴Nmap不用ping遠程主機。
# nmap -O -PN 192.168.1.1/24
9、以上命令告訴發信主機遠程主機是存活在網絡上的,所以沒有必要發送ping請求,使用-PN參數可以繞過PING命令,但是不影響主機的系統的發現.
Nmap的操作系統檢測的基礎是有開放和關閉的端口,如果OS scan無法檢測到至少一個開放或者關閉的端口,會返回以下錯誤:
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
OS Scan的結果是不可靠的,因爲沒有發現至少一個開放或者關閉的端口.
10、想好通過Nmap準確的檢測到遠程操作系統是比較困難的,需要使用到Nmap的猜測功能選項, –osscan-guess 猜測認爲最接近目標的匹配操作系統類型。
# nmap -O –osscan-guess 192.168.1.1
參考博客:https://www.cnblogs.com/hanxiaobei/p/5603491.html