Содержание
В этой статье я расскажу о том, как мне удалось получить два разных RCE (Удаленное выполнение кода) с помощью атаки Lateral Movement.
Еще по теме: Атака Pass the Hash с помощью Metasploit и модуля PsExec
Поскольку это был тест на проникновение для известной компании, и я тестировал используемое ими приложение, я не буду делиться какой-либо раскрывающей информацией. Просто очень хотелось поделится с вами этим интересным (на мой взгляд) кейсом.
Для понимания статьи, рекомендую прочитать подробную статью «Техники атаки Lateral Movement».
Интересный кейс атаки Lateral Movement
Итак моя цель это:
- Сервер, на котором размещено десктопное приложение для сотрудников через Citrix Gateway.
- Пользовательское десктопное приложение,
- Сервер базы данных.
Что такое Citrix Gateway?
Citrix Gateway объединяет инфраструктуру удаленного доступа, предлагая единый вход для всех приложений, независимо от того, размещены ли они в центре обработки данных, в облаке или предлагаются как приложения SaaS. Через один URL-адрес любой может получить доступ к любому приложению на любом устройстве.

Это может быть очень полезно для компаний, поскольку не требует от всех сотрудников установки одной и той же программы и экономит время на настройку рабочей среды.
Однако это может привести к множеству серьезных уязвимостей, если среда настроена неправильно, как вы увидите позже.
Странное диалоговое окно

Функции загрузки файлов всегда интересны для тестирования. Если не настроить правильно, это может привести к средним и критическим уязвимостям.
Если вы не новичок в хакерстве, вы, вероятно, видели загрузку PHP-оболочки, изображение трагедии, XXE и тому подобное.
По этой причине это то, что вы хотите проверять каждый раз, когда сталкиваетесь с этим во время своей деятельности, и убедитесь, что все это безопасно.
В этом случае в пользовательском настольном приложении была кнопка для чтения некоторых файлов. Итак, я прыгнул, чтобы проверить это.
Я увидел диалоговое окно и подумал: «Хорошо, давайте загрузим что-нибудь». Но случилось что-то странное. Я не видел ни одного из файлов, присутствующих на моем компьютере. Почему?
Поскольку диалоговое окно было не с моего компьютера, оно было с сервера, на котором размещено приложение. Итак, я решил попробовать открыть cmd и PowerShell, вставив путь в диалоговое окно, но безуспешно.
Что-то, что я мог сделать, это щелкнуть правой кнопкой мыши и выполнить множество операций, таких как создание новых файлов и копирование и вставка материала. Таким образом, я мог загружать файлы, копируя и вставляя их со своего компьютера на удаленный.
Не удается открыть оболочку? Загрузите ее!
Ингредиенты таковы: щелчок правой кнопкой мыши без каких-либо ограничений и возможность загрузить любой файл. Что теперь?
Здесь вы можете сделать интересный трюк: загрузить .zip, содержащий портативный PowerShell, и разархивировать его. Теперь дважды щелкните .exe файла PS и бум! Вот это оболочка с самыми высокими привилегиями.
В этот момент я полностью контролировал машину. Я мог создать, изменить или удалить любой файл. Я мог читать что угодно, даже реестр. Что теперь делать?
Взломал и что теперь?
RCE известен как святой Грааль уязвимостей, последнее достижение. Итак, игра окончена, верно? Неправильный! Есть еще чем заняться. Я еще не подключил сервер, на котором размещена база данных.
Итак, вслед за прошлым процессом пришло время загрузить Process Hacker.
Этот инструмент полезен для дампа памяти исполняемого файла. В нем вы можете найти некоторую информацию, которой там быть не должно, например учетные данные.
Сбросил память, вот что нашел, логин и пароль пользователя с доступом к базе.
Второй RCE с помощью SQL Server Management Studio
Войдя в систему, я обнаружил, что у этого пользователя низкие привилегии, но сейчас не время отчаиваться.
Я сразу попробовал запрос «EXEC xp_cmdshell ‘whoami’», но ничего, xp_cmdshell отключен. Итак, я вспомнил запрос на его активацию. Примечание: это не должно быть возможно для пользователя без прав администратора.
Запрос следующий:

Я попробовал, и запрос был успешным! Теперь я получил второе удаленное выполнение кода. Несмотря на то, что мой пользователь не должен был иметь возможность перенастроить включение xp_cmdshell, запрос все еще выполняется, игнорируя мой уровень привилегий.
Outro
Заключение
Загрузив произвольный файл, вы можете выполнить удаленное выполнение кода через Citrix escape, загрузив переносимую оболочку PowerShell;
На этом этапе с помощью анализа памяти пользовательского настольного приложения на скомпрометированной машине можно найти действительные учетные данные сервера базы данных;
Войдя на сервер базы данных, можно выполнить эскалацию привилегий, тем самым перенастроив активацию xp_cmdshell и, таким образом, получив второе удаленное выполнение кода.
Если вы дочитали до этого места, спасибо за прочтение! Вы можете аплодировать этой статье и высказать свое мнение в комментариях ниже.
Не забудьте следовать
РЕКОМЕНДУЕМ: