安裝nmap
yum install nmap #輸入y安裝
使用nmap
語法
nmap [掃描類型] [掃描參數] [hosts 地址與範圍]
掃描類型
-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 的數據包進行掃描,如果你想知道在某臺主機上提供哪些 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 <IP> 在一些情況下,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() 掃描時,最多使用多少個套接字進行並行的掃描。
示例
nmap localhost #查看主機當前開放的端口
nmap -p 1024-65535 localhost #查看主機端口(1024-65535)中開放的端口
nmap -PS 192.168.21.163 #探測目標主機開放的端口
nmap -PS22,80,3306 192.168.21.163 #探測所列出的目標主機端口
nmap -O 192.168.21.163 #探測目標主機操作系統類型
nmap -A 192.168.21.163 #探測目標主機操作系統類型
nmap --help #更多nmap參數請查詢幫助信息
關閉或者打開主機端口
1、nmap localhost #查看主機當前開放端口
2、ntsysv #打開系統服務器管理器(需要先安裝yum install ntsysv),選擇要關閉或者打開的服務
端口狀態
Open(開放的)意味着目標機器上的應用程序正在該端口監聽連接 / 報文。
filtered(被過濾的) 意味着防火牆,過濾器或者其它網絡障礙阻止了該端口被訪問,Nmap 無法得知 它是 open(開放的) 還是 closed(關閉的)。
closed(關閉的) 端口沒有應用程序在它上面監聽,但是他們隨時可能開放。
unfiltered(未被過濾的)當端口對 Nmap 的探測做出響應,但是 Nmap 無法確定它們是關閉還是開放時
open filtered 開放或者被過濾的
closed filtered 關閉或者被過濾的