Posts

  • Змеиная пирамида. Запускаем малварь из слепой зоны EDR



    В этой статье я покажу, как вооружить standalone-интерпретатор Python для загрузки “опасных” зависимостей прямо в память при помощи инструмента Pyramid (не путать с веб-фреймворком). Потенциально это позволяет обойти антивирусную защиту при пентесте и скрыть источник подозрительной телеметрии от EDR при операциях Red Team.

  • Adopting Position Independent Shellcodes from Object Files in Memory for Threadless Injection



    In this blog I will describe a way to automate generation of Position Independent Shellcodes from object files in memory (by @NinjaParanoid) to be used in Threadless Process Injection (by @_EthicalChaos_).

  • УдаленнаяКартошка0. Повышаем привилегии в AD через кросс-протокольную атаку NTLM Relay



    Эта история относится к категории «байки с внутренних пентестов», когда мы попали в среду Active Directory, где члены группы безопасности Domain Users (все пользователи домена) обладали привилегией для удаленного подключения к контроллерам домена по протоколу RDP. Хоть это уже само по себе ужасная «мисконфига», потенциальный злоумышленник все еще должен найти способ для локального повышения привилегий на DC, что проблематично, если на системе стоят все хотфиксы. Здесь и приходит на помощью баг фича из серии Microsoft Won’t Fix List – кросс-сессионное провоцирование вынужденной аутентификации по протоколу RPC – которая при отсуствии защиты службы LDAP от атак NTLM Relay мгновенно подарит тебе «ключи от Королевства». В этой статье мы поговорим о различных вариациях проведения данной атаки с использованием эксплоита RemotePotato0, а также на этом примере обсудим, как можно спрятать сигнатуру исполняемого файла от статического анализа.

  • Флуктуация шелл-кода. Пишем инжектор для динамического шифрования полезной нагрузки в памяти



    Сегодня поговорим об одной из продвинутых техник уклонения от средств защиты при использовании фреймворков Command & Control – динамическом сокрытии шеллкода в памяти ожидающего процесса. Я соберу PoC из доступного на гитхабе кода и применю его к опенсорсным фреймворкам. Если взглянуть на список фич, которыми хвастаются все коммерческие фреймворки C2 стоимостью 100500 долларов в час (Cobalt Strike, Nighthawk, Brute Ratel C4), первой в этих списках значится, как правило, возможность уклонения от сканирования памяти запущенных процессов на предмет наличия сигнатур агентов этих самых C2. Что если попробовать воссоздать эту функцию самостоятельно? В статье я покажу, как я это сделал. Итак что же это за зверь такой, этот флуктуирующий шеллкод?

  • Вызов мастеру ключей. Инжектим шеллкод в память KeePass, обойдя антивирус



    Недавно я столкнулся с ситуацией на пентесте, когда мне было необходимо вытащить мастер-пароль открытой базы данных KeePass из памяти процесса с помощью утилиты KeeThief из арсенала GhostPack. Все бы ничего, да вот EDR, следящий за системой, категорически не давал мне этого сделать – ведь под капотом KeeThief живет классическая процедура инъекции шеллкода в удаленный процесс, что не может остаться незамеченным в 2022 году. В этой статье мы рассмотрим замечательный сторонний механизм D/Invoke для C#, позволяющий эффективно дергать Windows API в обход средств защиты и перепишем KeeThief, чтобы его не ловил великий и ужасный «Касперский».

  • Abusing Kerberos Constrained Delegation without Protocol Transition



    In this blog post I will go through a study case in abusing Kerberos constrained delegation without protocol transition (Kerberos only authentication).

  • HTB{ RPG }



    This write-up is all about pwning the RPG Endgame from Hack The Box.

  • Leveraging PrintNightmare to Abuse RBCD and DCSync the Domain



    A relatively stealthy way to exploit PrintNightmare (CVE-2021-1675 / CVE-2021-34527) by configuring and abusing RBCD on a domain controller.

  • A Note on Calculating Kerberos Keys for AD Accounts



    A short memo on how to properly calculate Kerberos keys for different types of Active Directory accounts in context of decrypting TGS tickets during delegation attacks.

  • Exploiting CVE-2020-10977 on Old Versions of GitLab CE/EE



    In this post I will demonstrate how CVE-2020-10977 path traversal vulnerability can be exploited on old versions of GitLab to drop a registered user’s password.

  • HTB{ Hades }



    In this walkthrough I will show how to own the Hades Endgame from Hack The Box. For me it was the most mesmerizing experience I have got at HTB so far. Hades simulates a small Active Directory environment full of vulnerabilities & misconfigurations which can be exploited to compromise the whole domain. This lab offers you an opportunity to play around with AS-REP Roasting, exploiting Printer Bug from Linux, decrypting DPAPI secrets, abusing Kerberos resource-based constrained delegation and spoofing Active Directory-integrated DNS alongside with some other challenges of dealing with enterprise infrastructure. Let the madness begin!

  • Pretending to Be smbpasswd with impacket



    For me the most interesting aspect of pwning the Fuse machine from HTB was dealing with an expired domain user password. I found no other tools except smbpasswd to invoke such a password change remotely from Linux which seemed odd to me. So I decided to create a simple Python script with impacket which binds to the \samr pipe over SMB (MSRPC-SAMR) with a null session and calls SamrUnicodeChangePasswordUser2 to trigger the password change.

  • Blind SSRF with Oracle WebLogic Deserialization



    A way to get an impact from exploiting Oracle WebLogic Server Java deserialization vulnerabilities (CVE-2017-3506, CVE-2017-10271, CVE-2019-2725, CVE-2019-2729, etc.) without triggering RCE through an SSRF attack.

  • Playing with HTB{ Multimaster }



    Automate MS SQL injection with a custom sqlmap tamper script to bypass WAF through a UTF-16BE encoded JSON payload. Enumerate AD domain users via RID cycling from within the MS SQL DBMS.

  • Tuning PEAS for Fun and Profit



    At the recent external pentest engagement I had a feeling that PEAS (Python Exchange ActiveSync client) is missing some handy features. For example, crawling shared folders and auto downloading discovered files would be a nice function to have as well as brute forcing potential shares by a wordlist. To save time I wrote a draft script at the time of the pentest, but then I decided to fork PEAS project and tune the source code.

  • Playing with HTB{ Patents }



    Automate crafting malicious DOCX for blind XXE-OOB with external DTD using Python and Scapy.

  • О дотфайлах, персонализации и Kali



    В недавнем времени мне приходилось часто разворачивать свою рабочую среду (в частности, Kali Linux) на новых машинах: то на железе, то на виртуалках, то снова на железе… В общем, ты понял. В какой-то момент мне надоели рутинные действия, и я решил извлечь из этой ситуации максимальную пользу для себя и окружающих. В этой статье поговорим о том, как можно организовать хранение своих дотфайлов, чтобы более-менее автоматизировать процесс настройки и персонализации различных ОС для дома и работы.

  • Об обнаружении субдоменов



    Инструментарий и краткая методика для обнаружения субдоменов при проведении внешнего пентеста / анализа веб-приложений / конкурентной разведки.

  • HTB{ Reddish }



    Что делать в случае, когда тебе нужно захватить контроль над хостом, который находится в другой подсети? Верно — много запутанных туннелей! На примере виртуалки Reddish с Hack The Box мы встретимся со средой визуального программирования Node-RED, где в прямом смысле «построим» реверс-шелл, проэксплуатируем слабую конфигурацию СУБД Redis, воспользуемся инструментом зеркалирования файлов rsync для доступа к чужой файловой системе, а также создадим целое множество вредоносных задач cron всех сортов и расцветок. И что самое интересное — все управление хостом будет выполняться посредством маршрутизации трафика по докер-контейнерам через несколько TCP-туннелей. Погнали!

  • HTB{ Granny💔Grandpa }



    На заре становления Hack The Box как онлайн-площадки для тренировки вайтхетов в списке машин ее лаборатории значились две виртуалки: Grandpa и Granny. Обе эти машины нацелены на эксплуатацию уязвимостей WebDAV (набора дополнений для HTTP), и стратегии захвата их root-флагов практически не отличаются друг от друга. Поэтому, чтобы разнообразить прохождения, мы сначала быстро рассмотрим, как можно взломать каждый из хостов по отдельности, а после этого превратим один из них в шлюз, через который атакуем второй хост. Умение пользоваться техникой Pivoting — проброса трафика к жертве (и обратно) через промежуточные хосты — жизненно важный скил для этичного хакера, который пригодится при тестировании на проникновение любой корпоративной сетки.

  • В королевстве PWN. Return-to-bss, криптооракулы и реверс-инжиниринг против Великого Сокрушителя



    Год близится к своему логическому завершению и подчищает свои хвосты, поэтому и я, последовав его примеру, закончу цикл «В королевстве PWN» разбором хардкорной тачки Smasher с Hack The Box. На этом пути нас ожидает: низкоуровневый сплоитинг веб-сервера со срывом стека (куда же без него?) и генерацией шелл-кода «на лету» с помощью древней магии pwntools; проведение атаки Padding Oracle на Python-приложение для вскрытия шифртекста AES-CBC (абьюзим логику логирования приложения и реализации добивания блоков PKCS#7); реверс-инжиниринг исполняемого файла с атрибутом SUID для повышения привилегий в системе до локального суперпользователя.

  • В королевстве PWN. ROP-цепочки и атака Return-to-PLT в CTF Bitterman



    В этой статье мы поговорим об особенностях переполнения стека в 64-битном Linux. Начнем с прохождения трех обучающих кейсов для различных сценариев выполнения Stack Overflow в Ubuntu 19.10 x64. Далее на примере таска Bitterman, представленном на соревновании CAMP CTF 2015, используя возможности модуля pwntools, мы построим эксплоит, демонстрирующий техники Return-oriented programming для обмана запрета исполнения DEP/NX и Return-to-PLT для байпаса механизма рандомизации адресов ASLR без брутфорса.

  • В королевстве PWN. Обходим DEP и брутфорсим ASLR в «Октябре»



    October — относительно несложная виртуальная машина с Hack The Box, однако на ее примере удобнее всего разобрать, что, в сущности, из себя представляют: атака ret2libc, применяемая для обхода запрета выполнения данных (DEP/NX-Bit) в стеке; и подбор необходимого адреса той самой стандартной разделяемой библиотеки libc для нивелирования рандомизации размещения адресного пространства (ASLR). Ко всему прочему, на общий уровень сложности повлиял челлендж с захватом админки CMS, где случайно оставили дефолтную авторизацию, поэтому быстро пробежим вступление и более подробно остановимся на этапе privilege escalation.

  • В королевстве PWN. Препарируем классику переполнения стека



    Сколько раз и в каких только контекстах уже не писали об уязвимости переполнения стека. Однако в этой статье я постараюсь предоставить универсальное практическое вступление для энтузиастов, начинающих погружение в Low-Level эксплуатацию, и на примере того самого переполнения рассмотрю широкий спектр тем: от существующих на данный момент механизмов безопасности компилятора gcc до точеных особенностей разработки бинарных эксплоитов для срыва стека. Могу поспорить, что со школьной скамьи тебе твердили, что strcpy — это такая небезопасная функция, использование которой чревато попаданию в неблагоприятную ситуацию — выход за границы доступной памяти, и «вообще лучше используй MS Visual Studio…». Почему эта функция небезопасна? Что может произойти, если ее использовать? Как эксплуатировать уязвимости семейства Stacked Based Buffer Overflow? Ответы на эти вопросы я и дам далее.

  • HTB{ CTF }



    CTF — просто идеальная машина для составления райтапа: она достаточна прямолинейна, здесь ты не встретишь множества развилок на пути, ведущих в никуда, от которых становится неинтересным следить за ходом повестования, а мне не придется лишний раз выкручиваться, чтобы придумать, какими словами лучше описать свой ход мыслей при ее прохождении для сохранения интриги. В то же время, эта виртуалка весьма сложна, что в совокупности со своей прямолинейностью делает ее максимально интересной для взлома тестирования на проникновение. По мере продвижения к победному флагу нам предстоит: поиграть с stoken — софтверным решением для Linux для генерации одноразовых паролей (RSA SecurID токенов); разобраться с множественными типами LDAP-инъекций (Blind, Second Order); написать несколько скриптов на Python для брута LDAP-каталога; злоупотребить функционалом архиватора 7z, в частности его опцией @listfiles, для чтения файлов с правами суперпользователя.

  • HTB{ SecNotes }



    SecNotes — нетрудная машина под Windows с вариативным начальным этапом и оригинальным заключительным PrivEsc’ом. Для того, чтобы добраться до пользовательской SMB-шары (откуда ты сможешь использовать RCE через залитый веб-шелл), сперва предстоит получить доступ к аккаунту админа веб-приложения. Сделать это можно двумя способами: либо XSRF (путь, задуманный автором коробки), либо SQL-инъекция второго порядка (то, что автор не доглядел). Если же захочешь добраться до root’а, то тебе предложат взаимодействие с подсистемой Linux (WSL) с целью вытащить креды от админской SMB, а далее psexec/winexec для инициализации полноценной сессии суперпользователя. Удачи, мой друг!

  • HTB{ Mischief }



    Mischief — на момент прохождения моя любимая Linux-тачка на HTB. Балансируя на уровне сложности где-то между “Medium” и “Hard” (хотя изначальный рейтинг был определен как “Insane”), эта виртуалка дает простор для творчества. Полагаю, если бы не некоторые ошибки автора (которые мы, конечно же, обсудим ниже), эта машина и правда была бы “безумной”. Итак, с чем предстоит повоевать: энумерация SNMP с последующим извлечением авторизационных данных из аргументов командной строки для простого Python-сервера (пробуем разные тулзы, в том числе snmpwalk, snmp-check, onesixtyone, enyx.py), получение IPv6-адреса машины из того же вывода SNMP (1-й способ), либо через pivoting другого хоста на HTB из MAC-адреса последнего (2-й способ, алгоритм EUI-64), обход фильтра для возможности инъекции команд (+ создание мини ICMP-шелла с помощью scapy на сладкое) и захват кредов пользователя; наконец, получение IPv6 реверс-шелла в обход iptables для запуска su от имени www-data (так как пользователя блокирует механизм распределения прав доступа ACL) и получения root-сессии с кредами из .bash_history.

  • HTB{ Waldo }



    Waldo — несложная Linux-коробка, внутри которой затерялся злосчастный Вальдо. Неотъемлемой частью процедуры поиска последнего станут такие развлечения, как эксплуатация уязвимого к атаке типа “Path Traversal + LFI” веб-приложения, таинственная маршрутизация в docker-контейнер при подключении к Waldo по SSH, обнаружение альтернативного SSH-ключа и подключение к реальной виртуальной машине с помощью оного, побег из restricted-shell’а (rbash) и, на сладкое, чтение файлов с правами root через абьюзинг утилиты с установленным мандатом CAP_DAC_READ_SEARCH из арсенала одного из механизмов управления доступом в Линукс — Linux Capabilities. Итак, где же Вальдо?

  • HTB{ Active }



    Active — максимально простая, однако, в то же время, одна из самых полезных для прохождения Windows-машин в своей “ценовой категории” на HTB. Почему? Так это же контроллер домена AD! Тезисный обзор предлагаемых развлечений: энумерация SMB-шар (используем tуеву hучу крутых утилит а-ля smbclient, smbmap, enum4linux, nullinux); разграбление SMB с анонимным доступом для захвата файла групповых политик Groups.xml; декрипт GPP-пароля из той самой xml’ки; получение доступа к внутридоменному аккаунту с последующей инициализацией атаки типа Kerberoasting (против протокола аутентификации Kerberos) для извлечения тикета администратора с помощью коллекции Python-скриптов impacket для работы с сетевыми протоколами; наконец, офлайн-восстановление пароля администратора из хеша (с помощью Hashcat) для окончательного pwn’а контроллера.

  • HTB{ Hawk }



    Hawk — “разнообразная” виртуалка на Linux, предлагающая целый спектр задач из самых разных областей: здесь тебе и подбор пароля для OpenSSL-шифрованного сообщения, и использование модуля “PHP Filter” в CMS Drupal для выполнения произвольного PHP-кода (и получения reverse-shell’а), и выявление проблемы повторного использования паролей. Последняя приведет к получению доступа к SSH и СУБД H2: будем пробрасывать SSH-туннель, чтобы подключиться к базе данных и выполнить системные команды через абьюзинг функционала CREATE ALIAS от имени суперпользователя. Вначале прочитаем флаг, а затем получим полноценный шелл, и таким образом повысим привилегия в системе.

  • HTB{ Jerry }



    Jerry — самая простая коробка под управлением Windows, с которой мне довелось столкнуться на просторах HTB. Первая кровь была пролита всего через 6 минут после того, как машина вышла в онлайн. В рамках прохождения нам предстоит сразиться с веб-сервером Apache Tomcat, на котором оставили стандартный пароль для менеджера приложений, собрать вредоносный WAR-файл, содержащий полезную нагрузку в виде reverse-shell’а, развернуть его на жертве и, собственно, получить сессию администратора. В дополнение в конце поста мы расковыряем тот самый файл.war и посмотрим, что за магия творится внутри. Всегда было жалко Тома, ненавижу эту мышь…

  • HTB{ Bounty }



    Bounty — очень простая Windows-машина с 1000 и одним способом PrivEsc’а до админа. Выполнив инъекцию ASP-кода в файл конфигурации web.config веб-сервера IIS, мы получим юзера, а дальше все зависит только от твоего воображения. В рамках этого райтапа будем использовать Metasploit в качестве основного инструмента сбора сведений о локальных уязвимостях и постэксплуатации оных, однако напоследок я приведу список альтернативного ПО, которое с таким же успехом позволит выпотрошить эту тачку.

  • HTB{ TartarSauce }



    TartarSauce — весьма нетривиальная Linux-тачка, которая не прочь тебя подурачить. Преодолев огромное количество rabbit-hole’ов, мы столкнемся с: RFI-уязвимостью в устаревшем плагине для WordPress (входная точка в систему) и эксплуатацией некоторых особенностей поведения утилиты tar для обоих PrivEsc’ов. Для повышения привилегий до пользователя будем абьюзить флаги –to-command / –use-compress-program / –checkpoint-action; для инициализации же сессии суперпользователя придется разреверсить bash-скрипт и, воспользовавшись тем фактом, что tar “помнит” владельцев упакованных файлов, скрафтить и запустить SUID-шелл. Также возможен более лайтовый вариант прочтения root-флага, не требующий получения полноценного шелла: здесь будут продемонстрированы некоторые фишки утилиты diff. Это будет длинный райтап…

  • HTB{ DevOops }



    DevOops — ненапряжная виртуалка под Linux’ом, уязвимая для XML-инъекций (XXE). В данном случае эта атака открывает 2 основных вектора проникновения внутрь системы: тривиальный (просто забрать ssh-ключ из домашней директории; кстати, этот способ — невнимательность создателя машины) и более каноничный, который задумывался как основной (десериализация вредоносной python-нагрузки). Внутри машины все будет совсем просто: для PrivEsc’а достаточно заглянуть в историю git-коммитов репозитория с исходниками блога, который крутится на вебе. По традиции охватим оба способа и накодим немного скриптов для автоматизации pwn’а на питончике. Gonna be fun!

  • Об HTTP-серверах для трансфера файлов в Linux



    Последнее время часто сталкивался с необходимостью обмена файлами между Linux-машинами. В этом посте опишу 3 удобных способа, как можно быстро и легко развернуть тривиальный HTTP-сервер для трансфера файлов.

  • HTB{ Sunday }



    Sunday — простая машина на основе ОС Solaris. В ассортименте: древний net-протокол Finger для получения информации о залогиненных пользователях в качестве входной точки, брутфорс SSH-кредов, восстановление пароля соседнего пользователя по хешу (просим помощи у Джона) для первого PrivEsc’а и целая уйма способов получения рут-сессии через эксплуатацию wget для второго PrivEsc’а (попробуем все). Несмотря на то, что это правда одна из самых нетрудных тачек на HTB, большинство людей выбирали модификацию shadow/sudoers -файлов в качестве финального повышения привилегий, откуда непрекращающиеся сбои, ресеты и туча головной боли для вежливых хакеров. Рассмотрим же вместе этот временами бесящий, но от этого не менее веселый путь к победе над Sunday.

  • HTB{ Olympus }



    Путешествие к вершинам Олимпа: 1. Остров Крит — веб-сервер Apache с RCE-уязвимостью в Xdebug; 2. Олимпия — докер-контейнер с таском на брут 802.11 WPA перехвата; 3. Остров Родос — DNS-сервер, хранящий последовательность портов к Port Knocking’у для открытия портала в царство Аида; 4. Царство Аида — последний этап, сама виртуальная машина Olympus, root-сессия будет получена через захват docker’а. А теперь подробнее…

  • HTB{ Canape }



    Canape — Linux-тачка средней сложности. Для начала нам предстоит столкнуться с сервером на Flask’е, проанализировать исходники Python-кода, найдя в них мою любимую deserialization-уязвимость, далее нас поджидает повышение привилегий до пользователя через эксплуатацию уязвимости в СУБД CouchDB, и напоследок мы поиграем с методами обмана питоновского менеджера управления пакетами pip с целью выполнения произвольных команд. Последнее подарит root-сессию. Log on, hack in!

  • HTB{ Poison }



    Poison — одна из самых простых машин с Hack The Box на мой взгляд (если идти самым простым путем, хех), и, по совместительству, моя первая машина с этой платформы. FreeBSD внутри, эта виртуалка предоставляет целых 3 способа прохождения первого этапа: можно забрать авторизационные данные пользователя прямо с веба, если хорошо поискать (самый простой вариант); отравить логи веб-сервера и получить reverse-shell; или же получить RCE с помощью связки LFI + PHPInfo() (самый трудный способ, возможно, не задуманный создателем машины). Далее для повышения привилегий придется пробросить VNC-соединение через SSH-туннель.

  • HTB{ Stratosphere }



    Stratosphere — уютная Linux-машина, которая встретит нас RCE-уязвимостью фреймворка Apache Struts, помучает невозможностью получения стандартного reverse-shell’а, заставив прибегнуть к концепции forward-shell’а, после чего посредством взаимодействия с СУБД MySQL предложит взглянуть на нарушение политики локального хранения паролей, подразнит реверсом дайджестов различных алгоритмов хеширования, а под зановес угостит практикой абьюзинга функции eval() из-под Python’а или же угоном Python-модулей (aka Python Library Hijacking) на выбор (мы угостимся и тем, и другим though). Несмотря на то, что этот бокс идеально вписывается в описанную ранее концепцию “типичной CTF-машины”, найти к ней подход было действительно весело.

  • HTB{ Celestial }



    Celestial — образцовый представитель типичной CTF-машины. Уязвимый web-сервис дает возможность удаленного выполнения кода (RCE), открывая путь к получению reverse-shell’а, откуда до повышения привилегий до суперпользователя (LPE) в силу небрежно выставленных настроек прав доступа рукой подать. Let’s dive into it!

  • HTB{ Valentine }



    Valentine входит в тройку первых решенных мною машин на Hack The Box. Вскрытие будет включать в себя эксплуатацию Heartbleed, уязвимости протокола OpenSSL, наделавшей много шума в свое время, а также использование менеджера терминальных сессий tmux. Как и у большинства машин, у Valentine существует не единственный способ повышения привилегий до суперпользователя, второй, к слову, достаточно грязный, но мы разберем и его.