Удаленный доступ к Windows – критически важный аспект обеспечения безопасности компьютерных систем и сетей.
Инструменты тестирования на проникновение, такие как RATel, необходимы для имитации атак на систему, чтобы обнаружить уязвимости и оценить эффективность принятых мер безопасности.
RATel, инструмент с открытым исходным кодом, завоевал популярность среди специалистов по кибербезопасности благодаря своей способности взять под контроль машину Windows.
RATel работает по модели клиент-сервер, когда сервер посылает команды, а клиент выполняет их и отправляет результаты обратно на сервер.
Этот инструмент был первоначально разработан группой итальянских исследователей безопасности в 2010 году и с тех пор обновляется и совершенствуется сообществом участников.
Особенности RATel
RATelServer:
- Множественные подключения
- Широковещательная рассылка команд всем клиентам
- Хранение информации о клиентах в базе данных
- Шифрование данных в сети с помощью XOR
- Система управления токенами для идентификации клиентов
- Управление юникодом
Клиент:
- Шифрование данных, передаваемых по сети
- Сохранение запуска
- Удаленное выполнение команд через CMD
- Удаленное выполнение команд через Powershell
- Шифрование данных по сети с помощью XOR
- Автоматическая персистентность при запуске клиента
- Автоматическое переподключение
- Управление юникодом
RATelGenerator:
- Автоматическая компиляция клиента
В этом руководстве мы создадим полезную нагрузку для Windows с помощью RATel под управлением Kali Linux и проведем атаку на целевую машину под управлением Windows 10.
Требования
- Целевая машина (на нашей целевой машине в этом руководстве установлена Windows 10).
- Машина злоумышленника
- Python3
Установка RATel
Наш рабочий компьютер работает под управлением Kali Linux.
Чтобы установить и использовать RATel на нашем ПК, нам нужно установить необходимые зависимости для работы инструмента с помощью следующей команды.
После завершения установки мы можем приступить к установке, запуску и использованию RAT-el для создания полезной нагрузки Windows RAT.
Мы загружаем инструмент из его официального репозитория GitHub с помощью следующей команды.
После завершения загрузки мы можем перейти в только что созданную папку с файлом инструмента, создать виртуальную среду, которая будет использоваться и активировать ее для установки необходимых зависимостей Python с помощью следующих команд.
Использование
Команды RATel можно разделить на две категории в зависимости от места использования команды и ее назначения.
К этим категориям относятся:
Команды RATelServer
Поскольку сервер RATel работает в различных режимах, каждый режим имеет свои определенные команды.
Ниже перечислены различные режимы и команды, которые можно использовать в этих режимах.
Основной режим
Это режим сервера по умолчанию.
Именно из этого режима мы можем переходить в другие режимы и выполнять связанные с ними действия.
Некоторые из команд в этих режимах включают:
- -h/–help – используется для отображения всех команд.
- -cde/–connectionDisplayEnable – позволяет нам отображать информацию, связанную с клиентом.
- -t/–target – эта команда используется для выбора цели в режиме сеанса.
- -ls/–list – команда используется для отображения клиентов.
- -cdd/–connectionDisplayDisable – используется для отключения отображения информации о клиенте.
- –broadcast – используется для включения режима широковещания.
- –exit – используется, когда мы хотим остановить сервер.
Режим сеанса и режим широковещания
Оба эти режима имеют схожие команды.
Разница лишь в том, что в сеансовом режиме вы взаимодействуете с одним клиентом, а в широковещательном режиме вы выполняете команды на всех клиентах.
- -h/–help – используется для отображения всех команд, доступных в режиме сеанса.
- -c – используется для выполнения команд на всех клиентах. При использовании этого аргумента необходимо использовать кавычки.
- -ls/–list – используется для запуска командной строки на удаленной машине.
- –destruction – используется для разрыва соединения и удаления клиентов на целевых устройствах.
- –persistence – изменяет ключи реестра, чтобы сделать клиента постоянным при запуске.
- -b/–back – используется для возврата в меню.
Команды RATelGenerator
При использовании RATelGenerator для компиляции Windows RAT есть несколько команд, которые мы можем использовать для модификации RAT в соответствии с нашими потребностями.
Генератор имеет только один обязательный аргумент – IP-адрес.
Все остальные являются необязательными.
- -h/–help – используется для отображения всех доступных команд.
- -p/–port – аргумент, используемый для указания номера порта клиента.
- -i/–ip – используется для указания IP-адреса сервера.
- -a/–auto – активирует режим постоянства при запуске Windows RAT на целевом устройстве.
- -n/–name – используется для указания имени генерируемой Windows RAT.
- -rs/–registry – указывает имя строкового значения ключа для персистентности.
- -pa/–password – Включается при генерации клиентского приложения для шифрования и расшифровки данных в сети.
- -r/–reconnect – указывает время ожидания перед попыткой клиента повторно соединиться с сервером.
Когда процесс будет завершен, мы можем попробовать проверить, сколько антивирусных программ смогут обнаружить созданный Windows RAT.
Мы можем использовать antiscan.me для сканирования файла.
RAT был обнаружен только 9 антивирусными программами, а windows defender не обнаружил его, следовательно, мы можем запустить его на устройстве Windows без обнаружения.
В случае, когда мы проводим тест на целевых устройствах, мы можем использовать другие методы социальной инженерии, чтобы убедить цель запустить программу на своей системе.
Одна из техник, которую мы можем использовать в данном случае, – это изменение иконки приложения, которое мы только что создали.
Взаимодействие с клиентской машиной
Когда пользователь запускает Windows RAT на своем устройстве, мы можем просматривать и контролировать клиентскую машину с нашего сервера RATel.
Мы можем запустить сервер, сначала перейдя в папку сервера RATel и выполнив команду:
После запуска сервера мы сможем удаленно просматривать клиентские машины и взаимодействовать с ними.
Для просмотра подключенных клиентов мы выполняем команду:
Для взаимодействия с клиентской машиной мы запускаем режим сессии, указывая номер сессии после команды:
После запуска сеанса мы можем выполнять команды на целевом устройстве с установленным Windows RAT.
Для взаимодействия с клиентом мы можем запускать команды в режиме сеанса в зависимости от действия, которое мы хотим выполнить на целевом устройстве.
Некоторые из действий, которые мы можем выполнить, включают: сделать Windows RAT постоянным, удалить клиентов с целевой машины, запустить командную строку и PowerShell на целевой машине.
Однако следует отметить, что при использовании аргумента -c для запуска команды необходимо всегда убедиться, что ваши команды заключены в двойные кавычки.
¯\_(ツ)_/¯ Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.
см. также:
- 🔐 Использование зашифрованного пула Stratis с помощью Network Bound Disk Encryption (NBDE)
- 📦 Установка обновлений безопасности CENTOS с помощью плагина ERRATA от Vulners
- ☸️ Как установить Operator SDK CLI на Linux / macOS
- 🔨 Thefatrat массивный инструмент эксплойтинга
- Трояны удаленного доступа (RAT) – что это такое и как защитить от них👨⚕️