Nmap参数--探索网络
Nmap參數--探索網絡
- Nmap端口狀態
- 掃描速度設置
- 常用掃描
- TCP SYN掃描
- TCP ACK掃描
- TCP連接掃描
- 自定義TCP掃描
- UDP 掃描
- 隱蔽掃描
- 空閑掃描
- IP協議掃描
Nmap端口狀態
- Open: Open狀態說明Nmap確定該端口是開放的
- Close: Close狀態通常可以表明該端口是關閉的,但也有可能是防火墻識別了非法掃描而特地返回一個Close信號。但概率比較小。如果單純的過濾并不會出現這個狀態。
- Filtered: Filtered狀態一般來說是被防火墻屏蔽了,所以Nmap無法判斷該端口是否開放。但是同樣有可能是類似網絡擁堵,所以可以嘗試換個時段再試。
- Unfiltered: 當使用ACK掃描時會出現的狀態,也就是說這個端口并沒有被防火墻過濾,即該端口可以訪問,但是并不能確定該端口是否開放,涉及到的TCP知識在這不展開,有興趣可以自己Google一下。
- Open|Filtered: 該端口是開放的,但是的確被防火墻過濾了。若出現這種狀態,可以試著換一種掃描方式。
- Closed|Filtered: 無法確定端口是被過濾了還是端口是關閉的。出現在IPID Idle掃描
掃描速度設置
顧名思義,指定掃描的速度來達到某些目的.
指令:
- nmap T0 [target] 非常慢的掃描,用于IDS(入侵檢測系統)逃避
- nmap T1 [target] 緩慢的掃描,介于0和2之間的速度,同樣可以躲開某些IDS
- nmap T2 [target] 降低掃描速度,通常不用
- nmap T3 [target] 默認掃描速度
- nmap T4 [target] 快速掃描,可能會淹沒目標,如果有防火墻很可能會觸發
- nmap T5 [target] 極速掃描,犧牲了準確度來換取速度.
常用掃描
指令:
- nmap -p [port]|(1-9999) [target] 指定端口號(或端口號范圍)掃描
- nmap -F [target] 快速掃描默認端口,默認端口存在nmap-services中
- nmap -r 順序掃描(默認下nmap隨機掃描端口號)
- nmap --top-ports (n) 掃描出現概率最高的前n個端口
TCP SYN掃描
這個掃描方式很常用,它又被成為半開放掃描,速度非常快,同時不容易被防火墻所發現。因為它并不會進行TCP連接,而是發送一個SYN TCP請求,如果收到RST說明無法連接,如果收到了SYN/ACK說明主機存活,此時nmap不會嘗試完成完整的三次握手,而是直接發送RST中斷連接。
指令: nmap -sS [target]
TCP ACK掃描
和TCP SYN類似,發送一個ACK TCP請求,但是無法判斷端口是否開放,因為無論開放與否主機都會回復一個RST響應。但是如果不響應或者響應ICMP錯誤的端口則被認為是Filtered。
指令: nmap -sA [target]
TCP連接掃描
最基礎穩定的掃描方式,嘗試TCP連接并且完成三次握手。與上面的SYN掃描相比速度會慢一點,并且有可能被防火墻或者系統日志記錄下來。
指令: nmap -sT [target]
自定義TCP掃描
可以通過指定開啟TCP某些標志位來完成自定義的TCP掃描。挖個坑,等我看完TCP/IP回來填。
指令: nmap --scanflags [Symbols] [target]
其中符號可以是URG,ACK,PSH,RST,SYN,FIN的開頭字母組合,順序無關
UDP 掃描
嘗試發送空的UDP報文,如果返回ICMP目標不可達則認為該端口關閉,如果無響應則認定是被過濾,響應了則判斷目標端口是開放狀態。因為UDP掃描會很慢,所以通常通過-p選項來指定端口。
指令: nmap -sU -p [port list] [target]
隱蔽掃描
指令:
- nmap -sN [target] Null掃描,發送非常規的TCP數據包,如果端口關閉則會響應RST,如果開放則不響應信息
- nmap -sF [target] FIN掃描,與SYN掃描類似,將SYN替換為FIN
- nmap -sX [target] 打開數據包的FIN,PSH和URG標志位,根據RFC793規定如果端口開放則響應RST標志包。如果系統不遵守RFC793那么無論開放或者關閉都會響應RST。
空閑掃描
空閑掃描是一個非常有意思的掃描方式,它可以有效的防止你被IDS記錄。下面就展開來說明一下,最后給出一個參考的鏈接。
先說理論基礎:
- 判斷一個TCP端口是否開放其中一種方法就是向該端口發送一個TCP SYN數據包,若端口開放,則會返回一個SYN/ACK包,否則將會返回一個RST包。
- 主機收到SYN/ACK后會返回一個RST包,收到的RST會被忽略
- 互聯網上每個IP數據包都有一個分段身份識別號(IP ID),許多操作系統只是簡單的將識別號遞增,所以分析最后一次IP ID 就可以發現僵尸主機已經發送了多少數據包。
執行過程:
- 首先向僵尸主機發送探測包來記錄IP ID
- 向需要掃描的主機發送一個偽造成僵尸主機IP的SYN包,此時被掃描的主機會向僵尸主機返回信息,若端口開放則會返回一個SYN/ACK,端口關閉會返回RST。
- 再次探測僵尸主機的IP ID,如果增加數等于2那么說明僵尸主機和目標主機之間發生了通信,此時即可推斷出該端口是開放的。如果等于1說明該端口是關閉的,因為只有我們的探測和僵尸主機發生了通信,如果大于2說明在該端口處還存在著其他通信。
這樣做的好處是可以利用IP之間的信任關系來進行探測,譬如數據庫服務只對指定IP發出響應,那么此時我們就可以利用空閑掃描來完成端口的探測。
指令: nmap -sI [zombie ip] [target ip]
參考鏈接
IP協議掃描
這并不是一個端口掃描方式,嚴格來講。因為它并不掃描TCP,UDP端口。而是掃描IP協議號。從而確定對方主機是支持哪些IP協議的。
指令: nmap -sO [target]
轉載于:https://www.cnblogs.com/xinglong/articles/5595435.html
總結
以上是生活随笔為你收集整理的Nmap参数--探索网络的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: asp.net MVC分页
- 下一篇: 公路修建