Kerberos Double Hop Problem
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Проблема "Double Hop" у Kerberos виникає, коли зловмисник намагається використовувати автентифікацію Kerberos через два хопи, наприклад, використовуючи PowerShell/WinRM.
Коли відбувається автентифікація через Kerberos, облікові дані не кешуються в пам'яті. Тому, якщо ви запустите mimikatz, ви не знайдете облікові дані користувача на машині, навіть якщо він виконує процеси.
Це відбувається тому, що при підключенні з Kerberos виконуються такі кроки:
User1 надає облікові дані, і контролер домену повертає Kerberos TGT користувачу User1.
User1 використовує TGT для запиту квитка служби для підключення до Server1.
User1 підключається до Server1 і надає квиток служби.
Server1 не має облікових даних User1 кешованими або TGT User1. Тому, коли User1 з Server1 намагається увійти на другий сервер, він не може автентифікуватися.
Якщо необмежена делегація увімкнена на ПК, цього не станеться, оскільки Сервер отримає TGT кожного користувача, який до нього звертається. Більше того, якщо використовується необмежена делегація, ви, ймовірно, зможете зламати контролер домену з цього. Більше інформації на сторінці необмеженої делегації.
Інший спосіб уникнути цієї проблеми, який є значно небезпечним, це Постачальник підтримки безпеки облікових даних. Від Microsoft:
Автентифікація CredSSP делегує облікові дані користувача з локального комп'ютера на віддалений комп'ютер. Ця практика підвищує ризик безпеки віддаленої операції. Якщо віддалений комп'ютер зламаний, коли облікові дані передаються на нього, ці облікові дані можуть бути використані для контролю мережевої сесії.
Рекомендується вимкнути CredSSP на виробничих системах, чутливих мережах та подібних середовищах через проблеми безпеки. Щоб визначити, чи CredSSP увімкнено, можна виконати команду Get-WSManCredSSP
. Ця команда дозволяє перевірити статус CredSSP і може бути виконана навіть віддалено, за умови, що WinRM увімкнено.
Щоб вирішити проблему подвійного стрибка, пропонується метод, що включає вкладений Invoke-Command
. Це не вирішує проблему безпосередньо, але пропонує обхідний шлях без необхідності спеціальних налаштувань. Цей підхід дозволяє виконати команду (hostname
) на вторинному сервері через команду PowerShell, виконану з початкової атакуючої машини або через раніше встановлену PS-Session з першим сервером. Ось як це робиться:
Альтернативно, встановлення PS-Session з першим сервером і виконання Invoke-Command
з використанням $cred
рекомендується для централізації завдань.
Рішення для обходу проблеми подвійного стрибка передбачає використання Register-PSSessionConfiguration
з Enter-PSSession
. Цей метод вимагає іншого підходу, ніж evil-winrm
, і дозволяє створити сесію, яка не страждає від обмеження подвійного стрибка.
Для локальних адміністраторів на проміжній цілі, переадресація портів дозволяє надсилати запити на кінцевий сервер. Використовуючи netsh
, можна додати правило для переадресації портів, разом з правилом брандмауера Windows для дозволу переадресованого порту.
winrs.exe
може бути використаний для пересилання запитів WinRM, потенційно як менш помітний варіант, якщо моніторинг PowerShell є проблемою. Нижче наведено команду, яка демонструє його використання:
Встановлення OpenSSH на першому сервері дозволяє обійти проблему подвійного стрибка, що особливо корисно для сценаріїв з використанням jump box. Цей метод вимагає CLI-встановлення та налаштування OpenSSH для Windows. Коли він налаштований для автентифікації за паролем, це дозволяє проміжному серверу отримати TGT від імені користувача.
Завантажте та перемістіть останній реліз OpenSSH у zip-форматі на цільовий сервер.
Розпакуйте та запустіть скрипт Install-sshd.ps1
.
Додайте правило брандмауера для відкриття порту 22 та перевірте, чи працюють служби SSH.
Щоб вирішити помилки Connection reset
, можливо, потрібно оновити дозволи, щоб дозволити всім читати та виконувати доступ до каталогу OpenSSH.
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)