Пока нет ничего другого, возьмем тз эля
что то типа тз
из того что я понял, получается вам надо сделать 3 вещи, начнем с простого
1 базонезависимый пе лоадер, такое в принципе если покопаться есть у каждого
2 криптор по типу который описывал Left4Dead, а именно берем образ того что криптовать, присобачиваем к нему пе лоадер и этот буфер размазывается на 100500 всяких операций, которые в итоге соберут его в кучу и передадут управление, сделать это проще всего скриптом, создав сорец а потом собрав его.
3 ну и лоадер, тут уже конечно надо бы думать что да как лучше, но раз у нас есть уже есть ( будет вернее, пункт 2 ) скрипт который размазывает стаб на черт пойми что, то лучше всего имхо сделать дропер такого плана:
дропер собирает какую то инфу о системе, отправляет её на на сервер, сервер на основание этого генерит два файла, первый криптоконтейнер, который по сути и есть лоадер, только по шифрованный а собственно его загрузчик экзе или длл ( в зависимости от того как собрались стартовать ), которая на основание железа декриптует крипто контейнер. все данные по которым лежат билды так же генерятся рандомно, раз в период, не надо делать это каждый раз.
- теперь объясню зачем это надо, есть набор, стаб загрузчик ( который на основание железа декриптует криптоконтейнер ), с путями по которым располагается он сам и криптоконтейнер, да и вообще все возможные имена ( мутексы, пайпы, секции ), одинаковы для всей это группы ( набора ), все это меняется раз в какое то время и не от чего не зависит, тогда что бы аверы поймали новое поколение им надо поймать и распотрошить стартер. если же они будут генерится от каких то параметров системы, то аверы смогут сделать уникальный киллер для вашего зверя, если же их менять слишком часто то аверы задумаются о более надежной поимке вашего зверя и начнут думать а это не надо, пусть лучше ловят по мд5, и путям которые мы им даем.
- зачем отдельно держать крипто контейнер, ну во первых криптовать полезно все понимают, на другой машине его не запустить, да и действий больше, надо поймать дропер распотрошить, поймать где криптоконтейнер и потом уже распотрошите его на основание данных о машине. к тому же если надо обновить бота, то меняется только контейнер, стартер никто не трогает.
- по хорошему, стоит задуматься о своем формате, в котором будет хранится бот в крипто контейнере, тот же пе по сути, только выкинуть все лишнее, что бы пришлось дополнительно морочиться дабы нормально его пореверсить. такое тоже наверное каждый писал
по поводу авто старта екзе или длл, тут смотря откуда идет старт, если всякие лса и апплиб, то длл придется делать х64. ну а так какая разница как стартовать все равно все это в умелы руках спалится, достаточно взять Autoruns и посмотреть, а у пользователя не подкованного хоть в рег ран его ничего не смутит, к тому же лоадер все равно будет сразу же убегать в другой процесс.
ну и быстрый алго работы:
- убегает в другой процесса, желательно в svchost, там вроде живет днс служба
- от туда начинает генерить домены от балды и резольвить их от корневых днс, днс гугла ну и если не сработало то от дефолтных, надо т.к. у провов бывают херовые днски. но делать это можно только из свцхоста, есть подозрения что только ему разрешено без лишних вопросов делать днс запросы
- найдя живой домен, стучится по нему, получает в ответ какие то данные подписанные ключем ботмастера, если все ок считает домен доверенным и в дальнейшем начинает работ с него пока он не сдохнет, в противном случае генерит дальше
- ну а потом уже шлет туда сюда всякие данные, все передается через свой протокол ( в том числе и экзе, дабы их не поймали провы по дороге ), желательно подумать над ним сразу, дабы смочь расширять его ( например xml ), а то плагины всякие потом захотите или команд добавить при смене версий.
лучше не парится и юзать устоявшиеся вещи типа https, xml, bzip, rsa, aes и не выдумывать свои костыли, как то так
ах ну да тут еще же самый главный дропер который собирает данные о машине и получает инструкции, тут можно сделать в принципе, что угодно легкое без выкрутасов, на временных доменах, все равно на это всем плевать, главное сохранить ботнет.
p.s. по мере поступления новых идей, а также формированию уже полноценного ТЗ с конкретными пунктами буду обновлять существущее ТЗ новым.
p.s.s. поехали!)
что то типа тз
из того что я понял, получается вам надо сделать 3 вещи, начнем с простого
1 базонезависимый пе лоадер, такое в принципе если покопаться есть у каждого
2 криптор по типу который описывал Left4Dead, а именно берем образ того что криптовать, присобачиваем к нему пе лоадер и этот буфер размазывается на 100500 всяких операций, которые в итоге соберут его в кучу и передадут управление, сделать это проще всего скриптом, создав сорец а потом собрав его.
3 ну и лоадер, тут уже конечно надо бы думать что да как лучше, но раз у нас есть уже есть ( будет вернее, пункт 2 ) скрипт который размазывает стаб на черт пойми что, то лучше всего имхо сделать дропер такого плана:
дропер собирает какую то инфу о системе, отправляет её на на сервер, сервер на основание этого генерит два файла, первый криптоконтейнер, который по сути и есть лоадер, только по шифрованный а собственно его загрузчик экзе или длл ( в зависимости от того как собрались стартовать ), которая на основание железа декриптует крипто контейнер. все данные по которым лежат билды так же генерятся рандомно, раз в период, не надо делать это каждый раз.
- теперь объясню зачем это надо, есть набор, стаб загрузчик ( который на основание железа декриптует криптоконтейнер ), с путями по которым располагается он сам и криптоконтейнер, да и вообще все возможные имена ( мутексы, пайпы, секции ), одинаковы для всей это группы ( набора ), все это меняется раз в какое то время и не от чего не зависит, тогда что бы аверы поймали новое поколение им надо поймать и распотрошить стартер. если же они будут генерится от каких то параметров системы, то аверы смогут сделать уникальный киллер для вашего зверя, если же их менять слишком часто то аверы задумаются о более надежной поимке вашего зверя и начнут думать а это не надо, пусть лучше ловят по мд5, и путям которые мы им даем.
- зачем отдельно держать крипто контейнер, ну во первых криптовать полезно все понимают, на другой машине его не запустить, да и действий больше, надо поймать дропер распотрошить, поймать где криптоконтейнер и потом уже распотрошите его на основание данных о машине. к тому же если надо обновить бота, то меняется только контейнер, стартер никто не трогает.
- по хорошему, стоит задуматься о своем формате, в котором будет хранится бот в крипто контейнере, тот же пе по сути, только выкинуть все лишнее, что бы пришлось дополнительно морочиться дабы нормально его пореверсить. такое тоже наверное каждый писал
по поводу авто старта екзе или длл, тут смотря откуда идет старт, если всякие лса и апплиб, то длл придется делать х64. ну а так какая разница как стартовать все равно все это в умелы руках спалится, достаточно взять Autoruns и посмотреть, а у пользователя не подкованного хоть в рег ран его ничего не смутит, к тому же лоадер все равно будет сразу же убегать в другой процесс.
ну и быстрый алго работы:
- убегает в другой процесса, желательно в svchost, там вроде живет днс служба
- от туда начинает генерить домены от балды и резольвить их от корневых днс, днс гугла ну и если не сработало то от дефолтных, надо т.к. у провов бывают херовые днски. но делать это можно только из свцхоста, есть подозрения что только ему разрешено без лишних вопросов делать днс запросы
- найдя живой домен, стучится по нему, получает в ответ какие то данные подписанные ключем ботмастера, если все ок считает домен доверенным и в дальнейшем начинает работ с него пока он не сдохнет, в противном случае генерит дальше
- ну а потом уже шлет туда сюда всякие данные, все передается через свой протокол ( в том числе и экзе, дабы их не поймали провы по дороге ), желательно подумать над ним сразу, дабы смочь расширять его ( например xml ), а то плагины всякие потом захотите или команд добавить при смене версий.
лучше не парится и юзать устоявшиеся вещи типа https, xml, bzip, rsa, aes и не выдумывать свои костыли, как то так
ах ну да тут еще же самый главный дропер который собирает данные о машине и получает инструкции, тут можно сделать в принципе, что угодно легкое без выкрутасов, на временных доменах, все равно на это всем плевать, главное сохранить ботнет.
p.s. по мере поступления новых идей, а также формированию уже полноценного ТЗ с конкретными пунктами буду обновлять существущее ТЗ новым.
p.s.s. поехали!)