NMap,也就是Network Mapper,最早是Linux下的網絡掃描和嗅探工具包。
1 安裝
apt-get install nmap
2 使用,查看ip下所有對外的端口
$ sudo nmap -sS ip
Starting Nmap 7.01 ( https://nmap.org ) at 2018-11-16 18:29 CST
Nmap scan report for ip
Host is up (0.038s latency).
Not shown: 997 filtered ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
3389/tcp closed ms-wbt-server
Nmap done: 1 IP address (1 host up) scanned in 31.47 seconds
可以看到 22端口,80端口,3389端口對外開放了。
可以看到狀態是打開還是關閉的。
可以看到對應的服務是什么類型的。
也可以查看具體的端口是否對外開放。
nmap ip -p80
Starting Nmap 7.01 ( https://nmap.org ) at 2018-11-16 18:34 CST
Nmap scan report for ip
Host is up (0.036s latency).
PORT STATE SERVICE
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds
$ nmap ip -p 80
Starting Nmap 7.01 ( https://nmap.org ) at 2018-11-16 18:35 CST
Nmap scan report for ip
Host is up (0.036s latency).
PORT STATE SERVICE
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds
還可以查范圍的。
$ nmap 39.106.106.11 -p 80-4000
Starting Nmap 7.01 ( https://nmap.org ) at 2018-11-16 18:36 CST
Nmap scan report for 39.106.106.11
Host is up (0.038s latency).
Not shown: 3919 filtered ports
PORT STATE SERVICE
80/tcp open http
3389/tcp closed ms-wbt-server
Nmap done: 1 IP address (1 host up) scanned in 11.74 seconds
基本可以替代了 telnet
$ telnet ip port
Trying ip...
Connected to ip...
Nmap所識別的6個端口狀態。
open(開放的)
應用程序正在該端口接收TCP 連接或者UDP報文。發現這一點常常是端口掃描 的主要目標。安全意識強的人們知道每個開放的端口 都是攻擊的入口。攻擊者或者入侵測試者想要發現開放的端口。 而管理員則試圖關閉它們或者用防火牆保護它們以免妨礙了合法用戶。 非安全掃描可能對開放的端口也感興趣,因為它們顯示了網絡上那些服務可供使用。
closed(關閉的)
關閉的端口對於Nmap也是可訪問的(它接受Nmap的探測報文並作出響應), 但沒有應用程序在其上監聽。 它們可以顯示該IP地址上(主機發現,或者ping掃描)的主機正在運行up 也對部分操作系統探測有所幫助。 因為關閉的關口是可訪問的,也許過會兒值得再掃描一下,可能一些又開放了。 系統管理員可能會考慮用防火牆封鎖這樣的端口。 那樣他們就會被顯示為被過濾的狀態,下面討論。
filtered(被過濾的)
由於包過濾阻止探測報文到達端口, Nmap無法確定該端口是否開放。過濾可能來自專業的防火牆設備,路由器規則 或者主機上的軟件防火牆。這樣的端口讓攻擊者感覺很挫折,因為它們幾乎不提供 任何信息。有時候它們響應ICMP錯誤消息如類型3代碼13 (無法到達目標: 通信被管理員禁止),但更普遍的是過濾器只是丟棄探測幀, 不做任何響應。 這迫使Nmap重試若干次以訪萬一探測包是由於網絡阻塞丟棄的。 這使得掃描速度明顯變慢。
unfiltered(未被過濾的)
未被過濾狀態意味着端口可訪問,但Nmap不能確定它是開放還是關閉。 只有用於映射防火牆規則集的ACK掃描才會把端口分類到這種狀態。 用其它類型的掃描如窗口掃描,SYN掃描,或者FIN掃描來掃描未被過濾的端口可以幫助確定 端口是否開放。
open|filtered(開放或者被過濾的)
當無法確定端口是開放還是被過濾的,Nmap就把該端口划分成 這種狀態。開放的端口不響應就是一個例子。沒有響應也可能意味着報文過濾器丟棄 了探測報文或者它引發的任何響應。因此Nmap無法確定該端口是開放的還是被過濾的。 UDP,IP協議, FIN,Null,和Xmas掃描可能把端口歸入此類。
closed|filtered(關閉或者被過濾的)
該狀態用於Nmap不能確定端口是關閉的還是被過濾的。 它只可能出現在IPID Idle掃描中。