11.07.2017 @ 17:41 RDPInception — атака через подключенные диски empire, powershell, RDP, windows Протокол RDP на сегодняшний день является одним из основных протоколов удаленного доступа к машинам под управлением ОС Windows. Помимо взаимодействия с удаленным компьютером он позволяет подключить к удаленной машине локальные диски, порты и другие устройства. На основании этого становится возможна атака, которая получила название RDPInception, позволяющая захваченному RDP серверу атаковать клиентские машины. Если атакованная машина подключается по цепочке через несколько серверов и везде монтируются локальные диски, становится возможным атаковать все машины в цепочке. Как работает RDPInception Для проведения атаки можно воспользоваться скриптом а именно файлом run.bat. Если вы пользуетесь Cobalt Strike, то можете использовать aggressor script, который так же доступен на гитхабе. Посмотрим на содержимое bat-файла и разберем по порядку, что происходит: Отображаем пользователю какой-нибудь неподозрительный текст. Делаем небольшую задержу, чтобы убедиться, что локальные диски клиента примонтировались. Создаем директорию temp в корне примонтированного диска и диска машины, на которую подключается жертва. Самокопирование скрипта в эти директории. Убеждаемся, что такого файла нет в TEMP (на всякий случай) Ищем директории со словом startup В них ищем уже более детально и записываем в файл temp_00.txt После этого файл будет выглядеть примерно так Далее в каждую директорию из файла пытаемся размножить скрипт run.bat Очищаем временные файлы Выполняем пейлоад (изначально закомментирован) В качестве cradle должен выступать «достаточно умный» powershell скрипт, способный по максимуму использовать права пользователя, который подключился по RDP и всех последующих пользователей в цепочке RDP подключений. Для алгоритма можно использовать имя пользователя, его группы, подсеть, другими словами, все, что мы можем узнать о пользователей, запустившем скрипт. В примере выше будет выполнен код в скобках только если пользователь состоит в домене WINDOMAIN. Атака становится возможна, поскольку при входе в систему выполняются скрипты, расположенные в Startup директории. Таким образом, при следующем входе в систему, все зараженные пользователи выполнят этот скрипт. Дальнейшее зависит от того, как хорошо написан powershell cradle. Практический пример Для того чтобы начать атаку нужно получить доступ к пользователю на одной из машин, к которым он подключается по RDP, положить скрипт run.bat в его Startup директорию и ждать подключения. В качестве powershell кредла я буду использовать powershell empire агент. Запускаем powershell empire, настраиваем листнер Генерируем код агента Изменяем в run.bat последнюю строку таким образом Для демонстрации я указал, что если имя пользователя будет Admin, то будет выполнен код powershell empire, а если Administrator, то будет запущен калькулятор. Положим файл на захваченный терминальный сервер или машину с RDP доступом, выполним, чтобы размножить на все Startup директории пользователей, к которым имеем доступ. и подключимся к этой машине с другой Windows машины, подключив диск C в настройках RDP клиента. После успешной аутентификации получаем powershell empire сессию с машины, к которой подключилась жертва. Одновременно с этим, run.bat появляется и в Startup директориях пользователей на машине, с которой произошло подключение. В частности файл появляется в директории пользователя Administrator. Теперь, если мы перелогинимся на RDP-клиента под Administrator, то автоматически запустится калькулятор Другие пользователи которые регулярно логинятся на эту машину по RDP или физически потенциально могут заразить те машины, локальные диски которых примонтировали при подключении. И так далее. В заключении Приведенный скрипт является в большей степени Proof-of-Concept. В действительности, основываясь на этой технике можно выполнять сложные атаки в условиях, когда другие методы продвижения в сети становятся не эффективными. Материалы: https://www.mdsec.co.uk/2017/06/rdpinception/ antgorka 14516 Network security Читать дальше >>