Вредоносное программное обеспечение Poco RAT представляет собой бэкдор, позволяющий оператору работать с файловой системой, выполнять команды ОС, запускать исполняемые файлы, делать снимки экрана. Все проанализированные сборки Poco RAT упакованы с помощью UPX (Ultimate Packer for Executables, инструмента для сжатия исполняемых файлов), что сократило средний объем файла с 24 МБ до 13 МБ. Основной причиной увеличенного размера является использование POCO — набора кросс-платформенных библиотек C++ с открытым исходным кодом, предназначенных для создания сетевых и интернет-приложений.
ВПО создает отдельный поток для непрерывного мониторинга собственного состояния. Для описания статуса работы используется два состояния:
- CHECKING TIME (мониторинг времени активности вредоносного ПО для анализа текущей ситуации в системе и сбора временных меток).
- DISCONNECTING YOU NOW (разрыв соединения с системой жертвы, что может быть связано с завершением работы ВПО или предотвращением его обнаружения).
На следующем этапе Poco RAT определяет командный сервер (command and control, C2), с которым будет установлено соединение. После успешного подключения сервер инициирует регулярную отправку heartbeat-сообщений для проверки актуальности соединения и обеспечения непрерывной связи с вредоносным ПО. Далее Poco RAT собирает данные о системе, используя стандартный набор функций из WinAPI. Перечень данных, которые собирает и передает ВПО, включает:
- имя пользователя (username);
- имя компьютера (hostname);
- версию операционной системы Windows;
- объем свободного дискового пространства;
- объем доступной физической памяти (RAM);
- текущее системное время.
После сбора данных и установления соединения с C2-сервером проверяется наличие виртуальной среды. Для этого анализируется реестровый путь SOFTWARE\Oracle\VirtualBox, указывающий на VirtualBox, а также порт 0×5658, характерный для VMware. Если признаки виртуализации не обнаружены, вся собранная информация передается на командный сервер.
После завершения сбора данных ВПО формирует общий буфер с информацией. Данные структурируются и разделяются специальным символом-сепаратором — *@&). Пример структуры данных в итоговом буфере:
N35*@&)username*@&)pc_name*@&)win_ver*@&)free_disk_space*@&)ram*@&)time*@&)
В таблице ниже представлено, какой набор команд может выполнять Poco RAT.