Эффективное протроянивание, или собираем свой ботнет Всем привет, с Вами KaeraK, и моя первая «статья» Сегодня, я бы хотел с Вами поделится своими мыслями, о том, как можно весьма "беспалевно" распространить малварь среди пользователей. Этот метод хорош тем, что у нас получается не тупая склейка с извлечением в Temp, а весьма аккуратный метод, который в плане детекта со стороны АВ продержится очень долго. Он основан на скрытой установке своего сертификата в систему, и подписи им нашего бота (и не только, но этот пункт основной). Приятнее же смотреть свойства бота и видеть: И так приступим! Алгоритм действий: Настройка бота, установка админки на хост. Создание сертификата, и подпись бота, подготовка к установке сертификата в систему. Обработка программы стороннего разработчика. Сборка инсталятора. Для этого нам понадобятся следующие вещи: Программа для создания инсталяторов (я буду приводить пример на Smart Install Maker). Криптор. "Набор" для создания цифровой подписи. Для удобства виртуальная машина (нам потребуется "снять" одну запись в реестре, можно использовать Regmon... но опишу как удобнее мне). OllyDbg. Любая программа стороннего разработчика (берите инсталлеры, для их распаковки используйте Universal Extractor) И сам бот/троян. Настройка бота, установка админки на хост. Не буду обьяснять на конкретном примере, так как у каждого свои нравы по выбору бота, но дам пару "советов" по этому этапу: Используйте утилиту OgreGUI дабы заменить стандартные строки бота (например имя, под которым бот пишется в реестр, или копируется в другую дирректорию). Заменять следует на слова "update" либо что-то в этом роде (почему так: при установке программы стороннего разработчика, "бот будет выступать в роли программы обновления" этой самой программы. И со стороны СИ (Социальной Инженерии), даже если сработает фаервол, то покажет процесс "Update", юзверь заглянет в ту дирректорию, а у нас то бот подписан А если еще с иконкой (что-то вроде ), и версией, то вообще накладно получается, юзверь подумает "ага, значит в инет лезет дабы обновится, ну ок, пропустим его" Если имеется админка, и Вы любитель бесплатных хостов, также стоит сделать "профилактику", и придерживатся таких мер: Ставим любой движок, будь то WordPress или vBulletin. Если имеется гейт, куда стучится бот, то его содержимое суем в начало index.php движка, со стороны будет выглядеть как обычное посещение сайта - лучше, ежели будет активность в дирректории хоста www.pupeikin.com/adm/gate.php например.. (опытный админ конечно и наш случай грохнет, но ботов 100-200 он "выдержит"). Во всех скриптах почистите лишние слова (как обычно бывает "Botnet Center", "Stealer" и пр.). Также можно зашифровать содержимое каждого файла base64 кодировкой)). Если Вы не заходите в админку довольно часто, тогда в корень САЙТА ставьте .htaccess файл с содержимым (по необходимости убираете, это не так уж и трудно): Код: deny from all (убережет от посторонних глаз, и будет "отбивать" запросы бота - минус лишнее внимание со стороны админов). Про VPN/Socks5 напоминать думаю не стоит. Создание сертификата, и подпись бота, подготовка к установке сертификата в систему. "Вдохновление" с сертификатами было получено с античата и хабра Создаем bat-файл с следующим содержимым: Код: makecert -n "CN=Morgan Software Corporation" -a sha1 -eku 1.3.6.1.5.5.7.3.3 -r -sv sertifikat.pvk sertifikat.cer -ss Root -sr localMachine cert2spc.exe sertifikat.cer sertifikat.spc PVKIMPRT.EXE -pfx sertifikat.spc sertifikat.pvk signtool.exe sign /v /f sertifikat.pfx /p 1111 /t http://timestamp.verisign.com/scripts/timestamp.dll /d "Generic Host Process for Win32 Services" /v bot.exe pause И ложим рядом с ним нашего бота, bot.exe, и сами программы, которые необходимы для создания сертификата и подписи им бота (Cert2Spc.exe, makecert.exe, PVKIMPRT.exe, signtool.exe) Запускаем батник... Вводим любой пароль (в данном случае он ВСЮДУ будет одинаковым - 1111) и нажимаем ОК. Следующие два шага так само: Далее у нас появляется окошко, где ставим точку напротив "Да, экспортировать закрытый ключ", и жмем "Далее", "Далее", вводим ПАРОЛЬ (1111), и в корне сохраняем файл с именем "sertifikat.pfx", в конце жмем "Готово", и вуаля: Наш бот подписан Далее вкратце теория: все сертификаты, хранятся в реестре (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\) по группам (Личные; Другие пользователи; Промежуточные центры сертификации; Доверенные корневые центры сертификации; Доверенные издатели; Издатели, не имеющие доверия) И каждый сертификат является неким бинарным значением Цель: нам нужно установить СВОЙ сертификат (будем ставить в AuthRoot) и экспортировать в *reg файл. Для этого будем использовать утилиту certmgr.exe. Создаем батник: Код: certmgr.exe -add -c sertifikat.cer -s -r localMachine AuthRoot И ложим рядом с sertifikat.cer и программой certmgr.exe Может у меня и глупый метод, но под руками не было никакого монитора реестра, а виртуалка была, вот и решил выкрутится..: удалить ВСЕ ветки В SystemCertificates. Удалили? Ок, теперь запускаем вышесозданный батник, и обновляем реестр, опа, добавился наш сертификат Далее мы его экспортируем в *reg файл.. этот этап мы успешно прошли! Обработка программы стороннего разработчика. (Если у нас есть инсталятор с програмой, то распаковываем его с помощью программы Universal Extractor) Далее, по нашей задумке каково: исполняемый файл программы стороннего разработчика, при запуске, должен запускать нашего бота (а по идее программу для обновления ее самой, СИ ), как это реализовать? Да запросто!) (для "тренировки, советую почитать статью Как внедрить код в exe-файл (Перевод статьи Iman Karim)) Наш метод очень схож с тем, что описан в статье, только использовать мы будем совершенно другую функцию, а именно WinExec (она находится в kernel32.dll) Во избежании тупого копипаста, и развития собственных навыков в работе с OllyDbg, просто процитирую и обьясню сам код) Синтаксис функции таков: Код: UINT WINAPI WinExec( __in LPCSTR lpCmdLine, __in UINT uCmdShow ); В OllyDbg вводится так: Код: PUSH 1 //1 (показывать окно) или 0 (фоновый режим) PUSH ***** //указываем на строку с названием файла (желательно файл с названием Update.exe) CALL WinExec //вызываем функцию Ниже визуальное представление того, что я написал Copy to executable => All modifications... На этом этапе все Сборка инсталятора. Запускаем Smart Install Maker (можно Advanced Installer, InstallShield и т.д... но Smart попроще в работе) Приближенно копируем информацию (версия, иконка) с оригинального инсталятора, импортируем все файлы (не забываем про нашего бота в корне с программой стороннего разработчика, которую мы "обработали"). Переходим на вкладку "Требования": видал множество лоадеров/ботов которые написаны на C#, и соответственноо требуют фреймворк, можем указать галочку "Проверять версию .NET Framework" (заставим нашего юзера, скачать фреймворк, как раз под нашего бота ) А теперь, наш немаловажный понт, вкладка "Реестр" Просто импортируем наш, *reg файл, который "инсталирует" наш сертификат. На этом собственно и все, можно смело брать штурмом торенты! ivo: "Набор" для создания цифровой подписи + ресурсы Пароль на архив: xaker.name © KaeraK и Xaker.Name