探測主機存活
(1)-sP :進行ping掃描
(2) -sn: ping探測掃描主機, 不進行端口掃描
(3)-sA 發送ACK探測存活
端口掃描
(1) -sS :半開放掃描
(2) sT:3次握手方式tcp的掃描
(3)sU:udp端口的掃描
(4)sF:也是tcp的掃描一種,發送一個FIN標志的數據包
(5)sW:窗口掃描
(6) sV:版本檢測(sV)
探測主機存活常用方式
(1)-sP :進行ping掃描
打印出對ping掃描做出響應的主機,不做進一步測試(如端口掃描或者操作系統探測):
下面去掃描192.168.4/24這個網段的的主機
nmap -sP 192.168.4/24
(2) -sn:
-sn: Ping Scan - disable port scan #ping探測掃描主機, 不進行端口掃描 (測試過對方主機把icmp包都丟棄掉,依然能檢測到對方開機狀態)
nmap -sn 192.168.4.1-166
(3)-sA
nmap 192.168.4.1 -sA (發送tcp的ack包進行探測,可以探測主機是否存活)
端口掃描的高級用法
(1) -sS :半開放掃描(非3次握手的tcp掃描)
使用頻率最高的掃描選項:SYN掃描,又稱為半開放掃描,它不打開一個完全的TCP連接,執行得很快,效率高(一個完整的tcp連接需要3次握手,而-sS選項不需要3次握手)
Tcp SYN Scan (sS) 它被稱為半開放掃描
優點:Nmap發送SYN包到遠程主機,但是它不會產生任何會話,目標主機幾乎不會把連接記入系統日志。(防止對方判斷為掃描攻擊),掃描速度快,效率高,在工作中使用頻率最高
缺點:它需要root/administrator權限執行
[root@78778e06dc0a /]# nmap -sS 192.168.4.1
Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 11:38 CST
Nmap scan report for 192.168.4.1
Host is up (0.00028s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
873/tcp open rsync
7777/tcp open cbt
8888/tcp open sun-answerbook
MAC Address: 00:0C:29:56:DE:46 (VMware)Nmap done: 1 IP address (1 host up) scanned in 1.31 seconds
(2) sT:3次握手方式tcp的掃描
Tcp connect() scan (sT)和上面的Tcp SYN 對應,TCP connect()掃描就是默認的掃描模式.
不同於Tcp SYN掃描,Tcp connect()掃描需要完成三次握手,並且要求調用系統的connect().
優點:不需root權限。普通用戶也可以使用。
缺點:這種掃描很容易被檢測到,在目標主機的日志中會記錄大批的連接請求以及錯誤信息,由於它要完成3次握手,效率低,速度慢,建議使用-sS
nmap -sT 192.168.4.1等同於 nmap 192.168.4.1
[root@78778e06dc0a /]# nmap -sT 192.168.4.1
Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 11:40 CST
Nmap scan report for 192.168.4.1
Host is up (0.00048s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
873/tcp open rsync
7777/tcp open cbt
8888/tcp open sun-answerbook
MAC Address: 00:0C:29:56:DE:46 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.27 seconds
(3)sU:udp端口的掃描
Udp scan(sU) 顧名思義,這種掃描技術用來尋找目標主機打開的UDP端口.它不需要發送任何的SYN包,因為這種技術是針對UDP端口的。UDP掃描發送UDP數據包到目標主機,並等待響應,
如果返回ICMP不可達的錯誤消息,說明端口是關閉的,如果得到正確的適當的回應,說明端口是開放的.udp端口掃描速度比較慢
nmap -sU 192.168.4.1
(4)sF:也是tcp的掃描一種,發送一個FIN標志的數據包
FIN scan(sF)
有時候TcpSYN掃描不是最佳的掃描模式,因為有防火牆的存在.目標主機有時候可能有IDS和IPS系統的存在,防火牆會阻止掉SYN數據包。發送一個設置了FIN標志的數據包並不需要完成TCP的握手.
和sS掃描效果差不多,比sT速度快
[root@78778e06dc0a /]# nmap -sF 192.168.4.1
Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 11:46 CST
Nmap scan report for 192.168.4.1
Host is up (0.00050s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open|filtered ssh
111/tcp open|filtered rpcbind
873/tcp open|filtered rsync
MAC Address: 00:0C:29:56:DE:46 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 2.59 seconds
-sF、-sX、-sN
秘密FIN數據包掃描、聖誕樹(XmasTree)、空(Null)掃描模式
有的防火牆可能專門阻止-sS掃描。使用這些掃描可以發送特殊標記位的數據包
比如,-sF發送一個設置了FIN標志的數據包
它們和-sS一樣也需要完成TCP的握手.
和sS掃描效果差不多,都比sT速度快
除了探測報文的標志位不同,三種掃描在行為上一致
優勢:能躲過一些無狀態防火牆和報文過濾路由器,比SYN還要隱秘
劣勢:現代的IDS產品可以發現,並非所有的系統嚴格遵循RFC 793
即使SYN掃描都無法確定的情況下使用:一些防火牆和包過濾軟件能夠對發送到被限制端口的SYN數據包進行監視,
而且有些程序比如synlogger和courtney能夠檢測那些掃描。使用-sF、-sX、-sN可以逃過這些干擾。
這些掃描方式的理論依據是:關閉的端口需要對你的探測包回應RST包,而打開的端口必需忽略有問題的包。
FIN掃描使用暴露的FIN數據包來探測,而聖誕樹掃描打開數據包的FIN、URG和PUSH標志。
由於微軟決定完全忽略這個標准,另起爐灶。所以這種掃描方式對Windows無效。
不過,從另外的角度講,可以使用這種方式來分別兩種不同的平台。
如果使用這種掃描方式可以發現打開的端口,你就可以確定目標注意運行的不是Windows系統。
如果使用-sF、-sX或者-sN掃描顯示所有的端口都是關閉的,而使用-sS(SYN)掃描顯示有打開的端口,你可以確定目標主機可能運行的是Windwos系統。
現在這種方式沒有什么太大的用處,因為nmap有內嵌的操作系統檢測功能。還有其它幾個系統使用和windows同樣的處理方式,包括Cisco、BSDI、HP/UX、MYS、IRIX。
在應該拋棄數據包時,以上這些系統都會從打開的端口發出復位數據包。
(5)sW:窗口掃描
Window掃描,即窗口掃描
當然也可以利用Window掃描方式,得出一些端口信息,可以與之前掃描分析的結果相互補充。Window掃描方式只對某些TCPIP協議棧才有效。
它也是基於tcp的掃描,個人感覺用處不大
另外我嘗試使用它對A機器的22端口掃描,發現對方22端口狀態居然是錯誤的。
[root@78778e06dc0a /]# nmap -sW 192.168.4.1 -p22
Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 13:17 CST
Nmap scan report for 192.168.4.1
Host is up (0.0027s latency).
PORT STATE SERVICE
22/tcp closed ssh
MAC Address: 00:0C:29:56:DE:46 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.34 seconds
(6) sV:版本檢測(sV)
版本檢測是用來掃描目標主機和端口上運行的軟件的版本,如下掃描,多出了ssh的版本信息
[root@78778e06dc0a /]# nmap -sV 192.168.4.1
Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-29 13:18 CST
Nmap scan report for 192.168.4.1
Host is up (0.00017s latency).
Not shown: 997 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 5.3 (protocol 2.0)
111/tcp open rpcbind
873/tcp open rsync (protocol version 30)
MAC Address: 00:0C:29:56:DE:46 (VMware)
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.60 seconds
nmap及其少用的
(1)iR Choose random targets,它會隨機找幾個ip或者主機名進行掃描
nmap -iR 2 -Pn -p22
(2)--top-ports <number>: Scan <number> most common ports
#掃描常用的端口,number如果寫成10,那就是掃描最常用的10個端口。比如,ssh,http,ftp等熱門端口
nmap --top-ports 5 192.168.4.1
(3)--port-ratio <ratio>: Scan ports more common than <ratio> #掃描常用端口里,占的比重在0.x 之上的端口
比如ratio=0.2 那么就是常用端口中占的分量超過0.2的端口,比如http的80端口
nmap --port-ratio 0.1 192.168.4.1
4)-sO:探測對方,TCP/IP協議簇中有哪些協議,類型號分別是多少
nmap -sO 192.168.4.1
沒什么用,就是探測對方,TCP/IP協議簇中有哪些協議,類型號分別是多少
icmp即是 1 Internet控制消息
6 傳輸控制 協議
udp即是 17 用戶數據報文
47 通用路由封裝
103 協議獨立多播
(5)--allports
--allports (不為版本探測排除任何端口)經過我的測試,發現對於一些大的端口號,它沒能檢測出來 默認情況下,Nmap版本探測會跳過9100 TCP端口,因為一些打印機簡單地打印送到該端口的任何數據,這回導致數十頁HTTP get請求,二進制SSL會話請求等等被打印出來.這一行為可以通過修改或刪除nmap-service-probes中的Exclude指示符改變,您也可以不理會任何Exclude指示符,指定--allports掃描所有端口
-S:可以偽裝源地址進行掃描。這樣好處在於不會被對方發現自己的真實IP
[root@78778e06dc0a /]# nmap -e eth0 192.168.4.1 -S 192.168.4.10
WARNING: If -S is being used to fake your source address, you may also have to use -e <interface> and -Pn . If you are using it to specify your real source address, you can ignore this warning.
上面提示如果你使用-S偽裝自己源地址進行掃描的話,你必須另外使用-e 指定網卡和-Pn參數才能偽裝
把自己源地址偽裝成192.168.4.10掃描A機器
nmap -e eth0 192.168.4.1 -S 192.168.4.10 -Pn
nmap -iflist:查看本地路由與接口
Nmap中提供了–iflist選項來查看本地主機的接口信息與路由信息。當遇到無法達到目標主機或想選擇從多塊網卡中某一特定網卡訪問目標主機時,可以查看nmap –iflist中提供的網絡接口信息。
和route -n功能一樣
原文: https://www.cnblogs.com/nmap/p/6232969.html