В этом рай­тапе мы с тобой взло­маем лег­кую по уров­ню слож­ности машину на Windows: порабо­таем с сер­тифика­тами для служ­бы WinRM, а так­же с LAPS — что­бы повысить при­виле­гии.

warning

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

 

Разведка

 

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

До­бав­ляем IP-адрес машины в /etc/hosts, что­бы было удоб­нее обра­щать­ся к ней:

10.10.11.152 timelapse.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).

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

Мы наш­ли мно­го откры­тых пор­тов:

  • 53 — служ­ба DNS;
  • 88 — служ­ба авто­риза­ции Kerberos;
  • 135 — служ­ба уда­лен­ного вызова про­цедур (Microsoft RPC);
  • 139 — служ­ба имен NetBIOS;
  • 389, 636, 3268, 3269 — служ­ба LDAP;
  • 445 — служ­ба SMB;
  • 464 — служ­ба сме­ны пароля Kerberos;
  • 593 — служ­ба уда­лен­ного вызова про­цедур (Microsoft RPC над HTTPS);
  • 5986 — служ­ба уда­лен­ного управле­ния Windows (WinRM).
 

Порт 445 — SMB

Сра­зу про­ведем базовую раз­ведку SMB. Прос­тым под­клю­чени­ем с помощью CrackMapExec узна­ем вер­сию опе­раци­онной сис­темы и имя хос­та.

cme smb 10.10.11.152
Подключение с помощью CrackMapExec
Под­клю­чение с помощью CrackMapExec

Так­же сто­ит поп­робовать под­клю­чение от име­ни гос­тя (ано­ним­ную авто­риза­цию).

cme smb 10.10.11.152 -u guest -p '' --shares
Общие SMB-ресурсы
Об­щие SMB-ресур­сы

И находим дос­тупную для чте­ния дирек­торию Shares.

 

Точка входа

Под­клю­чим­ся к это­му ресур­су с помощью ути­литы smbclient из пакета скрип­тов impacket и прос­мотрим дос­тупные фай­лы (при зап­росе пароля ничего не вво­дим).

smbclient.py guest@10.10.11.152
use Shares
ls
Содержимое ресурса Shares
Со­дер­жимое ресур­са Shares

В катало­ге Dev най­дем архив ZIP.

cd Dev
ls
Содержимое каталога Dev
Со­дер­жимое катало­га Dev

Ска­чива­ем его коман­дой get, а при попыт­ке рас­паковать у нас зап­росят пароль.

Распаковка архива
Рас­паков­ка архи­ва

Па­роль не проб­лема, если он сла­бый, так как его мож­но переб­рать. Для перебо­ра будем исполь­зовать ути­литу fcrackzip.

fcrackzip -v -D -u winrm_backup.zip -p rockyou.txt
Результат подбора пароля
Ре­зуль­тат под­бора пароля

В архи­ве находим файл .pfx — сер­тификат в фор­мате PKCS#12. При попыт­ке открыть и прос­мотреть его у нас сно­ва зап­рашива­ют пароль.

Результат просмотра PFX-файла
Ре­зуль­тат прос­мотра PFX-фай­ла
 

Точка опоры

Бу­дем наде­ять­ся, что и тут исполь­зует­ся сла­бый пароль. Мож­но пре­обра­зовать файл в фор­мат прог­раммы John the Ripper — прод­винуто­го брут­форсе­ра хешей. Вмес­те с «Джо­ном» обыч­но пос­тавля­ется ре­пози­торий скрип­тов для пре­обра­зова­ния хешей из раз­ных фор­матов фай­лов в понима­емый брут­форсе­ром фор­мат. В дан­ном слу­чае нам нужен скрипт pfx2john.

/usr/share/john/pfx2john.py legacyy_dev_auth.crt
Результат преобразования файла
Ре­зуль­тат пре­обра­зова­ния фай­ла

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

john --wordlist=./rockyou.txt pfx.hash
Результат перебора хеша
Ре­зуль­тат перебо­ра хеша

Те­перь, ког­да мы получи­ли пароль от сер­тифика­та PFX, нам нуж­но извлечь из него отдель­но сер­тификат и отдель­но ключ. Для это­го вос­поль­зуем­ся ути­литой OpenSSL, которой нуж­но ука­зать:

  • фор­мат фай­ла и сам вход­ной файл (параметр -in);
  • имя фай­ла, в который записать резуль­тат (параметр -out);
  • па­рамет­ры (для клю­ча -nocerts, а для получе­ния сер­тифика­та -clcerts и -nokeys).
openssl pkcs12 -in legacyy_dev_auth.pfx -nocerts -out key.pem -nodes
Получение ключа
По­луче­ние клю­ча
openssl pkcs12 -in legacyy_dev_auth.pfx -clcerts -nokeys -out cert.crt -nodes
Получение сертификата
По­луче­ние сер­тифика­та

Те­перь нам нуж­но очис­тить фай­лы клю­ча и сер­тифика­та. Для это­го оста­вим в фай­лах толь­ко дан­ные пос­ле -----BEGIN. Теперь у нас все готово, что­бы под­клю­чить­ся к служ­бе WinRM по сер­тифика­ту. Для это­го исполь­зуем кру­тую ути­литу Evil-WinRM.

evil-winrm -S -k ./clear_key.pem -c ./clear_cert.crt -i 10.10.11.152
Флаг пользователя
Флаг поль­зовате­ля
 

Продвижение

Пер­вым делом получим информа­цию о текущем поль­зовате­ле. Это поможет более точ­но понять кон­текст, в котором мы работа­ем.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии