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

Как работают стейджеры

coree

(L2) cache
Пользователь
Регистрация
27.12.2021
Сообщения
303
Решения
1
Реакции
116
Гарант сделки
1
Депозит
0.0006
Коллеги, появилась нужда в инфе как работают +- уважающие себя стейджер-пейлоады. Если знает кто - отпишите, статью киньте. Хорошая ли идея грузить в качестве стейдж2 dll-ку, или прям шеллкод лучше накатать?
 
стейджер внутри стейджера. запуск длл только после всех проверок и тд. саму длл тоже обернуть в пе шеллкод лоадер. до этого держать тело зашифрованным.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Вся суть stages payloads это передача управления с одного этапа на другой, при чем каждый отдельный этап отвечает за свои обязанности. А делается это все лишь с одной целью, незаметно запустить код, уйти от обнаружения, ну и конечно же не спалить главный payload (малварь), т.е. все условия должны быть соблюдены.

Сами стейджеры я бы их разделил на две категории: файловые и программные.

Под файловыми я подразумеваю файлы вроде .url .lnk .pdf .xml .doc итд. Обычно они идут в начале цепочки заражения как инициализирующий этап 0-3 итд. Это можно увидеть в раличных отчетах.

А программные это уже обфускакаторы, упаковщики, шелл-коды, эксплойты

Ну и соответственно задачи у них тоже разные.

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

Если знает кто - отпишите, статью киньте.
Вроде таких статей и нету. Но вот база.

Идея stages payloads на основе meterpreter --> rapid7.com/blog/post/2015/03/25/stageless-meterpreter-payloads/



Коллеги, появилась нужда в инфе как работают +- уважающие себя стейджер-пейлоады.
А так смотри отчеты различных APT и тогда ты познаешь дзен.


1720673794887.png




1720673825788.png




1720674032575.png







1720674344698.png



1720674406783.png



1720674499685.png



1720674574286.png


Хорошая ли идея грузить в качестве стейдж2 dll-ку, или прям шеллкод лучше накатать?
И как ты понимаешь идеальной цепочки не существует, цепочка заражения всегда меняется. Реализуй сначала свой вариант, потом попробуй его, затем измени его и так по кругу.
 
Вся суть stages payloads это передача управления с одного этапа на другой, при чем каждый отдельный этап отвечает за свои обязанности. А делается это все лишь с одной целью, незаметно запустить код, уйти от обнаружения, ну и конечно же не спалить главный payload (малварь), т.е. все условия должны быть соблюдены.

Сами стейджеры я бы их разделил на две категории: файловые и программные.

Под файловыми я подразумеваю файлы вроде .url .lnk .pdf .xml .doc итд. Обычно они идут в начале цепочки заражения как инициализирующий этап 0-3 итд. Это можно увидеть в раличных отчетах.

А программные это уже обфускакаторы, упаковщики, шелл-коды, эксплойты

Ну и соответственно задачи у них тоже разные.

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


Вроде таких статей и нету. Но вот база.

Идея stages payloads на основе meterpreter --> rapid7.com/blog/post/2015/03/25/stageless-meterpreter-payloads/




А так смотри отчеты различных APT и тогда ты познаешь дзен.


Посмотреть вложение 89084



Посмотреть вложение 89085



Посмотреть вложение 89086






Посмотреть вложение 89090


Посмотреть вложение 89091


Посмотреть вложение 89092


Посмотреть вложение 89093


И как ты понимаешь идеальной цепочки не существует, цепочка заражения всегда меняется. Реализуй сначала свой вариант, потом попробуй его, затем измени его и так по кругу.
Благодарю. Однако, я ищу конкретный пример работы с2 стейджеров (например кобальтовского). Что например содержится внутри пейлоада stage 2, как устанавливает соединение с сервером stage1, как загружается и располагается в памяти этот самый пейлоад, какие структуры куда передаются и тд.
Я отписал на форум из за того, что в интернете нету полноценной информации об этом (почти все статьи посвящены описанию принципа шифрования трафика кобальта).
Есть ли какие то технические статьи, описывающие всю эту "внутрянку"?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Благодарю. Однако, я ищу конкретный пример работы с2 стейджеров (например кобальтовского). Что например содержится внутри пейлоада stage 2, как устанавливает соединение с сервером stage1, как загружается и располагается в памяти этот самый пейлоад, какие структуры куда передаются и тд.
Разве кобольт не сливали? Почему бы тебе просто не заглянуть под капот. Если интересно конкретно взаимодествие с сервером то можно смотреть анализы ботнетов, как бот взаимодествует с панелью управления. Потому, что все эти фреймворки для пост-эксплуатации это фикция ботнетов. Всё это взято оттуда...


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


Что касается конкретно с2с фреймворком, разница между ботнетом не большая имхо. В ботнете всё автоматизировано, когда в с2с фреймворках для пост-эксплуатации агент стейджер работает на основе команд, ну и взависимости от отданный команды выполняет\подгружает определенный модуль, как это делается в кобольте uac, priv итд.

Я тебе вроде норм статью скинул по реализации, это база. Тебе не надо зацикливаться конкретно, где описана реалиазация прям подробно, отталкивайся от идеи самого принципа, алгоритма реализации.

stages payloads на основе meterpreter --> rapid7.com/blog/post/2015/03/25/stageless-meterpreter-payloads/

Meterpreter
1. Запускает stage0 шелл-код, который коннектится с2с (reverse tcp)
<---- тут ты можешь реализовать свой протокол взаимодействия с с2с
2. Затем загружается основную полезная нагрузка stage1 (DLL)
3. stage0 загружает stage1 в память (Reflective DLL Injection) и передает ему управление DllMain
4. stage1 так же подгружает рефлективно еще 2 DLL



Ну и так далее..., посмотри чтоли исходники с2с фреймворков, метерпретера, кобольта, ковенант, эмперь итд

Если реализовать, то имхо только на основе метерпретера и дальше развивать уже функционал

Вот еще интересная инфа по типу с2с коммандных стейджеров
docs.metasploit.com/docs/development/developing-modules/guides/how-to-use-command-stagers.html

p.s. реквестую Quake3 и DildoFagins может чего подскажут тебе
 
Запускает stage0 шелл-код, который коннектится с2с (reverse tcp)
Затем загружается основную полезная нагрузка stage1 (DLL)
stage0 загружает stage1 в память (Reflective DLL Injection) и передает ему управление
stage1 так же подгружает рефлективно еще 2 DLL
Для чего столько шагов? Не вижу в этом никакого профита.
Основная задача stage0 - загрузить и запустить stage1 (ядро бота), нет смысла тут что-то переусложнять, скорее наоборот - чем проще, тем лучше. stage0 может быть реализована как угодно, т.к на этапе продумывания логики бота практически невозможно предугадать какие методы доставки будут использоваться (а они очень часто меняются) - если stage1 гвоздями прибита к stage0 - устанете переписывать код.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Для чего столько шагов? Не вижу в этом никакого профита.
Основная задача stage0 - загрузить и запустить stage1 (ядро бота), нет смысла тут что-то переусложнять, скорее наоборот - чем проще, тем лучше. stage0 может быть реализована как угодно, т.к на этапе продумывания логики бота практически невозможно предугадать какие методы доставки будут использоваться (а они очень часто меняются) - если stage1 гвоздями прибита к stage0 - устанете переписывать код.
Так это просто пример работы метепретера, самый простой и наглядный пример stages payloads. В случае метерпретера доставка идет через эксплойты.
 
Последнее редактирование:
Разве кобольт не сливали? Почему бы тебе просто не заглянуть под капот. Если интересно конкретно взаимодествие с сервером то можно смотреть анализы ботнетов, как бот взаимодествует с панелью управления. Потому, что все эти фреймворки для пост-эксплуатации это фикция ботнетов. Всё это взято оттуда...
Да, проходила инфа, что CobaltStrike слили. Но основной репозиторий GitHub от какого-то китайца, на который идут ссылки и где лежал якобы слив, уже мёртв, а других источников мне найти не удалось. Нужно именно для этих целей - взять исходники beacon и перекомпилить/переписать под определённую архитектуру. Разыскиваю уже пару месяцев. Если кто поделится слитыми сорцами кобы - буду сильно признателен.
 
Нет никакого четкого определения как именно должны выглядеть и что должны делать эти стейджи. Соответственно четкой статьи или мануала на эту тему тоже нет, есть лишь твоя фантазия, твой скилл и упоминания уже реализованных фантазий других авторов малварки. В общем и целом, как выше уже заметили, стейджами называют трансформацию кода, типа url->powershell->dll->.... Матрешка, каждый слой которой это отдельный стейдж.
 
Последнее редактирование:
Для чего столько шагов? Не вижу в этом никакого профита.
для того что бы обойти эвристический анализ, если ты тупо будешь форкать процесс и с него пытаться например дампить реест то тебя быстро убьют. Поэтому существуют техники которые позволяют отвязаться от родительского процесса и путем запутывающих цепочек действий по принципу LOLBAS уже запускать дамп. Эвристику обойти сложнее и важнее чем сигнатурный анализ, потому как сиги можно очень легко поменять перекомпиляцией или обфускацией.
 


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