NMap,也就是Network
Mapper,是網絡掃描和嗅探東西包。nmap是一個網絡毗連端掃描軟件,用來掃描網上電腦開放的網絡毗連端。確定哪些處事運行在哪些毗連端,而且揣度計較機運行哪個操縱系統(這是亦稱
fingerprinting)。
其根基成果有三個,一是探測一組主機是否在線;其次是掃描
主機端口,嗅探所提供的網絡處事;還可以揣度主機所用的操縱系統。Nmap可用于掃描僅有兩個節點的LAN,直至500個節點以上的網絡。Nmap
還答允用戶定制掃描能力。凡是,一個簡樸的利用ICMP協議的ping操縱可以滿意一般需求;也可以深入探測UDP可能TCP端口,直至主機所
利用的操縱系統;還可以將所有探測功效記錄到各類名目標日志中, 供進一步闡明操縱。
二、語法
nmap [Scan Type(s)] [Options]
三、成果選項
成果選項可以組合利用。一些成果選項只可以或許在某種掃描模式下利用。nmap會自動識別無效可能不支持的成果選項組合,并向用戶發出告誡信息。3.1掃描范例
-sT
TCP
connect()掃描:這是最根基的TCP掃描方法。connect()是一種系統挪用(socket
TCP函數),由操縱系統提供,用來打開一個毗連。假如方針端口有措施監聽,connect()就會樂成返回,不然這個端口是不行達的。這項技能最大的利益是,你勿需root權限。任何UNIX用戶都可以自由利用這個系統挪用。這種掃描很容易被檢測到,在方針主機的日志中會記錄大批的毗連請求以及錯誤信息。
-sS
TCP同步掃描(TCP
SYN):因為不必全部打開一個TCP毗連,所以這項技能凡是稱為半開掃描(half-open)。你可以發出一個TCP同步包(SYN),然后期待回應。假如對方返回SYN|ACK(響應)包就暗示方針端口正在監聽;假如返回RST數據包,就暗示方針端口沒有監聽措施;假如收到一個SYN|ACK包,源主機就會頓時發出一個RST(復位)數據包斷開和方針主機的毗連,這實際上有我們的操縱系統內核自動完成的。這項技能最大的長處是,很少有系統可以或許把這記入系統日志。不外,你需要root權限來定制SYN數據包。
-sF -sX -sN
奧秘FIN數據包掃描、圣誕樹(Xmas
Tree)、空(Null)掃描模式:縱然SYN掃描都無法確定的環境下利用。一些防火墻和包過濾軟件可以或許對發送到被限制端口的SYN數據包舉辦監督,并且有些措施好比synlogger和courtney可以或許檢測那些掃描。這些高級的掃描方法可以逃過這些滋擾。
這些掃描方法的理論依據是:封鎖的端口需要對你的探測包回應RST包,而打開的端口必須忽略有問題的包(參考RFC
793第64頁)。FIN掃描利用袒露的FIN數據包來探測,而圣誕樹掃描打開數據包的FIN、URG和PUSH符號。不幸的是,微軟抉擇完全忽略這個尺度,重新積極別辟派別。所以這種掃描方法對Windows95/NT無效。不外,從別的的角度講,可以利用這種方法來別離兩種差異的平臺。假如利用這種掃描方法可以發明打開的端口,你就可以確定方針留意運行的不是Windows系統。假如利用-sF、-sX可能-sN掃描顯示所有的端口都是封鎖的,而利用SYN掃描顯示有打開的端口,你可以確定方針主機大概運行的是Windwos系統。此刻這種方法沒有什么太大的用處,因為nmap有內嵌的操縱系統檢測成果。尚有其它幾個系統利用和windows同樣的處理懲罰方法,包羅Cisco、BSDI、HP/UX、MYS、IRIX。在應該丟棄數據包時,以上這些系統城市從打開的端口發出復位數據包。
-sP
ping掃描:有時你只是想知道此時網絡上哪些主機正在運行。通過向你指定的網絡內的每個IP地點發送ICMP
echo請求數據包,nmap就可以完成這項任務。假如主機正在運行就會作出響應。不幸的是,香港站群服務器
美國服務器,一些站點譬喻:microsoft.com阻塞ICMP
echo請求數據包。然而,在默認的環境下nmap也可以或許向80端口發送TCP
ack包,假如你收到一個RST包,就暗示主機正在運行。nmap利用的第三種技能是:發送一個SYN包,然后期待一個RST可能SYN/ACK包。對付非root用戶,nmap利用connect()要領。
在默認的環境下(root用戶),nmap并行利用ICMP和ACK技能。
留意,nmap在任何環境下城市舉辦ping掃描,只有方針主機處于運行狀態,才會舉辦后續的掃描。假如你只是想知道方針主機是否運行,而不想舉辦其它掃描,才會用到這個選項。
-sU
UDP掃描:假如你想知道在某臺主機上提供哪些UDP(用戶數據報協議,RFC768)處事,可以利用這種掃描要領。nmap首先向方針主機的每個端口發出一個0字節的UDP包,假如我們收到端口不行達的ICMP動靜,端口就是封鎖的,不然我們就假設它是打開的。