nmap 掃描器

nmap

掃描器是一種能夠自動檢測主機安全性弱點的程序。掃描器通過發送特定的網絡數據包,記錄目標主機的應答消息,從而收集關於目標主機的各種信息。目前網絡上有很多掃描軟件,比較著名的掃描器有SSS,X-Scan,Superscan等,功能最強大的當然是Nmap了。

Nmap(Network Mapper)是一款開放源代碼的網絡探測和安全審覈工具。它用於快速掃描一個網絡和一臺主機開放的端口,還能使用TCP/IP協議棧特徵探測遠程主機的操作系統類型。nmap支持很多掃描技術,例如:UDP、TCP connect()、TCP SYN(半開掃描)、ftp代理(bounce攻擊)、反向標誌、ICMP、FIN、ACK掃描、聖誕樹(Xmas Tree)、SYN掃描和null掃描。Nmap最初是用於unix系統的命令行應用程序。在2000年的時候,這個應用程序有了windows版本,可以直接安裝使用。

  • 掃描類型
參數 解析
-sT TCP connect()掃描,這是最基本的TCP掃描方式。這種掃描很容易被檢測到,在目標主機的日誌中會記錄大批的連接請求以及錯誤信息。
-sS TCP同步掃描(TCP SYN),因爲不必全部打開一個TCP連接,所以這項技術通常稱爲半開掃描(half-open)。這項技術最大的好處是,很少有系統能夠把這記入系統日誌。不過,你需要root權限來定製SYN數據包。
-sF,-sX,-sN 祕密FIN數據包掃描、聖誕樹(Xmas Tree)、空(Null)掃描模式。這些掃描方式的理論依據是:關閉的端口需要對你的探測包迴應RST包,而打開的端口必需忽略有問題的包(參考RFC 793第64頁)。
-sP ping掃描,用ping方式檢查網絡上哪些主機正在運行。當主機阻塞ICMP echo請求包是ping掃描是無效的。nmap在任何情況下都會進行ping掃描,只有目標主機處於運行狀態,纔會進行後續的掃描。
-sU 如果你想知道在某臺主機上提供哪些UDP(用戶數據報協議,RFC768)服務,可以使用此選項。
-sA ACK掃描,這項高級的掃描方法通常可以用來穿過防火牆。
-sW 滑動窗口掃描,非常類似於ACK的掃描。
-sR RPC掃描,和其它不同的端口掃描方法結合使用。
-b FTP反彈攻擊(bounce attack),連接到防火牆後面的一臺FTP服務器做代理,接着進行端口掃描。
  • 通用選項
參數 解析
-P0 在掃描之前,不ping主機。
-PT 掃描之前,使用TCP ping確定哪些主機正在運行。
-PS 對於root用戶,這個選項讓nmap使用SYN包而不是ACK包來對目標主機進行掃描。
-PI 設置這個選項,讓nmap使用真正的ping(ICMP echo請求)來掃描目標主機是否正在運行。
-PB 這是默認的ping掃描選項。它使用ACK(-PT)和ICMP(-PI)兩種掃描類型並行掃描。如果防火牆能夠過濾其中一種包,使用這種方法,你就能夠穿過防火牆。
-O 這個選項激活對TCP/IP指紋特徵(fingerprinting)的掃描,獲得遠程主機的標誌,也就是操作系統類型。
-I 打開nmap的反向標誌掃描功能。
-f 使用碎片IP數據包發送SYN、FIN、XMAS、NULL。包增加包過濾、入侵檢測系統的難度,使其無法知道你的企圖。
-v 冗餘模式。強烈推薦使用這個選項,它會給出掃描過程中的詳細信息。
-S 在一些情況下,nmap可能無法確定你的源地址(nmap會告訴你)。在這種情況使用這個選項給出你的IP地址。
-g port 設置掃描的源端口。一些天真的防火牆和包過濾器的規則集允許源端口爲DNS(53)或者FTP-DATA(20)的包通過和實現連接。顯然,如果攻擊者把源端口修改爲20或者53,就可以摧毀防火牆的防護。
-oN 把掃描結果重定向到一個可讀的文件logfilename中。
-oS 掃描結果輸出到標準輸出。
--host_timeout 設置掃描一臺主機的時間,以毫秒爲單位。默認的情況下,沒有超時限制。
--max_rtt_timeout 設置對每次探測的等待時間,以毫秒爲單位。如果超過這個時間限制就重傳或者超時。默認值是大約9000毫秒。
--min_rtt_timeout 設置nmap對每次探測至少等待你指定的時間,以毫秒爲單位。
-M count 置進行TCP connect()掃描時,最多使用多少個套接字進行並行的掃描。
  • 掃描目標
目標地址 可以爲IP地址,CIRD地址等。如192.168.1.2,222.247.54.5/24
-iL filename 從filename文件中讀取掃描的目標。
-iR 讓nmap自己隨機挑選主機進行掃描。
-p 端口 這個選項讓你選擇要進行掃描的端口號的範圍。如:-p 20-30,139,60000。
-exclude 排除指定主機。
-excludefile 排除指定文件中的主機。
nmap -sP 192.168.1.0/24       #進行ping掃描,打印出對掃描做出響應的主機,不做進一步測試(如端口掃描或者操作系統探測)
nmap -sL 192.168.1.0/24       #僅列出指定網絡上的每臺主機,不發送任何報文到目標主機
nmap -PS 192.168.1.234		#探測目標主機開放的端口,可以指定一個以逗號分隔的端口列表(如-PS22,23,25,80)
nmap -PU 192.168.1.0/24		#使用UDP ping探測主機
nmap -sS 192.168.1.0/24		#使用頻率最高的掃描選項:SYN掃描,又稱爲半開放掃描,它不打開一個完全的TCP連接,執行得很快
nmap -sT 192.168.1.0/24		#當SYN掃描不能用時,TCP Connect()掃描就是默認的TCP掃描
nmap -sU 192.168.1.0/24		#UDP掃描用-sU選項,UDP掃描發送空的(沒有數據)UDP報頭到每個目標端口
nmap -sO 192.168.1.19			#確定目標機支持哪些IP協議 (TCP,ICMP,IGMP等)
nmap -O 192.168.1.19			#探測目標主機的操作系統
nmap -A 192.168.1.19			#探測目標主機的操作系統
nmap -v scanme.nmap.org		#這個選項掃描主機scanme.nmap.org中 所有的保留TCP端口。選項-v啓用細節模式。
nmap -sS -O scanme.nmap.org/24  	#進行祕密SYN掃描,對象爲主機Saznme所在的“C類”網段 的255臺主機。同時嘗試確定每臺工作主機的操作系統類型。因爲進行SYN掃描 和操作系統檢測,這個掃描需要有根權限。
nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127      #進行主機列舉和TCP掃描,對象爲B類188.116網段中255個8位子網。這 個測試用於確定系統是否運行了sshd、DNS、imapd或4564端口。如果這些端口 打開,將使用版本檢測來確定哪種應用在運行。
nmap -v -iR 100000 -P0 -p 80		#隨機選擇100000臺主機掃描是否運行Web服務器(80端口)。由起始階段 發送探測報文來確定主機是否工作非常浪費時間,而且只需探測主機的一個端口,因 此使用-P0禁止對主機列表。
nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20		#掃描4096個IP地址,查找Web服務器(不ping),將結果以Grep和XML格式保存。
host -l company.com | cut -d -f 4 | nmap -v -iL -			#進行DNS區域傳輸,以發現company.com中的主機,然後將IP地址提供給 Nmap。上述命令用於GNU/Linux -- 其它系統進行區域傳輸時有不同的命令
nmap  -p 1-1024 127.0.0.1 #掃描本機端口
nmap -p 1-1024 www.baidu.com 掃描百度的1-1024端口有哪些開啓了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章