|

Плохие парни любят утку
Xakep, номер #019, стр. 019-024-2
Была идея создать коммерческую версию, но хреновая интеграция города Барнаула в мировую экономику заставила отказаться от этого. Возможно, неплохое средство удаленного администрирования получилось бы с гораздо меньшей направленностью в сторону троянства, хотя и сейчас использовать Donald Dick в серьезных целях очень удобно.
Укажите ряд особенностей вашей программы, те, которые по вашему мнению будут наиболее интересны и актуальны?
Мы всегда старались идти по своему пути, поэтому оригинальных особенностей, отличающих Donald Dick от других троянов/шпионов, немало (пожалуй, больше, чем у всех остальных).
Во-первых, мультипротокольность. TCP/IP - это, конечно, хорошо и удобно, и он используется сейчас даже в локальных сетях, не имеющих связи с внешним миром, но Novell еще жив, и есть пока места, где он работает на IPX/SPX, поэтому мы сделали поддержку как TCP, так и SPX (в принципе, ядро Donald Dick позволяет легко дописать поддержку любого другого сетевого протокола, но необходимости в этом не возникало). Кроме того, для TCP/IP существуют персональные файрволы, мониторы портов и прочие средства защиты от ненужных коннектов, чего не скажешь о SPX.
Во-вторых, мы много внимания уделяли антивирусам (как и они нам). Еще в пору использования нами NetBus некоторые продвинутые пользователи поняли, где порылась собака и в каком разделе реестра зарыт корень их проблем. Поэтому первое, от чего мы отказались - это стандартные способы автозагрузки серверной части (раздел \RUN реестра, инишка, подмена одного из других автозагружаемых файлов). Для Windows 95/98 мы написали свой VXD, который и отвечает за загрузку шпиона (а заодно выполняет ряд функций, которые гораздо проще реализовать именно через драйвер). В Windows NT/2000 пришлось пойти другим путем. В раздел реестра Session Manager\BootExecute при установке сервера прописывается небольшой загрузчик. Все что он делает - это добавляет при загрузке операционной системы сервис Donald Dick в реестр. А сам сервис после запуска первым делом убирает себя из реестра. И так при каждой перезагрузке. Таким образом при работе никаких посторонних сервисов в реестре не обнаруживается. Кстати, описанные методы действительно хорошо сработали, от писем с вопросом, куда прописывается Donald Dick и как его убрать, мы устали. И различные мониторы, следящие за критическими участками реестра (например, Jammer), тоже не протестовали против установки сервера Утенка на компьютер. Сейчас мы нашли еще несколько интересных способов автозагрузки, но их мы будем применять уже в Donald Dick 2.
Раз уж я затронул вопросы борьбы с антивирусами, то нельзя не сказать и о нашей технологии SmartMorph (полиморфизм плюс "размазывание" загрузочного кода). Генератор каждый раз формирует уникальный файл установки сервера. При этом сам рабочий файл шифруется случайным ключом и добавляется к загрузчику в виде ресурса вместе со случайным количеством "мусорных" байт. Код загрузчика состоит из двух частей: шифрованный по той же схеме и тем же ключом загрузчик PE-файлов и декриптор. Декриптор дешифрует PE-загрузчик и рабочий файл, зашифрованный и прицепленный в виде ресурса, который затем запускается PE-загрузчиком. Ключ для расшифровки случайный и лежит в коде декриптора как непосредственный операнд инструкции. Уникальность декриптора достигается следующим способом. Весь его код лежит в генераторе в виде массива отдельных процессорных команд. И при генерации эти команды перемешиваются с "посторонними", естественно так, чтобы не нарушилась работоспособность. Напоследок, экзешник линкуется каждый раз немножко по-разному, с добавлением лишних импортируемых функций, ресурсов, перемещений и т.п. Процесс такой генерации проходит в две итерации. На первой стадии генератор формирует уникальный установочный файл, который подсовывается жертве. А при запуске установочного файла у жертвы происходит аналогичная генерация уже всех рабочих файлов серверной части (тоже уникальных).
Назад на стр. 019-024-1 Содержание Вперед на стр. 019-024-3
|