23 апреля 2018
Energetic Bear / Crouching Yeti: атаки на серверы
- Жертвы атаки
- Waterhole
- Сканируемые ресурсы
- Используемый инструментарий
- Поведение злоумышленников на скомпрометированных серверах
- Заключение
- Приложение I — индикаторы заражения
- Приложение II — шелл-скрипт для проверки сервера на наличие на нем инструментов
Energetic Bear/Crouching Yeti — широко известная APT-группа, действующая по крайней мере с 2010 года. Как правило, участники группы атакуют различные компании с явным фокусом на энергетику и промышленность. Атакованные Energetic Bear/Crouching Yeti компании разбросаны по всему миру с заметным преобладанием Европы и США. В 2016 — 2017 годах значительно выросло количество атак на компании в Турции.
Основная тактика группы включает рассылку фишинговых писем с вредоносными документами, а также заражение различных серверов. Некоторые зараженные серверы используются группой как вспомогательные — только для размещения различного инструментария и его логов. Другие заражаются специально для того, чтобы использовать их в waterhole-атаках и добраться с их помощью до основных целей.
О недавней активности этой группировки, направленной против целей в США, говорится в опубликованном US-CERT документе, в котором, в частности, утверждается, что группа связана с российским правительством, а также в бюллетене Национального центра кибербезопасности Великобритании (UK National Cyber Security Centre).
В этом отчете Kaspersky Lab ICS CERT представлены сведения об обнаруженных серверах, зараженных и используемых группировкой, а также приведены результаты анализа нескольких веб-серверов, скомпрометированных группой Energetic Bear в течение 2016 — в начале 2017 года.
Жертвы атаки
Ниже представлена таблица с разделением скомпрометированных серверов (в соответствии с языком контента веб-сайта и/или принадлежностью компании, арендующей сервер, на время компрометации) по странам, типам атакованных компаний и роли сервера в общей схеме атаки. Жертвами атаки злоумышленников стали не только промышленные компании.
Страна | Описание | Роль в атаке |
---|---|---|
Россия | Оппозиционный политический сайт | Waterhole |
Риэлтерское агентство | Вспомогательный (сбор данных пользователей в атаке waterhole) | |
Футбольный клуб | Waterhole | |
Разработчик и интегратор защищённых систем автоматизации и консультант по ИБ | Waterhole | |
Разработчики промышленного ПО и оборудования | Вспомогательный (сбор данных пользователей в атаке waterhole) | |
Инвестиционный сайт | Вспомогательный (сбор данных пользователей в атаке waterhole) | |
Украина | Электроэнергетическая компания | Waterhole |
Банк | Waterhole | |
Великобритания | Аэрокосмическая компания | Waterhole |
Германия | Разработчик и интегратор ПО | Waterhole |
Неизвестно | Вспомогательный (сбор данных пользователей в атаке waterhole) | |
Турция | Нефтегазовое предприятие | Waterhole |
Промышленный холдинг | Waterhole | |
Инвестиционный холдинг | Waterhole | |
Греция | Server of a university | Вспомогательный (сбор данных пользователей в атаке waterhole) |
США | Нефтегазовое предприятие | Waterhole |
Неизвестно | Сеть партнерских программ | Вспомогательный (сбор данных пользователей в атаке waterhole) |
Waterhole
Заражение серверов Waterhole осуществляется по одному и тому же шаблону: на веб-страницу или в JS-файл внедряется ссылка со схемой file следующего вида: file://IP/filename.png.
По ссылке инициируется запрос картинки, в результате которого пользователь подключается к удаленному серверу по протоколу SMB. В данном типе атаки целью злоумышленников является извлечение из сессии следующих данных:
- IP пользователя,
- имя пользователя,
- имя домена
- NTLM-хеш пароля пользователя.
Отметим, что картинка, которая запрашивается по ссылке, физически на удаленном сервере не присутствует.
Сканируемые ресурсы
Скомпрометированные серверы в некоторых случаях используются для совершения атак на другие ресурсы. В ходе исследования зараженных серверов были выявлены многочисленные сайты и серверы, которые атакующие сканировали различными инструментами, такими как nmap, dirsearch, sqlmap и другими (описание утилит дано ниже).
Страна (в соответствии с контентом) |
Описание |
---|---|
Россия | Некоммерческая организация |
Продажа наркотиков | |
Туризм/карты | |
Ресурсы, созданные на платформе Bump (платформа для корпоративной социальной сети), — некоммерческая организация, социальная сеть для выпускников ВУЗов, коммуникационная платформа для общественных организаций и другие | |
Бизнес-фотостудия | |
Промышленное предприятие, строительная компания | |
Производство дверей | |
Обмен криптовалюты | |
Информационно-аналитический строительный портал | |
Личный веб-сайт веб-девелопера | |
Vainah Telecom IPs and Subnets (Чеченская республика)
Различные чеченские ресурсы (государственные организации, университеты, промышленные предприятия и др.) |
|
Веб-сервер со множеством сайтов (сайты выпускников, промышленных, инженерных компаний и др.) | |
Мусульманский сайт знакомств | |
Бразилия | Очистка и переработка воды |
Турция | Отели |
Посольство в Турции | |
Разработчик ПО | |
Сайт аэропорта | |
Сайт городского совета | |
Производитель косметики | |
Религиозный сайт | |
Подсеть turktelekom со множеством сайтов | |
Подсеть telnet telecom со множеством сайтов | |
Грузия | Личный сайт журналиста |
Казахстан | Неизвестный веб-сервер |
Украина | Интернет-магазин канцтоваров |
Цветочный бизнес | |
Фотохостинг | |
Онлайн-курс по продажам | |
Дилер агротехники и запчастей | |
Личный сайт госслужащего Украины | |
Онлайн-магазин деталей для ремонта бытовой техники | |
Продажа древесины, строительство | |
Сайт теннисного клуба | |
Интернет-магазин для фермеров | |
Интернет-магазин массажного оборудования | |
Интернет-магазин одежды | |
Создание и продвижение сайтов | |
Швейцария | Аналитическая компания |
США | Веб-сервер со множеством доменов |
Франция | Веб-сервер со множеством доменов |
Вьетнам | Неизвестный сервер |
Международный | Трекер полетов |
Сайты и серверы в этом списке не объединены никакой тематикой. Системы при выборе потенциальных жертв на первый взгляд не прослеживается. Вероятнее всего, сканирование большей части ресурсов происходило с целью получения сервера-«плацдарма» для размещения инструментария атакующих и использования этого «плацдарма» для развития атаки.
Часть из сканированных сайтов могла интересовать атакующих с целью размещения на них waterhole.
Некоторые сканируемые домены размещались на одном сервере, иногда атакующие перебирали список возможных доменов, соответствующих заданному IP.
В большинстве случаев не было выявлено множественных попыток компрометации какой-то определенной цели. Исключение, пожалуй, составили сайты на платформе Bump, серверы Flight tracker и серверы турецкой сети отелей.
Среди сканированных сайтов присутствует личный сайт веб-девелопера kashey.ru, а также ресурсы, ссылки на которые были размещены на этом сайте (возможно, ссылки на его разработки): www.esodedi.ru, www.i-stroy.ru, www.saledoor.ru.
Используемый инструментарий
Утилиты
Найденные на скомпрометированных серверах утилиты имеют открытый исходный код и находятся в свободном доступе на GitHub:
- Nmap — утилита с открытым исходным кодом для исследования сети и проверки безопасности.
- Dirsearch — простой инструмент командной строки, предназначенный для брутфорса (поиска путём полного перебора) директорий и файлов на веб-сайтах.
- Sqlmap — инструмент с открытым исходным кодом для тестирования на проникновение, который автоматизирует процесс выявления и эксплуатации уязвимости SQL-инъекции и захват серверов баз данных
- Sublist3r — инструмент на python для перечисления поддоменов веб-сайтов. Использует разведку на основе открытых источников (OSINT). Sublist3r поддерживает многие поисковые движки, такие как Google, Yahoo, Bing, Baidu и Ask. Sublist3r, а также сервисы Netcraft, Virustotal, ThreatCrowd, DNSdumpster и Инструмент помогает тестерам на проникновение собрать информацию по поддоменам для домена, который они исследуют.
- Wpscan — сканер уязвимостей WordPress, работающий по принципу «чёрного ящика», т. е. без доступа к исходному коду. Он может быть использован для сканирования удалённых сайтов WordPress в поисках проблем безопасности.
- Impacket — инструментарий для работы с различными сетевыми протоколами, необходим для SMBTrap.
- SMBTrap — инструмент для логирования данных, полученных по протоколу SMB (IP-адрес пользователя, имя пользователя, имя домена, NTLM-хеш пароля).
- Commix — инструмент на python, предназначенный для поиска и эксплуатации уязвимостей веб-приложений типа инъекции команд (command injection and exploitation tool).
- Subbrute — инструмент для перечисления поддоменов для Python и Windows, который использует открытый определитель имен в качестве прокси и не отправляет трафик на целевой DNS-сервер.
- PHPMailer — инструмент для отправки почты.
Также на одном из серверов был обнаружен самописный python скрипт с именем ftpChecker.py для проверки FTP-хостов из входного списка.
Вредоносные php-файлы
В различных директориях папки nginx, а также в рабочей директории, созданной атакующими на зараженных веб-серверах, были найдены следующие зловредные php-файлы:
Наименова-ние файла | Краткое описание | md5sum | Время последнего изменения файла (МСК) | Размер, байт |
---|---|---|---|---|
ini.php | wso шелл + mail | f3e3e25a822012023c6e81b206711865 | 2016-07-01 15:57:38 | 28786 |
mysql.php | wso шелл + mail | f3e3e25a822012023c6e81b206711865 | 2016-06-12 13:35:30 | 28786 |
opts.php | wso шелл | c76470e85b7f3da46539b40e5c552712 | 2016-06-12 12:23:28 | 36623 |
error_log.php | wso шелл | 155385cc19e3092765bcfed034b82ccb | 2016-06-12 10:59:39 | 36636 |
code29.php | web шелл | 1644af9b6424e8f58f39c7fa5e76de51 | 2016-06-12 11:10:40 | 10724 |
proxy87.php | web шелл | 1644af9b6424e8f58f39c7fa5e76de51 | 2016-06-12 14:31:13 | 10724 |
theme.php | wso шелл | 2292f5db385068e161ae277531b2e114 | 2017-05-16 17:33:02 | 133104 |
sma.php | PHPMailer | 7ec514bbdc6dd8f606f803d39af8883f | 2017-05-19 13:53:53 | 14696 |
media.php | wso шелл | 78c31eff38fdb72ea3b1800ea917940f | 2017-04-17 15:58:41 | 1762986 |
В таблице выше:
- Web шелл — это скрипт для удаленного администрирования машины
- WSO — это популярный веб шелл и файловый менеджер (означает “Web Shell by Orb”), который имеет возможность маскироваться под страницу с ошибкой, содержащую скрытую форму для логина. Он доступен на GitHub: https://ics-cert.kaspersky.ru/away?url=https%3A%2F%2Fgithub.com%2Fwso-shell%2FWSO
Два найденных php-скрипта — ini.php и mysql.php — содержали WSO шелл, объединенный со следующим почтовым скриптом: https://ics-cert.kaspersky.ru/away?url=https%3A%2F%2Fgithub.com%2Fbediger4000%2Fphp-malware-analysis%2Ftree%2Fmaster%2Fdb-config.php
Все найденные скрипты обфусцированы:
Один из веб шеллов был найден на сервере под двумя различными именами — proxy87.php и code29.php. Он использует функцию eval для выполнения команды, посланной через HTTP cookies или POST-запрос:
Модифицированный sshd
В ходе анализа сервера был обнаружен модифицированный sshd с предустановленным бэкдором.
Патчи с бэкдором для sshd в некоторых вариантах, похожих на найденный, доступны на github, например: https://ics-cert.kaspersky.ru/away?url=https%3A%2F%2Fgithub.com%2Fjivoi%2Fopenssh-backdoor-kit
Компиляция может быть произведена на любой ОС с бинарной совместимостью.
В результате подмены файла sshd на зараженном сервере злоумышленник с помощью «мастер-пароля» может авторизоваться на удаленном сервере, оставляя при этом минимальное количество следов (по сравнению с обычным пользователем, подключившимся по ssh).
Кроме того, модифицированный sshd ведет лог всех легитимных подключений по ssh (кроме подключения по «мастер-паролю») и записывает время подключения, имя учетной записи и пароль. Лог программы зашифрован и находится по пути /var/tmp/.pipe.sock.
Поведение злоумышленников на скомпрометированных серверах
Помимо использования скомпрометированных серверов для сканирования многочисленных ресурсов, были выявлены и другие действия атакующих.
После получения доступа к серверу, злоумышленники в разные периоды времени устанавливали необходимый им инструментарий. В частности, на одном из серверов были выявлены следующие сторонние установки:
- apt install traceroute
- apt-get install nmap
- apt-get install screen
- git clone https://github.com/sqlmapproject/sqlmap.git
Также устанавливались необходимые пакеты и инструменты для python.
Ниже представлен график нелегитимного входа на один из скомпрометированных серверов в течение одного месяца. Проверка лог-файла smbtrap осуществлялась атакующими в рабочие дни. В большинстве случаев они заходили на сервер примерно в один и тот же промежуток времени — вероятно, в утренние часы:
Во время проведения анализа был также обнаружен активный процесс, который эксплуатировал SQL-инъекцию и собирал данные из БД одной из жертв.
Заключение
Результаты анализа скомпрометированных серверов и действий на них атакующих:
- За исключением редких случаев, участники группы довольствуются публичным инструментарием. Использование группой для реализации атак публично доступных утилит делает задачу атрибуции атак без дополнительных «маркеров» группы весьма сложной.
- Потенциально любой уязвимый сервер в интернете представляет для атакующих интерес в качестве «плацдарма» для развития дальнейших атак на целевые объекты.
- В большинстве наблюдаемых нами случаев группа выполняла задачи по поиску уязвимостей, закреплению на различных узлах, краже данных аутентификации.
- Разнообразие списка жертв может говорить о разнообразии интересов атакующих.
- С некоторой долей уверенности можно предположить, что группа работает в интересах или по заданиям от внешних по отношению к ней заказчиков, выполняя первоначальный сбор данных, кражу данных аутентификации и закрепление на подходящих ресурсах для обеспечения возможности дальнейшего развития атаки.
Приложение I — индикаторы заражения
Имена файлов и пути
Инструменты*
/usr/lib/libng/ftpChecker.py /usr/bin/nmap/ /usr/lib/libng/dirsearch/ /usr/share/python2.7/dirsearch/ /usr/lib/libng/SMBTrap/ /usr/lib/libng/commix/ /usr/lib/libng/subbrute-master/ /usr/share/python2.7/sqlmap/ /usr/lib/libng/sqlmap-dev/ /usr/lib/libng/wpscan/ /usr/share/python2.7/wpscan/ /usr/share/python2.7/Sublist3r/
* Отметим, что данные инструменты могут использоваться и другими злоумышленниками.
PHP файлы
/usr/share/python2.7/sma.php /usr/share/python2.7/theme.php /root/theme.php /usr/lib/libng/media.php
Журналы
/var/tmp/.pipe.sock
Хеши PHP файлов
f3e3e25a822012023c6e81b206711865 c76470e85b7f3da46539b40e5c552712 155385cc19e3092765bcfed034b82ccb 1644af9b6424e8f58f39c7fa5e76de51 2292f5db385068e161ae277531b2e114 7ec514bbdc6dd8f606f803d39af8883f 78c31eff38fdb72ea3b1800ea917940f
Правила Yara
rule Backdoored_ssh { strings: $a1 = "OpenSSH" $a2 = "usage: ssh" $a3 = "HISTFILE" condition: uint32(0) == 0x464c457f and filesize<1000000 and all of ($a*) }
Приложение II — шелл-скрипт для проверки сервера на наличие на нем инструментов
Шелл-скрипт для Debian
cd /tmp workdir=428c5fcf495396df04a459e317b70ca2 mkdir $workdir cd $workdir find / -type d -iname smbtrap > find-smbtrap.txt 2>/dev/null find / -type d -iname dirsearch > find-dirsearch.txt 2>/dev/null find / -type d -iname nmap > find-nmap.txt 2>/dev/null find / -type d -iname wpscan > find-wpscan.txt 2>/dev/null find / -type d -iname sublist3r > find-sublist3r.txt 2>/dev/null dpkg -l | grep -E (\impacket\pcapy\nmap\) > dpkg-grep.txt cp /var/lib/dpkg/info/openssh-server.md5sums . #retrieve initial hash for sshd md5sum /usr/sbin/sshd > sshd.md5sum #calculate actual hash for sshd
Шелл-скрипт для Centos
cd /tmp workdir=428c5fcf495396df04a459e317b70ca2 mkdir $workdir cd $workdir find / -type d -iname smbtrap > find-smbtrap.txt 2>/dev/null find / -type d -iname dirsearch > find-dirsearch.txt 2>/dev/null find / -type d -iname nmap > find-nmap.txt 2>/dev/null find / -type d -iname wpscan > find-wpscan.txt 2>/dev/null find / -type d -iname sublist3r > find-sublist3r.txt 2>/dev/null rpm -qa | grep -E (\impacket\pcapy\nmap\) > rpm-grep.txt rpm -qa --dump | grep ssh > rpm-qa-dump.txt #retrieve initial hash for sshd sha256sum /usr/sbin/sshd > sshd.sha256sum #calculate actual sha256 hash for sshd md5sum /usr/sbin/sshd > sshd.md5sum #calculate actual md5 hash for sshd