Nmap是一款網絡掃描和主機檢測的很是有用的工具。 Nmap是不侷限於僅僅收集信息和枚舉,同時能夠用來做爲一個漏洞探測器或安全掃描器。它能夠適用於winodws,linux,mac等操做系統。Nmap是一款很是強大的實用工具,可用於: 檢測活在網絡上的主機(主機發現) 檢測主機上開放的端口(端口發現或枚舉) 檢測到相應的端口(服務發現)的軟件和版本 檢測操做系統,硬件地址,以及軟件版本 檢測脆弱性的漏洞(Nmap的腳本) Nmap是一個很是廣泛的工具,它有命令行界面和圖形用戶界面。本人包括如下方面的內容: 介紹Nmap 掃描中的重要參數 操做系統檢測 Nmap使用教程 Nmap使用不一樣的技術來執行掃描,包括:TCP的connect()掃描,TCP反向的ident掃描,FTP反彈掃描等。全部這些掃描的類型有本身的優勢和缺點,咱們接下來將討論這些問題。 Nmap的使用取決於目標主機,由於有一個簡單的(基本)掃描和預先掃描之間的差別。咱們須要使用一些先進的技術來繞過防火牆和入侵檢測/防護系統,以得到正確的結果。下面是一些基本的命令和它們的用法的例子: 掃描單一的一個主機,命令以下: #nmap cnblogs.com #nmap 192.168.1.2 掃描整個子網,命令以下: #nmap 192.168.1.1/24 掃描多個目標,命令以下: #nmap 192.168.1.2 192.168.1.5 掃描一個範圍內的目標,以下: #nmap 192.168.1.1-100 (掃描IP地址爲192.168.1.1-192.168.1.100內的全部主機) 若是你有一個ip地址列表,將這個保存爲一個txt文件,和namp在同一目錄下,掃描這個txt內的全部主機,命令以下: #nmap -iL target.txt 若是你想看到你掃描的全部主機的列表,用如下命令: #nmap -sL 192.168.1.1/24 掃描除過某一個ip外的全部子網主機,命令: #nmap 192.168.1.1/24 -exclude 192.168.1.1 掃描除過某一個文件中的ip外的子網主機命令 #nmap 192.168.1.1/24 -exclude file xxx.txt (xxx.txt中的文件將會從掃描的主機中排除) 掃描特定主機上的80,21,23端口,命令以下 #nmap -p80,21,23 192.168.1.1
Tcp SYN Scan (sS)html
這是一個基本的掃描方式,它被稱爲半開放掃描,由於這種技術使得Nmap不須要經過完整的握手,就能得到遠程主機的信息。Nmap發送SYN包到遠程主機,可是它不會產生任何會話.所以不會在目標主機上產生任何日誌記錄,由於沒有造成會話。這個就是SYN掃描的優點.linux
若是Nmap命令中沒有指出掃描類型,默認的就是Tcp SYN.可是它須要root/administrator權限.數據庫
#nmap -sS 192.168.1.1安全
Tcp connect() scan(sT)網絡
若是不選擇SYN掃描,TCP connect()掃描就是默認的掃描模式.不一樣於Tcp SYN掃描,Tcp connect()掃描須要完成三次握手,而且要求調用系統的connect().Tcp connect()掃描技術只適用於找出TCP和UDP端口.tcp
#nmap -sT 192.168.1.1ide
Udp scan(sU)工具
顧名思義,這種掃描技術用來尋找目標主機打開的UDP端口.它不須要發送任何的SYN包,由於這種技術是針對UDP端口的。UDP掃描發送UDP數據包到目標主機,並等待響應,若是返回ICMP不可達的錯誤消息,說明端口是關閉的,若是獲得正確的適當的迴應,說明端口是開放的.測試
#nmap -sU 192.168.1.1spa
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標識的數據包.
PING Scan (sP)
PING掃描不一樣於其它的掃描方式,由於它只用於找出主機是不是存在在網絡中的.它不是用來發現是否開放端口的.PING掃描須要ROOT權限,若是用戶沒有ROOT權限,PING掃描將會使用connect()調用.
#nmap -sP 192.168.1.1
版本檢測(sV)
版本檢測是用來掃描目標主機和端口上運行的軟件的版本.它不一樣於其它的掃描技術,它不是用來掃描目標主機上開放的端口,不過它須要從開放的端口獲取信息來判斷軟件的版本.使用版本檢測掃描以前須要先用TCP SYN掃描開放了哪些端口.
#nmap -sV 192.168.1.1
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協議掃描),以上討論的是幾種最主要的掃描方式.
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)
Nmap的操做系統指紋識別技術:
設備類型(路由器,工做組等)
運行(運行的操做系統)
操做系統的詳細信息(操做系統的名稱和版本)
網絡距離(目標和攻擊者之間的距離跳)
若是遠程主機有防火牆,IDS和IPS系統,你可使用-PN命令來確保不ping遠程主機,由於有時候防火牆會組織掉ping請求.-PN命令告訴Nmap不用ping遠程主機。
# nmap -O -PN 192.168.1.1/24
以上命令告訴發信主機遠程主機是存活在網絡上的,因此沒有必要發送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的結果是不可靠的,由於沒有發現至少一個開放或者關閉的端口.
這種狀況是很是不理想的,應該是遠程主機作了針對操做系統檢測的防範。若是Nmap不能檢測到遠程操做系統類型,那麼就沒有必要使用-osscan_limit檢測。
想好經過Nmap準確的檢測到遠程操做系統是比較困難的,須要使用到Nmap的猜想功能選項, –osscan-guess 猜想認爲最接近目標的匹配操做系統類型。
# nmap -O –osscan-guess 192.168.1.1
總結
Nmap是一個很是強大的工具,它具備覆蓋滲透測試的第一方面的能力,其中包括信息的收集和統計。
相關資料:https://www.cnblogs.com/hanxiaobei/p/5603491.html