使用 nmap 掃描目標(biāo)網(wǎng)站中的端口
Nmap 是一個用于網(wǎng)絡(luò)發(fā)現(xiàn)和安全審計的開源實用程序,可以將其用于測試、網(wǎng)絡(luò)分析等。
這是一個選項非常多的程序,不過我們本文的重點(diǎn)并不是介紹如何使用 nmap,而是介紹掃描端口的各種方法。為了便于演示,我們在下面的例子中將使用 nmap 提供的 scanme.nmap.org 作為掃描目標(biāo)。
掃描開放的端口
使用 -sT 參數(shù),nmap 可以執(zhí)行簡單的 TCP 掃描,以查找開放的端口:
在上圖中可以看到,掃描目標(biāo)中有兩個比較重要的端口開放,分別為端口 22 和 80.
22 端口和 80 端口分別是 ssh 和 http 服務(wù)使用的端口。如果這些端口之前未處于活動狀態(tài),那么應(yīng)該檢查目標(biāo)系統(tǒng)的系統(tǒng)日志,以發(fā)現(xiàn)可能的安全漏洞。
上述例子是掃描 TCP 端口,如果要掃描 UDP 服務(wù)端口,可使用如下命令:
在這里需要注意的是,與 TCP 掃描不同,要掃描 UDP 端口,需要有 root 權(quán)限。
掃描指定的端口
nmap 的一個基本功能,使用 -p 選項,可以指定端口號來掃描單個端口。我們來看下面的例子。
Apache 的端口號為 80 和 443,其中端口80是 Apache 上 HTTP 請求的默認(rèn)端口號,我們可以使用 nmap 掃描該端口號,如下:
同樣,對于 https 協(xié)議的 443端口(默認(rèn)端口),也可以同樣掃描:
ssh 服務(wù)的??默認(rèn)端口號???為 22,因此如果要掃描 ssh 連接的話,可以掃描 22 端口:
另外,對于單個端口的掃描,還可以使用服務(wù)名稱來代替端口號,比如對于ssh端口,可以使用:
以上是使用 nmap 掃描指定端口號的例子,大家可以照例嘗試下掃描其他協(xié)議或端口號。
下面給出了??一些常用服務(wù)(協(xié)議)的默認(rèn)端口號??:
- 20: FTP data
- 21: FTP 控制端口
- 22: SSH
- 23: Telnet (不安全,不建議使用)
- 25: SMTP
- 53: DNS services
- 67: DHCP server port
- 68: DHCP client port
- 80: HTTP
- 143: IMAP 郵件端口
- 161: SNMP
- 443: HTTPS - 加密的web服務(wù)
- 587: SMTP - 消息提交端口
掃描多個端口
要掃描多個端口,依然可以使用 -p 選項,將多個端口之間使用逗號隔開,如下:
指定多個端口范圍:
關(guān)于端口的范圍,還有一種用法,比如上面的端口范圍 80-85,可以省略前面的80,變成 -85,這樣的話,實際的掃描范圍為 1-85。下面的例子掃描端口 1 到 22:
類似,如果在端口范圍中,省略后面那個值,則會從第一個指定的端口號開始掃描,一直到最后一個可能的端口號:
在 nmap 中使用通配符
使用通配符還可以簡化掃描任務(wù),假設(shè)我們要掃描所有與 http 相關(guān)的端口:
掃描頂部端口
掃描每個協(xié)議的所有 65536 個端口是一項非常耗時的任務(wù),然而,這些端口中的大多數(shù)幾乎沒有開放。。。Nmap 的開發(fā)人員 Fyodor 簡化了這個操作。
他通過研究數(shù)百萬個IP地址和探索許多企業(yè)網(wǎng)絡(luò),找到了最流行的TCP和UDP端口。
根據(jù) Fyodor 的研究,掃描工作要覆蓋 90% 的開放端口,只需要針對 576 個 TCP 端口和 11307 個 UDP 端口即可。--top-ports 選項僅掃描這些常用的端口:
-F 選項只掃描最常用的前 100 個端口。
下面是我們總結(jié)的幾個最常用的使用 nmap 掃描端口的方法:
掃描 TCP 端口,使用 -sT 選項:
掃描 UDP 端口,使用 -sU 選項:
掃描 TCP 和 UDP 端口,可使用如下命令:
掃描SYN數(shù)據(jù)包,可以使用 -sS 選項:
使用 nmap 可以掃描目標(biāo)網(wǎng)站上開放的端口,此外我們可以結(jié)合使用 netstat 和 ps 命令,通過這些掃描出來的端口,來識別相應(yīng)的服務(wù)。