ТЗ по Dloader'у

demien

(L2) cache
Пользователь
Регистрация
29.09.2008
Сообщения
492
Реакции
14
Пока нет ничего другого, возьмем тз эля

что то типа тз

из того что я понял, получается вам надо сделать 3 вещи, начнем с простого
1 базонезависимый пе лоадер, такое в принципе если покопаться есть у каждого
2 криптор по типу который описывал Left4Dead, а именно берем образ того что криптовать, присобачиваем к нему пе лоадер и этот буфер размазывается на 100500 всяких операций, которые в итоге соберут его в кучу и передадут управление, сделать это проще всего скриптом, создав сорец а потом собрав его.
3 ну и лоадер, тут уже конечно надо бы думать что да как лучше, но раз у нас есть уже есть ( будет вернее, пункт 2 ) скрипт который размазывает стаб на черт пойми что, то лучше всего имхо сделать дропер такого плана:

дропер собирает какую то инфу о системе, отправляет её на на сервер, сервер на основание этого генерит два файла, первый криптоконтейнер, который по сути и есть лоадер, только по шифрованный а собственно его загрузчик экзе или длл ( в зависимости от того как собрались стартовать ), которая на основание железа декриптует крипто контейнер. все данные по которым лежат билды так же генерятся рандомно, раз в период, не надо делать это каждый раз.
- теперь объясню зачем это надо, есть набор, стаб загрузчик ( который на основание железа декриптует криптоконтейнер ), с путями по которым располагается он сам и криптоконтейнер, да и вообще все возможные имена ( мутексы, пайпы, секции ), одинаковы для всей это группы ( набора ), все это меняется раз в какое то время и не от чего не зависит, тогда что бы аверы поймали новое поколение им надо поймать и распотрошить стартер. если же они будут генерится от каких то параметров системы, то аверы смогут сделать уникальный киллер для вашего зверя, если же их менять слишком часто то аверы задумаются о более надежной поимке вашего зверя и начнут думать а это не надо, пусть лучше ловят по мд5, и путям которые мы им даем.
- зачем отдельно держать крипто контейнер, ну во первых криптовать полезно все понимают, на другой машине его не запустить, да и действий больше, надо поймать дропер распотрошить, поймать где криптоконтейнер и потом уже распотрошите его на основание данных о машине. к тому же если надо обновить бота, то меняется только контейнер, стартер никто не трогает.
- по хорошему, стоит задуматься о своем формате, в котором будет хранится бот в крипто контейнере, тот же пе по сути, только выкинуть все лишнее, что бы пришлось дополнительно морочиться дабы нормально его пореверсить. такое тоже наверное каждый писал

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

ну и быстрый алго работы:
- убегает в другой процесса, желательно в svchost, там вроде живет днс служба
- от туда начинает генерить домены от балды и резольвить их от корневых днс, днс гугла ну и если не сработало то от дефолтных, надо т.к. у провов бывают херовые днски. но делать это можно только из свцхоста, есть подозрения что только ему разрешено без лишних вопросов делать днс запросы
- найдя живой домен, стучится по нему, получает в ответ какие то данные подписанные ключем ботмастера, если все ок считает домен доверенным и в дальнейшем начинает работ с него пока он не сдохнет, в противном случае генерит дальше
- ну а потом уже шлет туда сюда всякие данные, все передается через свой протокол ( в том числе и экзе, дабы их не поймали провы по дороге ), желательно подумать над ним сразу, дабы смочь расширять его ( например xml ), а то плагины всякие потом захотите или команд добавить при смене версий.

лучше не парится и юзать устоявшиеся вещи типа https, xml, bzip, rsa, aes и не выдумывать свои костыли, как то так

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

p.s. по мере поступления новых идей, а также формированию уже полноценного ТЗ с конкретными пунктами буду обновлять существущее ТЗ новым.

p.s.s. поехали!)
 
- убегает в другой процесса, желательно в svchost, там вроде живет днс служба
нельзя так просто взять и заинжектится в уже работающий сервис под виндовс семь, коих сейчас примерно половина в трафе. как вариант сейчас можно инжектить в свежесозданный svchost/wuauclt/msiexec. они доверенные у большинства аверов по дефолту.

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

все передается через свой протокол ( в том числе и экзе, дабы их не поймали провы по дороге )
это лишнее, задача нормального ботмастера/боткодера максимально расслабить сервер с админкой, боту от сервера достаточно только получить линк, _но не в коем случае_ прогружаемый ексе не должен выдаваться сервером! это лишняя, никому не нужная нагрузка. если есть желание спрятать ексе в трафе можно просто завести свой протокол для таких случаев, в андромеде любой прогружаемый элемент может быть зашифрован например и бот сам шарит о том что ему дали на завтрак, обед или ужин. кодесом также могу заделиться если потребуется.
 
нельзя так просто взять и заинжектится в уже работающий сервис под виндовс семь, коих сейчас примерно половина в трафе. как вариант сейчас можно инжектить в свежесозданный svchost/wuauclt/msiexec. они доверенные у большинства аверов по дефолту.

т.е. нужно создавать новый процесс в суспендид модэ, потом через SetThreadContext инжектить код туда и дале ResumeThread?

не вариант ли запилить базанезависимый код аля шеллкод и его уже через CreateRemoteThread инжектить в запущенный процесс?

это лишнее, задача нормального ботмастера/боткодера максимально расслабить сервер с админкой, боту от сервера достаточно только получить линк

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


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