Jump to content

Комментарий к записи HTB Intelligence. Пентестим Active Directory от MSA до KDC (s00mbre)


xak

Recommended Posts

Се­год­ня мы с тобой попен­тестим веб‑сер­вер на Windows: научим­ся манипу­лиро­вать DNS, орга­низу­ем утеч­ку хеша NTLM, получим учет­ные дан­ные управля­емых записей AD и про­экс­плу­ати­руем огра­ничен­ное делеги­рова­ние Kerberos, что­бы повысить при­виле­гии. Это поз­волит нам прой­ти машину Intelligence с пло­щад­ки Hack The Box.

warning

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

Разведка

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

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

10.10.10.248 intelligence.htb

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

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

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

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

#!/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

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

https://st768.s3.eu-central-1.amazonaws.com/5e9077439384dc45368506905875ff07/23905/02.pngРе­зуль­тат работы скрип­таhttps://st768.s3.eu-central-1.amazonaws.com/5e9077439384dc45368506905875ff07/23904/03.pngРе­зуль­тат работы скрип­та (про­дол­жение)

Ви­дим мно­жес­тво откры­тых пор­тов, что для Windows впол­не харак­терно:

  • порт 53 — служ­ба DNS. Порт учас­тву­ет в трас­товых отно­шени­ях меж­ду домена­ми;
  • порт 80 (HTTP) — веб‑сер­вер Microsoft IIS/10.0;
  • порт 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;
  • порт 9389 — веб‑служ­бы AD DS.

Еще в сер­тифика­те LDAP находим новое домен­ное имя dc.intelligence.htb, поэто­му обно­вим запись в фай­ле /etc/hosts:

10.10.10.248 intelligence.htb dc.intelligence.htb

Пер­вым делом запус­тим скрип­ты Nmap для получе­ния информа­ции с DNS (nmap -p53 --script=dns* intelligence.htb), но из это­го ничего не выш­ло. Авто­ризо­вать­ся как ано­ним в SMB и LDAP не получи­лось. Поэто­му нам нуж­но про­бивать веб.

Вни­матель­но осмотрим­ся на сай­те и поищем цен­ную инфу. Сам сайт на пер­вый взгляд кажет­ся прос­тень­ким. Из инте­рес­ного — на пер­вой стра­нице находим два PDF-докумен­та.

https://st768.s3.eu-central-1.amazonaws.com/5e9077439384dc45368506905875ff07/23903/05.pngСтар­товая стра­ница сай­та

OSINT

В докумен­тах ничего важ­ного не обна­ружи­лось. Но из любого кур­са по OSINT (раз­ведка на осно­ве откры­тых источни­ков) ты узна­ешь, что в докумен­тах самое инте­рес­ное — это метадан­ные, осо­бен­но атри­буты вро­де «соз­датель» или «вла­делец». Они могут рас­кры­вать име­на поль­зовате­лей, которые потом мож­но исполь­зовать для дос­тупа к учет­кам.

Для получе­ния мета­информа­ции мож­но исполь­зовать exiftool. Что­бы уста­новить и исполь­зовать ее, пишем:

sudo apt install exiftool

exiftool *

https://st768.s3.eu-central-1.amazonaws.com/5e9077439384dc45368506905875ff07/23902/06.pngПо­луче­ние мета­информа­ции из докумен­тов

Точка входа

Перечисление аккаунтов

Мы наш­ли два име­ни, а зна­чит, можем поис­кать акка­унты через аутен­тифика­цию Kerberos. Дело в том, что Kerberos нам сооб­щит, если поль­зовате­ля нет в базе. Нуж­но лишь сфор­мировать все воз­можные наз­вания акка­унтов и про­сеивать их. К при­меру, для пары name surname мож­но сос­тавить такие име­на:

Administrator

Guest

name

namesurname

name.surname

names

name.s

sname

s.name

surname

surnamename

surname.name

surnamen

surname.n

nsurname

n.surname

Что­бы сос­тавлять юзер­ней­мы по такому шаб­лону, исполь­зуем сле­дующий скрипт на Python:

#!/usr/bin/python3

names = ["Jose Williams", "William Lee"]

list = ["Administrator", "Guest"]

for name in names:

n1, n2 = name.split(' ')

for x in [

n1, n1 + n2, n1 + "." + n2, n1 + n2[0], n1 + "." + n2[0], n2[0] + n1, n2[0] + "." + n1,

n2, n2 + n1, n2 + "." + n1, n2 + n1[0], n2 + "." + n1[0], n1[0] + n2, n1[0] + "." + n2

]:

list.append(x)

for n in list:

print(n)

А теперь исполь­зуем kerbrute для перебо­ра имен. Ука­зыва­ем опцию перечис­ления поль­зовате­лей и переда­ем их спи­сок.

./kerbrute_linux_amd64 userenum --dc intelligence.htb -d intelligence.htb namelist.txt

https://st768.s3.eu-central-1.amazonaws.com/5e9077439384dc45368506905875ff07/23901/07.pngНай­ден­ные поль­зовате­ли

Име­на поль­зовате­лей, ука­зан­ные в докумен­тах, и ока­зались наз­вани­ями акка­унтов. Даль­ше, что бы я ни поп­робовал (даже брут паролей), никуда прод­винуть­ся не выш­ло. Видимо, что‑то упус­тили на сай­те.

Воз­вра­щаем­ся к вебу, на этот раз воору­жив­шись Burp Suite. Бла­года­ря Burp Proxy обра­щаем вни­мание на мес­то хра­нения фай­лов и их наз­вания.

https://st768.s3.eu-central-1.amazonaws.com/5e9077439384dc45368506905875ff07/23895/08.pngВклад­ка Burp Proxy

Име­на фай­лов — это даты, а зна­чит, мы можем попытать­ся най­ти и дру­гие докумен­ты. Для это­го отправ­ляем зап­рос в Burp Intruder, что­бы переб­рать и номер месяца, и день.

https://st768.s3.eu-central-1.amazonaws.com/5e9077439384dc45368506905875ff07/23900/09.pngBurp Intruder — вклад­ка Positionhttps://st768.s3.eu-central-1.amazonaws.com/5e9077439384dc45368506905875ff07/23898/10.pngBurp Intruder — вклад­ка Payload (payload 1)https://st768.s3.eu-central-1.amazonaws.com/5e9077439384dc45368506905875ff07/23899/11.pngBurp Intruder — вклад­ка Payload (payload 2)

Сор­тиру­ем резуль­тат по коду отве­та, что­бы най­ти докумен­ты сре­ди сооб­щений об ошиб­ках.

https://st768.s3.eu-central-1.amazonaws.com/5e9077439384dc45368506905875ff07/23897/12.pngРе­зуль­тат ата­ки

Ос­талось их ска­чать. Сна­чала сох­раним нуж­ные нам наг­рузки средс­тва­ми Burp. Для это­го отме­тим в филь­тре, что нас инте­ресу­ет толь­ко код отве­та 200, а затем выбира­ем Save → Results table.

https://st768.s3.eu-central-1.amazonaws.com/5e9077439384dc45368506905875ff07/23896/13.pngСох­ранение наг­рузок в файл

Пос­тавим в качес­тве раз­делите­ля про­бел и выберем толь­ко две наг­рузки. Я сох­ранил наг­рузки в файл save.txt, а потом ска­чал все эти докумен­ты через wget.

Adblock test (Why?)

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...