![](https://habrastorage.org/getpro/habr/upload_files/e55/db7/c8b/e55db7c8b25f8968f846ca9a8f2293d8.png)
Привет! Меня зовут Валерий Слезкинцев. В Positive Technologies я руковожу направлением реагирования на конечных точках в отделе обнаружения вредоносного ПО в PT Expert Security Center (PT ESC). Наша команда мониторит свежие атаки и воспроизводит их на лабораторных стендах, чтобы убедиться, что наш EDR успешно обнаруживает актуальные угрозы и позволяет защитить от них клиентов. Вы могли читать ранее мою статью о трояне RADX . На этот раз хочу поделиться с вами подробным разбором того, как использовать новые модули MaxPatrol EDR.
Сначала я покажу, как может действовать злоумышленник, далее расскажу о консоли EDR, а в конце статьи поделюсь рекомендациями по реагированию. Я не буду показывать сценарий, при котором мы сразу применяем все возможности реагирования: в таком случае нельзя будет рассказать вам о примечательных последствиях зловредного поведения.
По сценарию атакующему требуется добраться до компьютера 192.168.55.119 и зашифровать хранящиеся на нем файлы с целью получения выкупа.
Для демонстрации атаки был выбран графический интерфейс Armitage для Metasploit. Metasploit — это фреймворк для тестирования на проникновение. Он содержит большую базу эксплойтов. Armitage в свою очередь предоставляет графический интерфейс для Metasploit: позволяет выбрать и запустить в графическом меню необходимую программу с нужными для ее выполнения ключами. Это дает возможность сканировать целевую систему на основании собранных данных (ОС, открытых портов, запущенных служб и т. д.), составлять список эксплойтов. А далее — применять эксплойты по одному, запускать массовую проверку, запускать отработку всех эксплойтов в отношении целевого компьютера, брутфорсить аутентификацию и т. д.
Начинаем сканировать сеть. С точки зрения атакующего — это черный ящик. Атакующий не знает назначение данных хостов, все это раскрывается в процессе атаки.
![Обнаруженные хосты и их адреса Обнаруженные хосты и их адреса](https://habrastorage.org/getpro/habr/upload_files/e4a/1e2/a8b/e4a1e2a8bdfdcc9d734339babe97b440.png)
Нашлось 23 узла. Представим, что у злоумышленника есть ограниченный список утекших учеток с паролями. Получить их сегодня он может разными популярными способами.
![Фишинговое письмо Фишинговое письмо](https://habrastorage.org/getpro/habr/upload_files/ba6/8bc/0fe/ba68bc0fe0c63c621861a4cbd70800fc.png)
![Объявление о продаже доступов в даркнете Объявление о продаже доступов в даркнете](https://habrastorage.org/getpro/habr/upload_files/363/413/7ce/3634137ce889767b5faa71b549007275.png)
Попробуем брутфорс-атаку на SSH.
![](https://habrastorage.org/getpro/habr/upload_files/5f9/bbb/f55/5f9bbbf559d7f63b045b5d1c995ec776.png)
Нашлись логин и пароль к одному из компьютеров (Windows Server).
Посмотрим, что происходит в консоли:
![](https://habrastorage.org/getpro/habr/upload_files/f8d/631/5c9/f8d6315c9c46cc549f98f379b6c6c6d3.png)
На данном этапе для предотвращения атаки администраторам необходимо сменить пароли и отключить доступ к компьютерам по SSH c аутентификацией по паролю.
Нашелся источник заражения: 192.168.55.76.
![](https://habrastorage.org/getpro/habr/upload_files/b3c/6fe/d21/b3c6fed21ac0019e6c0dedb6fc9c1479.png)
Этот адрес добавим в модуль блокировки IP-адресов. В параметрах политики находим модуль «Блокировка по IP-адресу» и добавляем найденный адрес, нажимаем «Сохранить». Это действие позволит предотвратить дальнейшее развитие атаки.
![](https://habrastorage.org/getpro/habr/upload_files/e0d/46b/d91/e0d46bd9117d188d5fef4cc2ea56376e.png)
Снова возвращаемся к компьютеру атакующего. Отключаем Firewall командой: Powershell Set-NetFirewallProfile -Profile Domain
, Public, Private -Enabled False
.
![](https://habrastorage.org/getpro/habr/upload_files/bf5/ee8/421/bf5ee8421f03b66f13ecce4e1f312aba.png)
Открываем сессию Meterpreter. Теперь у злоумышленника есть интерактивный доступ к файловой системе, процессам и полный контроль над компьютером.
![](https://habrastorage.org/getpro/habr/upload_files/2e5/aba/35d/2e5aba35dff9892952bfd9e17d9a2192.png)
Переключимся на EDR (в нашем случае MaxPatrol EDR). На этом этапе сработало множество корреляций.
![](https://habrastorage.org/getpro/habr/upload_files/7d8/8cb/2cb/7d88cb2cb227cbeee889c7317dbd5f85.png)
Для события Metasploit_Payload рекомендуется настроить автореагирование. Для этого в параметрах политики в модуле «Коррелятор» следует выбрать событие Metasploit_Payload и назначить действие «Завершить дерево процессов, используя имя и идентификатор родительского процесса-объекта».
![](https://habrastorage.org/getpro/habr/upload_files/84c/ace/ce5/84cacece57e96c85d80469cc6f2fae32.png)
Также имеет смысл временно заблокировать скомпрометированную учетную запись. Для этого используем модуль блокировки учетных записей.
![](https://habrastorage.org/getpro/habr/upload_files/326/5a8/810/3265a8810ad10340532b95b36fa61eec.png)
Модуль сам подгружает список локальных учетных записей с узла и дает возможность заблокировать или разблокировать любую учетную запись.
Вернёмся к атакующему и попробуем поискать на компьютере жертвы пароли. Для этого используем laZagne (это утилита для восстановления паролей на узле, поддерживающая пароли для различного ПО). Загружаем ее на удаленный компьютер.
![](https://habrastorage.org/getpro/habr/upload_files/864/b13/85f/864b1385f74095a880620f8e469526f2.png)
Ничего интересного не получили. Только Nthash текущего пользователя billy.
Очередная порция событий в веб-консоли EDR:
![](https://habrastorage.org/getpro/habr/upload_files/fb4/215/363/fb4215363cea3f421593f4a664da56f2.png)
Для события Windows_Hacktool_Usage рекомендуется настроить автореагирование. Для этого в параметрах политики в модуле «Коррелятор» следует выбрать событие Windows_Hacktool_Usage и назначить действия «Поместить копию исполняемого файла процесса-объекта в карантин» и «Удалить исполняемый файл процесса объекта».
![](https://habrastorage.org/getpro/habr/upload_files/44c/45a/201/44c45a201ed460f0ab28f25b33c9cdf0.png)
Модуль «Карантин» — это аналог всем известного антивирусного карантина, то есть, по сути, защищенное хранилище подозрительных файлов. Перед тем как файл помещается в выделенную под карантин папку, он шифруется (с этого момента его уже нельзя просто так взять и запустить). Таким образом, пользователь находится в безопасности, при этом имеет возможность в любой момент восстановить файл из карантина.
Так выглядит интерактивный режим этого модуля:
![](https://habrastorage.org/getpro/habr/upload_files/f05/0ec/acb/f050ecacb64029ebff62abf0e760dfc7.png)
Здесь можно изолировать файл на узле по пути, скачать его для дальнейшего анализа и восстановить.
Попробуем получить историю запуска команд с компьютера жертвы. Для этого запускаем модуль Windows/gather/psreadline_history. Этот модуль получает историю PowerShell-команд каждого пользователя и сохраняет ее на компьютере атакующего.
![](https://habrastorage.org/getpro/habr/upload_files/02c/b31/88d/02cb3188d33b7f470d28a06912c92adb.png)
В одном из файлов находим учетные данные от другого компьютера.
![](https://habrastorage.org/getpro/habr/upload_files/99e/eb2/c85/99eeb2c85ad529bc8cc71c9eaa533aad.png)
Заходим.
![](https://habrastorage.org/getpro/habr/upload_files/6a2/465/943/6a2465943b6b100bf3420bbb2ac99717.png)
Загружаем шифровальщик CI0p:
sha256: 09d6dab9b70a74f61c41eaa485b37de9a40c86b6d2eae7413db11b4e6a8256ef.
![](https://habrastorage.org/getpro/habr/upload_files/e8d/d0f/bf7/e8dd0fbf725b3fab0ea8992f95531dab.png)
Функционал шифровальщика 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
.
![](https://habrastorage.org/getpro/habr/upload_files/f55/1af/bf7/f551afbf78f3d4b845b3b7a4c783c6e6.png)
File_watcher — модуль обнаружения файлов. Генерирует событие при появлении файлов в заданных папках. Требуется настроить скоуп проверки (поддерживаются шаблоны поиска). Также есть возможность указать конкретные расширения файлов. Еще одна удобная функция — следить только за файлами, созданными конкретными процессами.
Hash_checker — это модуль проверки файлов по хеш-сумме. На входе он получает путь к файлу, считает его MD5 или SHA-256 и сравнивает со списком вредоносных хэшей. Список хеш-сумм регулярно обновляется и содержит актуальные IoC вредоносных семплов из фидов PT.
Sandbox_static_analysis — это новая фича модуля отправки файлов в PT Sandbox. Она позволяет выполнить быстрый статический анализ файла на стороне песочницы.
Переходим в параметры политик модуля обнаружения подозрительных файлов:
![](https://habrastorage.org/getpro/habr/upload_files/3ea/3cd/408/3ea3cd408260ed61b662cf5e06886c12.png)
Выбираем модуль проверки файлов по хеш-сумме:
![](https://habrastorage.org/getpro/habr/upload_files/7d4/fbd/8b9/7d4fbd8b958d17db1fd0c7035cb92540.png)
Этот модуль имеет интерактивный режим. Он прост, понятен и не нуждается в комментариях:
![](https://habrastorage.org/getpro/habr/upload_files/c88/8d3/323/c888d3323802f257fb7cd16938aad07e.png)
В модуле отправки файлов в PT Sandbox добавляем действие — после проверки в песочнице и выявления подозрительного файла этот файл отправляется в карантин.
![](https://habrastorage.org/getpro/habr/upload_files/350/0fe/4ae/3500fe4aeff7508f2d793e60f44ed285.png)
Итог работы связки модулей на примере шифровальщика CI0P
Модуль обнаружения файлов нашел загруженный файл.
![](https://habrastorage.org/getpro/habr/upload_files/136/17f/8b8/13617f8b8f90c75775a3b92ec8459f5a.png)
Модуль проверки файлов по хеш-суммам не нашел указанной хеш-суммы в базе, так как файл был пропатчен.
![](https://habrastorage.org/getpro/habr/upload_files/6d9/f8b/cef/6d9f8bcefc4af09c8754e45bfb8f1d0d.png)
Статический анализ PT Sandbox обнаружил вредонос.
![](https://habrastorage.org/getpro/habr/upload_files/12a/dea/89d/12adea89decd0b51c138fa0b578c245c.png)
Обнаруженный шифровальщик использует симметричный потоковый алгоритм шифрования RC4, а значит, имея под рукой файл этого вредоноса и сохраненные ключи (лежащие рядом с зашифрованными файлами), можно восстановить потерянные данные. Суть в том, что в этом алгоритме используется один и тот же ключ для шифрования и дешифрования файлов.
Широкий набор инструментов для реагирования на инциденты безопасности – это важное преимущество для аналитика ИБ, позволяющее эффективно останавливать атаки на всех этапах их развития. Эти действия применимы на практике, поскольку выбранный нами фреймворк для атак (Metasploit и Armitage) реально используется хакерами, и у нас есть разработанные под него контрмеры. Теперь с новыми модулями гораздо проще обнаружить атаку на ранних этапах и принять меры по реагированию, а модуль карантина решает проблему с восстановлением удаленных файлов в случае ложных срабатываний.
В следующих материалах продолжим радовать вас интересными статьями о ВПО и как защищать конечные устройства от целевых атак.
Спасибо за прочтение!
![](https://habrastorage.org/getpro/habr/upload_files/8d3/d27/587/8d3d27587ddcabee9901370adca87b91.jpg)
Валерий Слезкинцев
Руководитель направления реагирования на конечных устройствах, Positive Technologies