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