Last updated
Last updated
Использовать RPC с SMB — самый распространенный способ. Этот подход используется многими инструментами, такими как и примерами из impacket , и другими *.exec.py
.
Эти инструменты используют какой-нибудь RPC-интерфейс и отправляют/получают информацию, используя SMB pipes. Обычно, инструменты нуждаются только в открытом 445 порте (SMB), но некоторые (например, для wmiexec.py
нужен 135 порт (RPC over TCP)).
В дополнение, если это возможно для этих инструментов, они сделают Pass-The-Hash атаку, используя NT или LM хеши. Impacket-инструменты содержат для этого специальный параметр. Для PsExec от ms, вы должны сами инжектнуть NT-хеш в Windows сессии с помощью mimikatz.
Здесь используется NTLM-аутентификация, хотя сейчас уже Kerberos по умолчанию.
Для того, чтобы получить Kerberos-тикет для использования, вы должны знать пароль, или NT-хеш (Overpass-the-Hash), или Kerberos keys (Pass-The-Key) или просто забрать тикет с Windows или Linux машины и использовать его (Pass-The-Ticket).
Пример запроса тикета и подключение по нему:
Аналог RPC/SMB для коннекта к Windows-машинам.
Порт: 5985 (на Windows Server включен по умолчанию)
Минусы: RDP коннект по умолчанию только через пароль.
При подключении по RDP, кредсы кэшируются на машине и могут быть украдены из процесса lsass с помощью инструментов, таких как mimikatz.
В Win8.1 / 2012 R2 Microsoft добавили Restricted Admin mode для RDP. Когда этот режим включен, пароль не передается на тачку, это дает возможность выполнить Pass-The-Hash, Pass-The-Key или Pass-The-Ticket атаки и получить RDP-коннект.
На Windows мы можем заинжектить в память NT-хеш или Kerberos ticket с помощью mimikatz или Rubeus и использовать mstsc.exe /restrictedadmin
для получения RDP-сессии без пароля.
Для того, чтобы использовать Kerberos, надо передать Kerberos-тикет тулзе. В случае с impacket, надо указать путь до ccache-файла (в это делается через переменную окружения, в — с помощью или ).
Лучше иметь набор инструментов для каждой ОС – Windows и Linux, тк тикеты имеют разный формат для каждой ОС. Конвертировать тикеты между различными форматами можно с помощью и .
На Windows есть куча , на Linux можно использовать .
Windows: можно использовать клиент по умолчанию Remote Desktop Connection ()
Linux: , или
From Linux, you can (you need to install the freerdp2-x11
freerdp2-shadow-x11
packages instead of freerdp-x11
as the article said). You only need to provide the NT hash instead of the password.