iT邦幫忙

2026 iThome 鐵人賽

DAY 6
0
自我挑戰組

滲透測試新手的 HTB Academy 30天學習日記系列 第 6

Day 6 Nmap 網路枚舉工具介紹與簡單實作

  • 分享至 

  • xImage
  •  

今天來簡單介紹一下 Nmap 這個強大的網路枚舉 ( Network Enumeration ) 工具和 FTP 這個遠古的檔案傳輸協定。

Nmap

前面提到 Nmap 是網路枚舉的工具,那這個網路枚舉的意思是什麼 ?
網路枚舉這個詞其實是從英文的 Network Enumeration 直翻過來的,簡單來講就是可以針對一個或多個網路上的裝置來列舉出這個裝置的各種資訊 。

舉例來說 Nmap 可以找出特定範圍 ( 網段 ) 中有多少台裝置這些裝置可能是什麼系統.開啟了多少 Port這些 Port 上分別跑什麼樣的服務甚至可以找出服務的版本等等詳細資訊。

找到這些資訊後我們就可以透過去尋找特定服務的特定版本有什麼公開漏洞,來做進一步的測試及概念驗證 ( PoC )。

基本使用

Nmap 最簡單的用法為直接對目標做掃描 ( 不加選項 )

nmap [IP位址]

  • 實際演練 ( 這邊掃瞄的目標是昨天有提到的 metasploitable2 )
nmap 192.168.31.131                                                        
Starting Nmap 7.95 ( https://nmap.org ) at 2026-09-16 10:33 EDT
Nmap scan report for 192.168.31.131
Host is up (0.0041s latency).
Not shown: 977 closed tcp ports (reset)
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
512/tcp  open  exec
513/tcp  open  login
514/tcp  open  shell
1099/tcp open  rmiregistry
1524/tcp open  ingreslock
2049/tcp open  nfs
2121/tcp open  ccproxy-ftp
3306/tcp open  mysql
5432/tcp open  postgresql
5900/tcp open  vnc
6000/tcp open  X11
6667/tcp open  irc
8009/tcp open  ajp13
8180/tcp open  unknown
MAC Address: 00:0C:29:37:BF:EF (VMware)

Nmap done: 1 IP address (1 host up) scanned in 2.29 seconds

註 : 預設掃描是掃描 1000 個最常見的 Port

這邊可以看到幾個資訊

  1. Host is up (0.0041s latency). : 指的就是掃瞄的目標是開啟並連網的狀態。
  2. Not shown: 977 closed tcp ports (reset) : 這邊則是常見的 1000 個 Port 中有 977 個是關閉的狀態。
  3. 這個列表則是有開啟的 Port 和它們的服務
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
512/tcp  open  exec
513/tcp  open  login
514/tcp  open  shell
1099/tcp open  rmiregistry
1524/tcp open  ingreslock
2049/tcp open  nfs
2121/tcp open  ccproxy-ftp
3306/tcp open  mysql
5432/tcp open  postgresql
5900/tcp open  vnc
6000/tcp open  X11
6667/tcp open  irc
8009/tcp open  ajp13
8180/tcp open  unknown
  1. MAC Address: 00:0C:29:37:BF:EF (VMware) : 這邊為目標的 MAC 位址 後面寫著 ( VMware ) 是因為是用 VMware 架起來的,用的網卡是 VMware 的虛擬網卡。

透過這些資訊我們就可以整理出幾個可用的情報,首先這個目標是開啟的狀態,這樣我們就可以嘗試對他做一些動作 ( 關閉的話存取不到他當然也就什麼都做不了 ) ,再來則是目標有開哪些 Port 而它們各自跑的服務是什麼。

而只知道他的服務通常也不能做什麼,這時候我們就可以來使用 Nmap 的 Service Scan ( 服務掃瞄 ) ,來找出更詳細的資訊。

nmap -sV [IP位址]
  • -sV : 服務掃瞄,可以獲得開放連接埠的更多可用資訊,如版本、服務名稱以及目標系統的詳細資訊 ( 不一定 100% 是正確還需要再做進一步的檢查及測試 )。

  • 實際演練
nmap 192.168.31.131 -sV                                                    
Starting Nmap 7.95 ( https://nmap.org ) at 2026-09-16 10:59 EDT
Nmap scan report for 192.168.31.131
Host is up (0.0032s latency).
Not shown: 977 closed tcp ports (reset)
PORT     STATE SERVICE     VERSION
21/tcp   open  ftp         vsftpd 2.3.4
22/tcp   open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
23/tcp   open  telnet      Linux telnetd
25/tcp   open  smtp        Postfix smtpd
53/tcp   open  domain      ISC BIND 9.4.2
80/tcp   open  http        Apache httpd 2.2.8 ((Ubuntu) DAV/2)
111/tcp  open  rpcbind     2 (RPC #100000)
139/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
512/tcp  open  exec        netkit-rsh rexecd
513/tcp  open  login       OpenBSD or Solaris rlogind
514/tcp  open  tcpwrapped
1099/tcp open  java-rmi    GNU Classpath grmiregistry
1524/tcp open  bindshell   Metasploitable root shell
2049/tcp open  nfs         2-4 (RPC #100003)
2121/tcp open  ftp         ProFTPD 1.3.1
3306/tcp open  mysql       MySQL 5.0.51a-3ubuntu5
5432/tcp open  postgresql  PostgreSQL DB 8.3.0 - 8.3.7
5900/tcp open  vnc         VNC (protocol 3.3)
6000/tcp open  X11         (access denied)
6667/tcp open  irc         UnrealIRCd
8009/tcp open  ajp13       Apache Jserv (Protocol v1.3)
8180/tcp open  http        Apache Tomcat/Coyote JSP engine 1.1
MAC Address: 00:0C:29:37:BF:EF (VMware)
Service Info: Hosts:  metasploitable.localdomain, irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.75 seconds

這邊跟剛剛有所不同的是列表多出了一個版本的欄位跟多出了一些其他的敘述,先來講版本的部分,這邊我們針對 21 Port 的 FTP 服務來討論他的版本寫著 vsftpd 2.3.4 ,這時我們就可以去查詢看看 FTP 的這個版本有沒有什麼公開的漏洞

21/tcp   open  ftp         vsftpd 2.3.4

簡單搜尋一下就可以看到 vsftpd 2.3.4 這個版本有一個非常知名的漏洞 ( CVE-2011-2523 ) 之後我們就可以來嘗試利用這個漏洞,我這邊因為篇幅關係就先不演示,後面有機會再來賦現看看。
https://ithelp.ithome.com.tw/upload/images/20260916/20183931VITFpczoWd.png

補充 : 上面提到的 CVE-2011-2523 是這個漏洞的編號,CVE 是公開的漏洞資料庫只要有新的漏洞出來,CVE 官方就會建立一個編號來代表這個漏洞,中間的號碼是代表漏洞被登記的那個年份,後面的序號則是流水號。

FTP

上面剛好有提到一個 FTP 的上古漏洞,這邊就來介紹一下 FTP 這個協定。
FTP ( File Transfer Protocol ) ,直翻就是檔案傳輸協定,就如同字面上的意思,這個協定是用來做檔案傳輸,傳輸是按照 Client - Server 的架構,客戶端向伺服器提出請求,伺服器再決定是否要回應請求傳輸檔案給客戶端。

在現代 FTP 已經是被淘汰的檔案傳輸用的協定,最主要的原因就是安全性的部分,由於 FTP 傳輸資料是用 明文 ( Plain Text ) 方式來傳輸,若是有第三方側錄封包就能夠直接取得傳輸的內容。

所以現在大多使用 SFTP 來做替代方案,多出的 S 可以稱為 SSH 或 Secure ,透過 SSH 的擴充來做到傳輸的加密以確保,第三方沒辦法直接知道傳輸的內容。

總結

這次提到了 Nmap 這個在滲透測試中一個很好用的工具,Nmap 目前只有介紹皮毛甚至不到的量,但基本上只要會這兩個用法也是可以做得非常多事了,後面也會有一個模組是專門介紹 Nmap 的有興趣的讀者就請再期待期待拉 ( 希望我可以堅持寫到結束! ),今天後面還有提到一點點的 FTP 也算是補了一點其他知識,資安就是這樣東西多到爆炸,有機會就看一下留個印象,之後有需要的時候就會想起來有看過,有總比沒有好嘛,那今天就到這邊謝謝大家,明天見!

參考資料來源

延伸閱讀


上一篇
Day 5 Netcat與 vim 的使用介紹
系列文
滲透測試新手的 HTB Academy 30天學習日記6
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言