Day 3 我用了一套Windows系統的Advanced Port Scanner和wsl2,他們家還有一套介面不太一樣的Advanced IP Scanner每年去北區區網管理員會議的時候常常會聽到游大神和李大神介紹,平常查線的時候也挺好用。但是呢nmap指令可以加上許多參數進行調整比較能夠依照我們的需求去進行探測,如果還是不想打指令這時候google關鍵字zenmap會發現不一樣的風景。
其實我在wsl2跑了Ubuntu之後為了節省空間就沒用過Zenmap,因為我的X280當時為了省錢只配了256GB硬碟客製化無視訊鏡頭鍵盤無背光,但是 i7 8th和16 GB RAM讓我能用到現在。
以下都會以nmap指令進行操作,但為了有些沒用過同學我還是重裝了一台並且下達指令nmap -h觀看help,當系統自己發現到並未安裝套件會很貼心的建議執行以下指令sudo apt update(但這只是先更新套件清單而已並不會開始安裝🤷♂️)。
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: Finley
err: Please enter a username matching the regular expression
configured via the NAME_REGEX configuration variable. Use the
`--allow-bad-names' option to relax this check or reconfigure
NAME_REGEX in configuration.
Enter new UNIX username: finley
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
┏━(Message from Kali developers)
┃
┃ This is a minimal installation of Kali Linux, you likely
┃ want to install supplementary tools. Learn how:
┃ ⇒ https://www.kali.org/docs/troubleshooting/common-minimum-setup/
┃
┗━(Run: “touch ~/.hushlogin” to hide this message)
┌──(finley㉿FinleyX280)-[~]
└─$ nmap -h
Could not find command-not-found database. Run 'sudo apt update' to populate it.
nmap: command not found
其實大部分的套件如果遇到套件名稱-v看版本或h看說明系統發現沒有安裝,應該會出現
真的沒有還是要sudo apt install nmap安裝一次噢!
這時候把我們的SOP再整理一遍,我認為大家所謂的練手感是找到自己的SOP,而我現在就是示範怎麼整理出一套屬於我的SOP,也希望大家可以藉由模仿中學習。以下就依照我們的SOP開始進行:
┌──(kali㉿kali)-[~]
└─$ sudo openvpn --config starting_point_FinleyLi.ovpn
這一次我們拿到的IP 10.129.28.11進行掃描,還有聽說過一個問題,因為免費版本不會有私人靶機,共用靶機發生沒有回應的時候可能是被打掛,大部分只要等一等重開一次就好了。
ONLINE
TARGET MACHINE IP ADDRESS
10.129.28.11
Read the walkthrough provided, to get a detailed guide on how to pwn this machine.
前面4個Task同樣是名詞解釋就跳過它,這裡提供了線索這個靶機要注意FTP協定。同樣為了讓戲繼續演下去,我們還是先用nmap來找看看這台靶機有些甚麼服務。Day 3我用的T4參數沒有不好,但這次換個F參數是為了加快掃描的速度。差別在預設掃描1000個埠,F快速掃描只掃100個。
finley@FinleyX280:~$ nmap -F 10.129.28.11
Starting Nmap 7.80 ( https://nmap.org ) at 2024-09-14 09:11 CST
Nmap scan report for 10.129.28.11
Host is up (0.21s latency).
Not shown: 99 closed ports
PORT STATE SERVICE
21/tcp open ftp
Nmap done: 1 IP address (1 host up) scanned in 3.40 seconds
看起來我們真的沒有通靈也能找到這台靶機有開21 port服務,不過version? 我來演示Task 5怎麼找到答案是「vsftpd 3.0.3」。
Task 5
From your scans, what version is FTP running on the target?
****** *.*.3
首先,看過答案的同學應該知道要加參數-sV看版本,但是當我們甚麼都不知道的時候一開始就下sV參數會讓回應速度變慢,建議還是先掃出目標port再下sV,這時候我們的SOP要先改成:
finley@FinleyX280:~$ nmap -sV -p21 10.129.28.11
Starting Nmap 7.80 ( https://nmap.org ) at 2024-09-14 09:19 CST
Nmap scan report for 10.129.28.11
Host is up (0.21s latency).
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
Service Info: OS: Unix
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 2.43 seconds
接下來我們再來認識一個指令ftp,使用方式ftp (目標IP),但是在演示之前身為GUI愛用者的我還是先用視窗模式是著來完成,我們電腦要安裝ftp client端程式嗎?自問自答:不用,就打開檔案總管吧!然後不小心答案就出現了。😂
但我們還是來看一下指令怎麼用,建議但不強迫同學們會看到許多教學會加上-v參數,其實不影響功能只是會回應較多的資訊而且這個參數下在nmap也有一樣的效果。
finley@FinleyX280:~$ ftp -v 10.129.28.11
Connected to 10.129.28.11.
220 (vsFTPd 3.0.3)
Name (10.129.28.11:finley):
登入時會遇到Name的問題,這時候又回到Day 3 「無密碼」、「anonymous」、「admin」、這些常見的預設帳號和可以不用密碼登入的帳號「root」。雖然很討厭說經驗法則這樣會有專業傲慢的感覺,但這裡就是先用ftp預設帳號密碼來試(anonymous/password),我們在windows檔案總管已經用預設帳密直接幫我們登入但是指令模式下還是來嘗試一遍。
finley@FinleyX280:~$ ftp -v 10.129.28.11
Connected to 10.129.28.11.
220 (vsFTPd 3.0.3)
Name (10.129.28.11:finley): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
登入成功之後我們先截斷一下內容,接下來要使用觀看資料夾內容的指令ls,很善心的flag就放在登入的位置,指令cat偷看檔案內容在ftp不能使用需要改用get將flag.txt先下載回來。
ftp> ls
229 Entering Extended Passive Mode (|||63732|)
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 32 Jun 04 2021 flag.txt
226 Directory send OK.
ftp> get flag.txt
local: flag.txt remote: flag.txt
229 Entering Extended Passive Mode (|||61174|)
150 Opening BINARY mode data connection for flag.txt (32 bytes).
100% |***************************************************************************************************| 32 4.52 KiB/s 00:00 ETA
226 Transfer complete.
32 bytes received in 00:00 (0.14 KiB/s)
ftp>
這時,我們就要去下載的位置找這個flag.txt檔案,如果是使用windows wsl2的同學可以在檔案總管使用以下路徑,finley是我的名字所以要記得換成你的使用者名稱。
\\wsl.localhost\Ubuntu\home\finley
如果進入了Ubuntu terminal環境或者是你的Kali環境呢,則用指令ls確認是否成功下載到flag.txt,接著使用指令cat flag.txt去察看檔案內容就可以。
Welcome to Ubuntu 22.04.4 LTS (GNU/Linux 5.15.133.1-microsoft-standard-WSL2 x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
* Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
just raised the bar for easy, resilient and secure K8s cluster deployment.
https://ubuntu.com/engage/secure-kubernetes-at-the-edge
This message is shown once a day. To disable it please create the
/home/finley/.hushlogin file.
finley@FinleyX280:~$ ls
flag.txt
finley@FinleyX280:~$ cat flag.txt
035db21c881520061c53e0536e44f815finley@FinleyX280:~$
經過了上面的步驟,我們又可以修正一次SOP
進入Day 5之前依樣請先熟習這些指令在鍵盤上的位置,也發現到我們的SOP更豐富了。不過我花在解釋路徑的篇幅不多,這一點也是許多人會遇到瓶頸的地方。我們對流程越來越熟之後再來研究路徑的問題,畢竟very easy靶機的flag還不用特別去尋找。