Результаты поверхностного исследования пакета "удаленного администрирования" NetBus.

После появления в свободном использовании всем известного пакета BackOrifice, появилось огромное количество публикаций, посвящённых этому пакету. Но надо признать, что, во-первых - идея подобного software не нова и давно известна под термином BackDoor, а во-вторых - существует более "древний" и, как показывает практика, не менее "популярный" пакет под названием NetBus. Именно ему и посвящено данное исследование. Необходимо заметить, что оно не претендует на полноту и оставляет огромное поле для деятельности. Здесь я попробую описать некоторые возможности пакета NetBus (версии 1.60), а также некоторые "трюки" связанные с ним.

Сначала рассмотрим оригинальный пакет. Его автор - некий Carl-Fredrik Neikter, и, по его утверждению, пакет создан для безобидного подшучивания над друзьями.

В пакет входят 3 файла:

  1. Patch.exe - Cервер
  2. NetBus.exe - Клиент
  3. NetBus.rtf - немного документации (прилагается HTML-вариант)

 

Начнем с Patch.exe. Эта программа при запуске копирует себя в Windows-директорию, затем добавляет в registry-ключ HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Run "значение" Patch, содержащее путь к копии Сервера в Windows-директории. Необходимо заметить, что имя "значения" зависит от имени исполняемого файла Сервера. После запуска в Windows-директории можно обнаружить файл KeyHook.dll, который создан Сервером для соответствующих целей и содержимое которого хранится в ресурсах Сервера. Далее Сервер открывает socket в режиме ожидания на порту 12345 и ждет подключения Клиента. После подключения Клиента, Сервер предоставляет некоторый набор функций, описанный в NetBus.rtf, из которых важнейшими, на мой взгляд, являются "Перекачка файлов в оба конца" и "Запуск программы на компьютере Сервера". Обратите внимание на порт 12346, используемый для служебных целей.

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

Рассмотрим NetBus.exe. Эта программа-клиент обеспечивает достаточно удобный интерфейс к удаленному Серверу. Достаточно полное описание её функциональности находится в NetBus.rtf (обратите внимание на возможность сканирования).

NetBus клиент

 

Если вы дочитали до этого места, то рекомендуется прочитать оригинальную документацию NetBus.rtf (или прилагаемый HTML-вариант). "Поиграйте" с пакетом на локальном компьютере - например попробуйте поставить пароль на сервер.

А теперь к "трюкам"... Самое главное и полезное в этом исследовании - это возможность обойти пароль на удаленном Сервере. Рассмотрим эту возможность:

  1. Запустим Сервер.
  2. Подключимся к нему с помощью Клиента.
  3. Поставим на Сервер пароль.
  4. Теперь отсоединимся и подключимся вновь - Клиент спросит вас на предмет пароля.
  5. Забудьте пароль....
  6. Запустите TELNET на соответствующий адрес (localhost) на порт 12345 - видим версию Сервера
  7. Набираем "Password;1;" и жмём <Enter> - видим "Access;1"
  8. Набираем "ServerPwd;NewPassword" и жмём <Enter> - теперь наш пароль - NewPassword.
Вместо NewPassword можно использовать любой другой пароль - Сервер поместит его в Registry, как упоминалось выше.

 

Одним из "слабых" мест NetBus является использование фиксированных портов. Это легко обходится изменением в соответствующем месте исполняемого файла Сервера и Клиента. Точно также можно изменить команду "Password" в Сервере и Клиенте, что может быть признано более надежной защитой, чем просто установка пароля.

Допустим вы изменили порты и некоторые команды. Но при следующем запуске оригинального NetBus сервера, ваш, измененный, Сервер будет замещен оригинальным. Это происходит потому, что Сервер использует Memory-Mapped файл для определения предыдущего instance. Имя этого файла определяется конкатенацией 2-х строк: NETBUS и _SHARE. Если изменить одну из них или обе, то ваш Сервер не будет замещен оригиналом и продолжит работу параллельно, хотя могут возникнуть проблемы с перехватом нажатия клавиш.

Для вас могут оказаться полезными пакеты, приложенные к данному исследованию.
NetBPort - позволяет запускать NetBus клиент для Сервера, использующего любые порты (исходные тексты прилагаются; механизмы, использованые в NetBPort, описаны более подробно здесь).

NetBPort example

NetRus - клон, использующий порты 11111/11112 и измененные команду "Password" и имя Memory-Mapped файла, что позволяет NetRus работать совместно с оригинальным NetBus.

 

P.S. Эти материалы публикуются ТОЛЬКО в целях обучения. Автор не несет никакой ответственности за любой ущерб, нанесенный в результате использования информации и/или инструментов, представленных здесь.

P.P.S. Коллеги! Давайте уважать друг друга и не мучить "братьев наших меньших"...

Good Luck...

Даниил Шаламов

Дальше


Образование на Куличках