#105 Kali Linux для продвинутого тестирования на проникновение. Выполнение атаки MiTM на LDAP через TLS.
Здравствуйте, дорогие друзья.
В этом разделе мы рассмотрим, как получить учетные данные локального администратора данной конечной точки, используя скрытый метод. Microsoft Kerberos имеет функцию делегирования, которая позволяет любому приложению повторно использовать учетные данные пользователя для доступа к ресурсам, размещенными на разных серверах. Это делегирование Kerberos можно использовать, если это новая установка серверов Windows с конфигурациями по умолчанию. Этот метод работает, если в сети есть LLMNR, NBT-NS, который обеспечивает подписание LDAP, и привязку канала LDAP (облегченного протокола доступа к каталогам) через TLS (безопасность транспортного уровня).
В этом сценарии пентестеры имеют доступ к внутренней сети и находят устройство с Windows 10, подключенное к той же сети. В качестве первого шага тестировщики могут определить имя хоста или доменное имя, просто запустив Crackmapexec в диапазоне IP-адресов. На самом деле это будет шумно и может предупредить администраторов о том, что Вы пытаетесь анонимно пройти аутентификацию во всех системах сети.
Как только доменное имя и целевое устройство определены, мы добавляем внутренний IP-адрес DNS в наш Kali Linux, добавляя IP-адрес сервера имен в /etc/resolv.conf, чтобы гарантировать, что мы можем получить доступ к локальным именам хостов в целевой сети. В версиях Windows от Vista и выше IPv6 включен по умолчанию, и при загрузке устройств они начнут искать конфигурации для DHCP и WPAD.
Мы будем использовать mitm6. Этот инструмент не предустановлен в Kali Linux. Чтобы установить инструмент, введите: sudo pip3 install mitm6
, а затем запустите: sudo mitm6 –hw <имя компьютера Windows 10> -d <имя домена> --ignore-nofqdn
, который должен внести в белый список DNS IPv6 и быть готовым предоставить адрес IPv6 Kali Linux как часть шлюза по умолчанию:
После запуска mitm6 устройства-жертвы в сети теперь должны использовать шлюз по умолчанию без IP-адресов Kali Linux IPv6 на всех доступных целях, как показано на рисунке ниже:
Однако для выполнения следующего шага рекомендуется перезагрузить устройство-жертву. Для сбора учетных данных мы будем использовать Impacket, который представляет собой набор модулей с открытым исходным кодом, написанных на Python, которые в основном используются для управления сетевыми протоколами. Он установлен по умолчанию в Kali Linux. В частности, для выполнения этой атаки мы будем использовать impacket-ntlmrelayx для размещения служб LDAPS и WPAD на цели, выполнив в терминале следующую команду, как показано на рисунке ниже:
1 2 |
sudo impact-ntlmrelayx –t ldaps://domaincontrollerIP –delegate-access –no- smb-server –wh attacker-wpad |
Когда ntlmrelayx успешно захватит учетные данные, Вы должны увидеть подтверждение в том же окне, как показано на рисунке ниже:
NTLMrelayx не только выполняет аутентификацию в настоящей службе LDAPS, но также имеет возможность сохранять все данные домена, такие как пользователи домена, компьютеры домена и доверительные отношения домена, сохраненные в той же папке, из которой была запущена команда.
Кроме того, NTLMrelayx должен создать новую учетную запись компьютера, ретранслируя делегирование, выступая в качестве внешнего приложения, которое пытается повторно использовать учетные данные пользователя, и модифицирует msDS-Al lowedToActOnBehalfOfOtherIdentity в Windows 10, чтобы позволить вновь созданному компьютеру выдавать себя за любого пользователя на этом локальном компьютере.
Злоумышленники должны увидеть следующее подтверждение:
По замыслу в Active Directory пользователи могут создавать дополнительные учетные записи компьютеров. Следующим шагом является запрос билета службы, для доступа к правам администратора домена Windows 10. Для этого нам нужно будет вызвать имя участника службы (SPN), которое является уникальным идентификатором экземпляра службы. SPN используются при проверке подлинности Kerberos для связи экземпляра службы с учетной записью входа в службу. Злоумышленники могут использовать выходные данные, созданные из lootdir, для получения доступных SPN. Теперь мы воспользуемся сценарием Python impacket-getST, чтобы олицетворять учетную запись администратора с высокими привилегиями на контроллере домена. Вам будет предложено ввести пароль и, наконец, захватить билет службы, и он будет сохранен в формате .ccache в той же папке, где была запущена команда:
sudo impact-getST –spn SPNname/TargetMachinename Domainname/ NewComputerCreatedbyNTLMrelayx –impersonate Administrator –dc-ip
Используя билет службы, нам нужно экспортировать билет KRB5CCNAME в переменную среды, запустив экспорт KRB5CCNAME=/Home/kali/Administrator.ccache в терминале Kali Linux. Модули Impacket будут использовать значения непосредственно из переменных среды. Теперь мы готовы пройти аутентификацию на целевом компьютере, с помощью служебного билета, который мы сгенерировали на контроллере домена, и запустить его от имени пользователя с высокими привилегиями.
Мы запускаем: sudo impacket-wmiexec -k –no-pass –debug target-Machine-DNS-Name
. Успешная эксплуатация приведет к следующему выводу:
Кроме того, это также должно предоставить нам ограниченную оболочку, но работающую от имени пользователя, создавшего билет службы. Злоумышленники могут использовать эту оболочку для запуска сценария PowerShell Empire и повторного завершения интерактивного сеанса:
Мы также можем извлечь локальный хэш на целевой машине. Этого можно добиться, запустив команду: sudo impacket-secretsdump –k –no-pass –debug <имя целевой машины>
, которая должна предоставить нам локальные хэши, как показано на рисунке ниже:
Еще одна вещь, о которой обычно забывают пентестеры, — это проверка хеша машины. В большинстве случаев это должно предоставить нам много информации, например, об общих дисках на целевом устройстве. Это можно проверить, запустив Crackmapexec smb на целевом IP со значением хеш-функции, которое мы получаем из impacket-secretsdump:
На этом все. Всем хорошего дня!
Полный цикл статей по Kali Linux для продвинутого тестирования на проникновение.