Привет! Меня зовут Валерий Слезкинцев. В Positive Technologies я руковожу направлением реагирования на конечных точках в отделе обнаружения вредоносного ПО в PT Expert Security Center (PT ESC). Наша команда мониторит свежие атаки и воспроизводит их на лабораторных стендах, чтобы убедиться, что наш EDR успешно обнаруживает актуальные угрозы и позволяет защитить от них клиентов. Вы могли читать ранее мою статью о трояне RADX . На этот раз хочу поделиться с вами подробным разбором того, как использовать новые модули MaxPatrol EDR.

Сначала я покажу, как может действовать злоумышленник, далее расскажу о консоли EDR, а в конце статьи поделюсь рекомендациями по реагированию. Я не буду показывать сценарий, при котором мы сразу применяем все возможности реагирования: в таком случае нельзя будет рассказать вам о примечательных последствиях зловредного поведения.


По сценарию атакующему требуется добраться до компьютера 192.168.55.119 и зашифровать хранящиеся на нем файлы с целью получения выкупа.

Для демонстрации атаки был выбран графический интерфейс Armitage для Metasploit. Metasploit — это фреймворк для тестирования на проникновение. Он содержит большую базу эксплойтов. Armitage в свою очередь предоставляет графический интерфейс для Metasploit: позволяет выбрать и запустить в графическом меню необходимую программу с нужными для ее выполнения ключами. Это дает возможность сканировать целевую систему на основании собранных данных (ОС, открытых портов, запущенных служб и т. д.), составлять список эксплойтов. А далее — применять эксплойты по одному, запускать массовую проверку, запускать отработку всех эксплойтов в отношении целевого компьютера, брутфорсить аутентификацию и т. д.

Начинаем сканировать сеть. С точки зрения атакующего — это черный ящик. Атакующий не знает назначение данных хостов, все это раскрывается в процессе атаки.

Обнаруженные хосты и их адреса
Обнаруженные хосты и их адреса

Нашлось 23 узла. Представим, что у злоумышленника есть ограниченный список утекших учеток с паролями. Получить их сегодня он может разными популярными способами.  

Фишинговое письмо
Фишинговое письмо
Объявление о продаже доступов в даркнете
Объявление о продаже доступов в даркнете

Попробуем брутфорс-атаку на SSH.

Нашлись логин и пароль к одному из компьютеров (Windows Server).

Посмотрим, что происходит в консоли:

На данном этапе для предотвращения атаки администраторам необходимо сменить пароли и отключить доступ к компьютерам по SSH c аутентификацией по паролю.

Нашелся источник заражения: 192.168.55.76.

Этот адрес добавим в модуль блокировки IP-адресов. В параметрах политики находим модуль «Блокировка по IP-адресу» и добавляем найденный адрес, нажимаем «Сохранить». Это действие позволит предотвратить дальнейшее развитие атаки.

Снова возвращаемся к компьютеру атакующего. Отключаем Firewall командой: Powershell Set-NetFirewallProfile -Profile Domain, Public, Private -Enabled False.

Открываем сессию Meterpreter. Теперь у злоумышленника есть интерактивный доступ к файловой системе, процессам и полный контроль над компьютером.

Переключимся на EDR (в нашем случае MaxPatrol EDR). На этом этапе сработало множество корреляций.

Для события Metasploit_Payload рекомендуется настроить автореагирование. Для этого в параметрах политики в модуле «Коррелятор» следует выбрать событие Metasploit_Payload и назначить действие «Завершить дерево процессов, используя имя и идентификатор родительского процесса-объекта».

Также имеет смысл временно заблокировать скомпрометированную учетную запись. Для этого используем модуль блокировки учетных записей.

Модуль сам подгружает список локальных учетных записей с узла и дает возможность заблокировать или разблокировать любую учетную запись.

Вернёмся к атакующему и попробуем поискать на компьютере жертвы пароли. Для этого используем laZagne (это утилита для восстановления паролей на узле, поддерживающая пароли для различного ПО). Загружаем ее на удаленный компьютер.

Ничего интересного не получили. Только Nthash текущего пользователя billy.

Очередная порция событий в веб-консоли EDR:

Для события Windows_Hacktool_Usage рекомендуется настроить автореагирование. Для этого в параметрах политики в модуле «Коррелятор» следует выбрать событие Windows_Hacktool_Usage и назначить действия «Поместить копию исполняемого файла процесса-объекта в карантин» и «Удалить исполняемый файл процесса объекта».

Модуль «Карантин» — это аналог всем известного антивирусного карантина, то есть, по сути, защищенное хранилище подозрительных файлов. Перед тем как файл помещается в выделенную под карантин папку, он шифруется (с этого момента его уже нельзя просто так взять и запустить). Таким образом, пользователь находится в безопасности, при этом имеет возможность в любой момент восстановить файл из карантина.

Так выглядит интерактивный режим этого модуля:

Здесь можно изолировать файл на узле по пути, скачать его для дальнейшего анализа и восстановить.

Попробуем получить историю запуска команд с компьютера жертвы. Для этого запускаем модуль Windows/gather/psreadline_history. Этот модуль получает историю PowerShell-команд каждого пользователя и сохраняет ее на компьютере атакующего.

В одном из файлов находим учетные данные от другого компьютера.

Заходим.

Загружаем шифровальщик CI0p:

sha256: 09d6dab9b70a74f61c41eaa485b37de9a40c86b6d2eae7413db11b4e6a8256ef.

Функционал шифровальщика CI0p

Мой коллега Кирилл Урусов, младший специалист отдела обнаружения вредоносного ПО Positive Technologies, дал описание функциональности этого вредоноса: он относится к классу шифровальщиков и часто используется для атак на системы Linux, для шифрования использует алгоритм RC4.

Это ВПО содержит следующие функции:

  • do_heartbeat (запускает шифровальщик);

  • find (осуществляет шифрование файлов, которые соответствуют передаваемому регулярному выражению; рекурсивно вызывает себя для найденных папок);

  • CreateReadMe (создает файл с контактной информацией злоумышленников);

  • EncrFile (шифрует файл с помощью RC4);

  • Createkey (создает файл с ключом шифрования);

  • existsFile (проверяет существование файла).

С помощью fork ВПО создает процесс-демон, который шифрует с помощью RC4 все файлы в следующих папках:

  • /opt;

  • /u01;

  • /u02;

  • /u03 ;

  • /u04 ;

  • /home;

  • /root.

Для каждого файла этот процесс генерирует свой ключ шифрования длиной 0x74 байт. Ключ шифруется с помощью записанного в память ключа Jfkdskfku2ir32y7432uroduw8y7318i9018urewfdsZ2Oaifwuieh~~cudsffdsd тем же алгоритмом, что и файлы. Зашифрованный ключ записывается в файле с расширением .C_I_0P.

Для удобства использования мы пропатчили этот вредонос таким образом, чтобы шифрование происходило только в папке /home/ptuser/Documents.

File_watcher — модуль обнаружения файлов. Генерирует событие при появлении файлов в заданных папках. Требуется настроить скоуп проверки (поддерживаются шаблоны поиска). Также есть возможность указать конкретные расширения файлов. Еще одна удобная функция — следить только за файлами, созданными конкретными процессами.

Hash_checker — это модуль проверки файлов по хеш-сумме. На входе он получает путь к файлу, считает его MD5 или SHA-256 и сравнивает со списком вредоносных хэшей. Список хеш-сумм регулярно обновляется и содержит актуальные IoC вредоносных семплов из фидов PT.

Sandbox_static_analysis — это новая фича модуля отправки файлов в PT Sandbox. Она позволяет выполнить быстрый статический анализ файла на стороне песочницы.

Переходим в параметры политик модуля обнаружения подозрительных файлов:

Выбираем модуль проверки файлов по хеш-сумме:

Этот модуль имеет интерактивный режим. Он прост, понятен и не нуждается в комментариях:

В модуле отправки файлов в PT Sandbox добавляем действие — после проверки в песочнице и выявления подозрительного файла этот файл отправляется в карантин.

Итог работы связки модулей на примере шифровальщика CI0P

Модуль обнаружения файлов нашел загруженный файл.

Модуль проверки файлов по хеш-суммам не нашел указанной хеш-суммы в базе, так как файл был пропатчен.

Статический анализ PT Sandbox обнаружил вредонос.

Обнаруженный шифровальщик использует симметричный потоковый алгоритм шифрования RC4, а значит, имея под рукой файл этого вредоноса и сохраненные ключи (лежащие рядом с зашифрованными файлами), можно восстановить потерянные данные. Суть в том, что в этом алгоритме используется один и тот же ключ для шифрования и дешифрования файлов.

Широкий набор инструментов для реагирования на инциденты безопасности – это важное преимущество для аналитика ИБ, позволяющее эффективно останавливать атаки на всех этапах их развития. Эти действия применимы на практике, поскольку выбранный нами фреймворк для атак (Metasploit и Armitage) реально используется хакерами, и у нас есть разработанные под него контрмеры. Теперь с новыми модулями гораздо проще обнаружить атаку на ранних этапах и принять меры по реагированию, а модуль карантина решает проблему с восстановлением удаленных файлов в случае ложных срабатываний.

В следующих материалах продолжим радовать вас интересными статьями о ВПО и как защищать конечные устройства от целевых атак.

Спасибо за прочтение!

Валерий Слезкинцев

Руководитель направления реагирования на конечных устройствах, Positive Technologies

Комментарии (0)