HTB Timelapse. Атакуем Windows Remote Management и работаем с сертификатами

  • Партнер

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

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

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

    warning

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

     

    Разведка

     

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

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

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

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

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

    • 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

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

    cme smb 10.10.11.152 -u guest -p '' --shares

    Об­щие SMB-ресур­сы

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

     

    Точка входа

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

    smbclient.py [email protected]
    use Shares
    ls

    Со­дер­жимое ресур­са Shares

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

    cd Dev
    ls

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

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

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

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

    fcrackzip -v -D -u winrm_backup.zip -p rockyou.txt

    Ре­зуль­тат под­бора пароля

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

    Ре­зуль­тат прос­мотра 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

    Флаг поль­зовате­ля 

    Продвижение

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

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

    Ответить

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