Если помните, недавно мы рассказывали о том, как специалисты обнаружили новую, ранее неизвестную APT-группировку, получившую название ChamelGang. Это произошло, когда нашу команду по реагированию на инциденты ИБ пригласили расследовать множественные срабатывания антивирусных средств защиты с вердиктом Cobalt Strike Beacon в российской топливно-энергетической компании.
Уже после расследования первого инцидента, в рамках мониторинга угроз информационной безопасности (threat intelligence) и анализа только что выявленной группировки, специалисты PT ESC обнаружили еще одну ее успешную атаку, идентифицировали и оповестили новую жертву — предприятие авиапрома России — и помогли оперативно устранить угрозу. Как и в первом случае, преступники были нацелены на похищение информации, однако быстрое обнаружение APT-группы и противодействие ей позволили предотвратить кражу. Сегодня мы поделимся главными моментами этого расследования.
Что интересно, впервые об уязвимостях ProxyShell стало известно из доклада, представленного на конференции Black Hat 5 августа 2021 года. Кстати, на следующий день исследователь опубликовал подробную статью. После этого цепочку ProxyShell стали активно эксплуатировать различные APT-группы, а с 13 августа на GitHub начали появляться первые POC-скрипты. Давайте пошагово разберем, как действовали атакующие:
· CVE-2021-34473 — обход ACL. Уязвимость позволяет указать адрес почтового ящика через строку запроса в обработчике EwsAutodiscoverProxyRequestHandler. Это дает возможность получить доступ к произвольному URL с правами NT AUTHORITY\SYSTEM.
· CVE-2021-34523 — понижение привилегий. Для пользователя NT AUTHORITY\SYSTEM не существует почтового ящика, поэтому злоумышленники на этом этапе получают валидный доменный SID локального администратора. В дальнейшем SID используется для параметра X-Rps-CAT.
· Затем атакующие создают письмо в черновике через веб-службу Exchange (EWS). В POST-запросе передается элемент SOAP с черновым письмом.
Черновики с полезной нагрузкой в почтовом ящике
· CVE-2021-31207 — возможность записи в файл с последующим удаленным выполнением кода. Атакующие используют командлеты PowerShell: New-ManagementRoleAssignment, чтобы получить роль импорта и экспорта почтовых ящиков, и New-MailboxExportRequest — для экспорта почтового ящика в папку веб-сервера.
· Далее в файловую систему выгружается почтовый PST-файл с сигнатурой (magic) !BDN (0x21, 0x42, 0x44, 0x4E) и расширением ASPX.
· В содержимом конечного файла после наложения перестановочной кодировки NDB_CRYPT_PERMUTE можно заметить однострочный веб-шелл.
· Затем отправляют GET-запрос на веб-шелл.
После того, как группа ChamelGang успешно установила веб-шелл, она начала проводить разведку на скомпрометированном узле.
Использование класса DoorMe
В этот раз группа ChamelGang, чтобы усложнить анализ, решила применить обфускацию control flow с использованием диспатчера.
Обфускация control flow
Часть чувствительных строк этого бэкдора теперь лежат в открытом виде. Другие же были подвержены следующей схеме обфускации:
Обфускация строк
Если внимательно посмотреть на значения x и y, то можно заметить, что они — инверсия друг друга. Таким образом, итоговую формулу для каждого байта можно упростить:
Примечательно, что эта формула сводится к двум XOR, а с учетом того, что в коде видно использование одинаковых пар x и z, можно сказать, что генератор этих строк работает еще проще, чем мог бы. В отличие от IDA Pro, Ghidra упрощает эти уравнения, хотя и не справляется со всеми:
Обфускация строк в декомпиляторе Ghidra
Кроме того, APT-группа использует технику, которая «ломает» IDA Pro: она неправильно дробит функцию, из-за чего некоторые ноды графа исчезают из декомпилятора. Впрочем, с этой проблемой легко справляется скрипт IDAPython.
Количество команд, которое поддерживает DoorMe v2, увеличилось с 6 до 1, что дает злоумышленникам еще больше возможностей в захваченных системах. Теперь бэкдор умеет:
Раскручиваем цепочку атаки дальше
Продолжаем идти по цифровым следам и расследовать дальнейшее перемещение группировки ChamelGang по сети авиапромышленной компании. Итак, что же мы увидели? Атакующие контролировали зараженные узлы с помощью веб-шеллов ASPX.
После закрепления на зараженных узлах они установили на два почтовых сервера (Microsoft Exchange Server) модифицированный бэкдор DoorMe, о котором мы рассказывали выше. Особый интерес представляют выбранные преступной группой имена вредоносных библиотек — modrpflt.dll и protsdown.dll — и имена модулей IIS-сервера: modrpflt, protsdown. Это попытки замаскировать файлы под легитимные библиотеки. Для сокрытия вредоносных файлов злоумышленники также изменяли временные метки (Timestomp) и присваивали им значения легитимных файлов.
Конфигурационный файл applicationhost.config
Timestomp вредоносной библиотеки
Мы предполагаем, что группировка ChamelGang модифицировала бэкдор DoorMe после того, как его образец был загружен на VirusTotal. В результате новой обфускации большинство антивирусных решений перестало детектировать это вредоносное ПО. Так и случилось в момент атаки: бэкдор не был определен средствами защиты компании-жертвы.
Детекты антивирусных движков для старого файла
Детекты антивирусных движков для нового файла
Ниже показан пример выполнения команды через бэкдор DoorMe в журналах IIS:
Для продвижения внутри сети и заражения пользовательских узлов злоумышленники воспользовались BeaconLoader. Для его запуска хакерская группа использовала технику запуска через службу MSDTC.
Ознакомиться со всеми деталями расследования, подробным анализом вредоносного ПО из набора хакерской группировки ChamelGang, в том числе ранее не описанными бэкдорами, и получить индикаторы компрометации для выявления следов атаки можно по ссылке.
Авторы: Александр Григорян, Денис Кувшинов, Даниил Колосков и Станислав Раковский при участии PT Expert Security Center
Уже после расследования первого инцидента, в рамках мониторинга угроз информационной безопасности (threat intelligence) и анализа только что выявленной группировки, специалисты PT ESC обнаружили еще одну ее успешную атаку, идентифицировали и оповестили новую жертву — предприятие авиапрома России — и помогли оперативно устранить угрозу. Как и в первом случае, преступники были нацелены на похищение информации, однако быстрое обнаружение APT-группы и противодействие ей позволили предотвратить кражу. Сегодня мы поделимся главными моментами этого расследования.
Новая атака — новый способ проникновения во внутреннюю сеть жертвы
Исследуя активность ChamelGang, 16 августа 2021 года мы обнаружили свежие следы компрометации серверов в российской авиационно-промышленной компании, которая тоже стала жертвой этой группировки. Злоумышленники изменили исходный вектор атаки: для проникновения в инфраструктуру они воспользовались цепочкой связанных уязвимостей в Microsoft Exchange (CVE-2021-34473, CVE-2021-34523, CVE-2021-31207), получившей название ProxyShell. Напомним, что в первом кейсе группа ChamelGang использовала атаку типа trusted relationship: чтобы проникнуть в локальную сеть топливно-энергетической компании, преступники скомпрометировали дочернюю организацию, используя уязвимую версию веб-приложения на платформе JBoss Application Server. Подробнее об этой атаке мы рассказывали в одной из наших прошлых статей.Что интересно, впервые об уязвимостях ProxyShell стало известно из доклада, представленного на конференции Black Hat 5 августа 2021 года. Кстати, на следующий день исследователь опубликовал подробную статью. После этого цепочку ProxyShell стали активно эксплуатировать различные APT-группы, а с 13 августа на GitHub начали появляться первые POC-скрипты. Давайте пошагово разберем, как действовали атакующие:
· CVE-2021-34473 — обход ACL. Уязвимость позволяет указать адрес почтового ящика через строку запроса в обработчике EwsAutodiscoverProxyRequestHandler. Это дает возможность получить доступ к произвольному URL с правами NT AUTHORITY\SYSTEM.
· CVE-2021-34523 — понижение привилегий. Для пользователя NT AUTHORITY\SYSTEM не существует почтового ящика, поэтому злоумышленники на этом этапе получают валидный доменный SID локального администратора. В дальнейшем SID используется для параметра X-Rps-CAT.
· Затем атакующие создают письмо в черновике через веб-службу Exchange (EWS). В POST-запросе передается элемент SOAP с черновым письмом.
Черновики с полезной нагрузкой в почтовом ящике
· CVE-2021-31207 — возможность записи в файл с последующим удаленным выполнением кода. Атакующие используют командлеты PowerShell: New-ManagementRoleAssignment, чтобы получить роль импорта и экспорта почтовых ящиков, и New-MailboxExportRequest — для экспорта почтового ящика в папку веб-сервера.
· Далее в файловую систему выгружается почтовый PST-файл с сигнатурой (magic) !BDN (0x21, 0x42, 0x44, 0x4E) и расширением ASPX.
· В содержимом конечного файла после наложения перестановочной кодировки NDB_CRYPT_PERMUTE можно заметить однострочный веб-шелл.
· Затем отправляют GET-запрос на веб-шелл.
После того, как группа ChamelGang успешно установила веб-шелл, она начала проводить разведку на скомпрометированном узле.
Рекомендация: обнаружить попытки эксплуатации цепочки ProxyShell в журналах IIS-сервера помогут YARA-сигнатуры. Они общедоступны. Много полезной информации об этих уязвимостях есть в этом материале. Берите на заметку!
Встречайте новую версию бэкдора DoorMe
Бэкдор DoorMe наряду с ProxyT и BeaconLoader в арсенале группировки ChamelGang — это экземпляры нового, не встречавшегося ранее вредоносного ПО. По нашим данным, до этого ни одна APT-группа не применяла их в атаках. С результатами анализа образца DoorMe — самого интересного из вредоносов собственной разработки группы — мы уже знакомили вас в нашем прошлом посте. Расследуя инцидент в авиапромышленной компании, мы обнаружили расширенную версию этого бэкдора. Изменилась обфускация, появились новые команды, но название класса, содержащего переопределенные методы, которые реализуют набор функций бэкдора, осталось таким же — DoorMe.
Использование класса DoorMe
В этот раз группа ChamelGang, чтобы усложнить анализ, решила применить обфускацию control flow с использованием диспатчера.
Обфускация control flow
Часть чувствительных строк этого бэкдора теперь лежат в открытом виде. Другие же были подвержены следующей схеме обфускации:
Обфускация строк
Если внимательно посмотреть на значения x и y, то можно заметить, что они — инверсия друг друга. Таким образом, итоговую формулу для каждого байта можно упростить:
Примечательно, что эта формула сводится к двум XOR, а с учетом того, что в коде видно использование одинаковых пар x и z, можно сказать, что генератор этих строк работает еще проще, чем мог бы. В отличие от IDA Pro, Ghidra упрощает эти уравнения, хотя и не справляется со всеми:
Обфускация строк в декомпиляторе Ghidra
Кроме того, APT-группа использует технику, которая «ломает» IDA Pro: она неправильно дробит функцию, из-за чего некоторые ноды графа исчезают из декомпилятора. Впрочем, с этой проблемой легко справляется скрипт IDAPython.
Количество команд, которое поддерживает DoorMe v2, увеличилось с 6 до 1, что дает злоумышленникам еще больше возможностей в захваченных системах. Теперь бэкдор умеет:
- возвращать текущую рабочую папку приложения (двумя способами);
- получать информацию о содержимом в выбранной папке и передавать тип файла, его размер, название и дату последнего изменения;
- получать список процессов в виде таблицы PID PPID Arch Name User;
- завершать и удалять процессы.
Раскручиваем цепочку атаки дальше
Продолжаем идти по цифровым следам и расследовать дальнейшее перемещение группировки ChamelGang по сети авиапромышленной компании. Итак, что же мы увидели? Атакующие контролировали зараженные узлы с помощью веб-шеллов ASPX.
После закрепления на зараженных узлах они установили на два почтовых сервера (Microsoft Exchange Server) модифицированный бэкдор DoorMe, о котором мы рассказывали выше. Особый интерес представляют выбранные преступной группой имена вредоносных библиотек — modrpflt.dll и protsdown.dll — и имена модулей IIS-сервера: modrpflt, protsdown. Это попытки замаскировать файлы под легитимные библиотеки. Для сокрытия вредоносных файлов злоумышленники также изменяли временные метки (Timestomp) и присваивали им значения легитимных файлов.
Конфигурационный файл applicationhost.config
Timestomp вредоносной библиотеки
Мы предполагаем, что группировка ChamelGang модифицировала бэкдор DoorMe после того, как его образец был загружен на VirusTotal. В результате новой обфускации большинство антивирусных решений перестало детектировать это вредоносное ПО. Так и случилось в момент атаки: бэкдор не был определен средствами защиты компании-жертвы.
Детекты антивирусных движков для старого файла
Детекты антивирусных движков для нового файла
Ниже показан пример выполнения команды через бэкдор DoorMe в журналах IIS:
Для продвижения внутри сети и заражения пользовательских узлов злоумышленники воспользовались BeaconLoader. Для его запуска хакерская группа использовала технику запуска через службу MSDTC.
Ознакомиться со всеми деталями расследования, подробным анализом вредоносного ПО из набора хакерской группировки ChamelGang, в том числе ранее не описанными бэкдорами, и получить индикаторы компрометации для выявления следов атаки можно по ссылке.
Авторы: Александр Григорян, Денис Кувшинов, Даниил Колосков и Станислав Раковский при участии PT Expert Security Center