HTB EscapeTwo. Захватываем домен техникой ESC4 ADCS

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

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

Се­год­ня я про­демонс­три­рую повыше­ние при­виле­гий в сети на осно­ве Windows через экс­плу­ата­цию цепоч­ки раз­решений и уяз­вимос­ти ESC4 в служ­бе сер­тифика­ции Active Directory. Сес­сию на хос­те мы получим через Microsoft SQL, а учет­ные дан­ные для прод­вижения най­дем в фай­лах с нас­трой­ками.

На­ша конеч­ная цель — получе­ние прав супер­поль­зовате­ля на машине EscapeTwo с учеб­ной пло­щад­ки Hack The Box. Уро­вень задания — лег­кий.

warning

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

 

Разведка

 

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

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

10.10.11.51 escapetwo.htb

На этот раз, помимо IP-адре­са машины, нам пре­дос­тавля­ют учет­ные дан­ные с пра­вами поль­зовате­ля домена.

Ин­форма­ция о машине

Пер­вым делом запус­каем ска­ниро­вание пор­тов.

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

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

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

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

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

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

Ска­нер нашел 13 откры­тых пор­тов:

  • 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;
  • 1433 — Microsoft SQL;
  • 3268 (LDAP) — для дос­тупа к Global Catalog от кли­ента к кон­трол­леру;
  • 3269 (LDAPS) — для дос­тупа к Global Catalog от кли­ента к кон­трол­леру через защищен­ное соеди­нение;
  • 5985 — служ­ба уда­лен­ного управле­ния WinRM;
  • 9389 — веб‑служ­бы AD DS.

Ва­лиди­руем учет­ные дан­ные с помощью ути­литы NetExec.

nxc smb 10.10.11.51 -u rose -p KxEPkKe6R8su

Про­вер­ка учет­ных дан­ных

Учет­ные дан­ные вер­ны, а зна­чит, нач­нем собирать информа­цию из домена.

 

Точка входа

Пер­вым делом с помощью NetExec получим спи­сок поль­зовате­лей (параметр --users). Иног­да в опи­сании учет­ных записей мож­но най­ти полез­ную информа­цию.

nxc ldap 10.10.11.51 -u rose -p KxEPkKe6R8su --users

Спи­сок поль­зовате­лей

Те­перь про­верим общие SMB-ресур­сы (параметр --shares).

nxc smb 10.10.11.51 -u rose -p KxEPkKe6R8su --shares

Спи­сок общих катало­гов

Для чте­ния дос­тупен недефол­тный каталог Accounting Department. Под­клю­чаем­ся с помощью скрип­та impacket-smbclient и про­веря­ем фай­лы.

smbclient.py 'sequel.htb/rose:KxEPkKe6R8su'@10.10.11.51

Дос­тупные фай­лы

В катало­ге два фай­ла XLSX, ска­чива­ем их на свой компь­ютер. Одна­ко при попыт­ке открыть любую из таб­лиц получа­ем ошиб­ку кодиров­ки. Видимо, фай­лы битые.

Ошиб­ка при откры­тии фай­ла

Но XLSX — это обыч­ный ZIP, так что можем поменять им рас­ширение и рас­паковать архи­вато­ром. А потом в рас­пакован­ных фай­лах поищем стро­ки вро­де secret, pass, login.

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

В пап­ке accounts есть какие‑то пароли, поэто­му откры­ваем XML-файл accounts/xl/sharedStrings.xml через бра­узер и выписы­ваем учет­ные дан­ные.

Со­дер­жимое фай­ла sharedStrings.xml

Сре­ди най­ден­ных уче­ток есть sa — логин адми­нис­тра­тора Microsoft SQL. Имен­но эту СУБД мы видели при ска­ниро­вании пор­тов.

 

Точка опоры

Про­веря­ем дос­туп к Microsoft SQL с помощью NetExec.

nxc mssql 10.10.11.51 -u sa -p 'MSSQLP@ssw0rd!' --local-auth

Про­вер­ка учет­ных дан­ных

У нас есть дос­туп от име­ни адми­нис­тра­тора базы дан­ных, а зна­чит, мы можем получить сес­сию на хос­те. Под­клю­чаем­ся к СУБД с помощью mssqlclient, вхо­дяще­го в Impacket, акти­виру­ем про­цеду­ру enable_xp_cmdshell и для тес­та выпол­няем коман­ду whoami.

mssqlclient.py 'squel.htb/sa:MSSQLP@ssw0rd!'@10.10.11.51 enable_xp_cmdshell xp_cmdshell whoami

Ре­зуль­тат выпол­нения коман­ды

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

Ответить

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