Четверг, 25.04.2024, 12:17 Приветствую вас Гость | Группа "Гости" 
Меню сайта

Категории раздела
Вирусология [40]
Статьи о вирусах
Системные [1]
Работа с системой
Примеры [45]
Приёмы, функции, процедуры
Ceти [1]
Работа с интернет
Шуточные программы [5]
Пишем шуточные программки
Остальное [6]
Всё что не вошло

Популярные статьи

Недавние темы

Опрос
Каким браузером вы пользуетесь?

Всего ответов: 572

Главная » Статьи » Delphi » Вирусология

Пишем быстро простой бэкдор на основе idHTTPServer
Статья рассчитана на читателей, уже умеющих создавать на Дельфи приложения средней сложности, и освоивших работу с компонентами INDY, а особенно idHTTPServer в Дельфи, и прочитавших предыдущую статью «Простой веб-сервер на Дельфи».

ПО «RMUtilite» должно обладать следующими возможностями: работа без особого клиента – через http, авторизованный вход, возможность просмотра снимка экрана, возможность закрытия процессов, возможность создать бат-файл или выполнить команду, возможность создавать произвольно текстовые файлы (напр. для правки реестра, запуская их через бат), возможность скачки любого файла, перезагрузка компьютера, завершение своей работы.

Определимся с путём выполнения работы. Можно создать заданное приложение без участия формы, а следовательно с куда меньшим размером файла. Но это приведёт к увеличению исходного кода приложения, что естественно позволяет нам судить о немалом времени создания приложения. Т.к. мы будем создавать его «на лету», то примем идею с формой. Итак, начнём тогда с этого – с формы. Положим на неё, уже нам известный idHTTPServer. Укажем в нём следующее: Active -> true; AutoStartSessions -> true; DefaultPort -> 7890. От него нам понадобится событие [FONT=Courier New]IdHTTPServer1CommandGet[/FONT]. Ещё положим Timer1 с Interval -> 777. От таймера нужно будет событие OnTimer. У формы укажем: все BorderIcons -> false; Caption – как понравиться; Top,Left -> 5555 к примеру. На этом оформление приложения фактически завершено.

Теперь рассмотрим, что необходимо нам для обеспечения вышеописанных возможностей.

Работа через http. Обеспечиваем работой с событием [FONT=Courier New]IdHTTPServer1CommandGet[/FONT]. По нему предоставляется html-код на разные страницы управления с оформленными полями, кнопками и прочим по необходимости. Подробнее описано в статье «Простой веб-сервер на Дельфи».

Авторизованный вход. Осуществляется средствами idHTTPServer (procedure AuthFailed), также см. статью про веб-сервер.

Возможность просмотра снимка экрана. Это осуществимо (см. исходный код) посредством функции [FONT=Courier New]function CSR():[/FONT] TBitmap – получающей снимок экрана, далее [FONT=Courier New]function JPEG_C(input:TBitmap):TJPEGImage – перевод с компрессией в jpg и затем [FONT=Courier New]if (ARequestInfo.Document='/jpg.jpg') then[/FONT] отдача этого изображения.

Возможность закрытия процессов. Смотрим функции [FONT=Courier New]function ListProcesses():string;[/FONT] (возвращает список процессов) и [FONT=Courier New]function KillTask(ExeFileName: string): integer;[/FONT] (завершает выбранный процесс).

Возможность создать bat-файл или выполнить комманду. Создаём простой текстовик во временной директории с именем файла от function batfilename:string. Но главное – этот файл не просто запустить, а получить при этом результат его работы. Это поможет сделать функция его запуска: function [FONT=Courier New]Dos2Win(CmdLine:String):string[/FONT]. А для корректного вывода в html понадобится функция [FONT=Courier New]DisableHtmlTags(htmltagsstr:string):string[/FONT].

Возможность создавать произвольно текстовые файлы. Просто создаём текстовый файл с указанным текстом в указанном месте.

Возможность скачки любого файла. Прямо по событию [FONT=Courier New]Id HTTPServer1 CommandGet[/FONT] отправляем заданный файл в потоке [FONT=Courier New]AResponseInfo . ContentStream := TFileStream . Create (…)[/FONT].

Перезагрузка компьютера. Вынесено в отдельный модуль, вызов осуществляется как [FONT=Courier New]unit2.ForceRebootNT[/FONT].

Завершение своей работы. Реализация, как и в статье про веб-браузер – через [FONT=Courier New]Application.Terminate[/FONT] при проверке переменной по таймеру.

Итог. Или что мы получили в этом приложении (веб-структура):

 

Таким образом, на создание ПО потребовалось чуть более часа, с учётом того, что не было предварительной подготовки к этому, кроме как изучения создания веб-сервера на основе idHTTPServer, т.е. все нужные функции искались или создавались в процессе разработки. Уменьшить размер программы можно с помощью упаковщика UPX. Исправить пароль по умолчанию, равный apassword для пользователя admin можно изменив ресторатором в скомпилированной программе ресурс String №4072, строку 65147 на своё значение. При самостоятельной компиляции приложения – описано в исходных кодах.

Завершение.
При работе над ПО «RMUtilite» использовалась среда разработки Дельфи 7.0. Для придания «RMUtilite» завершённого вида использовался редактор ресурсов Restorator 3.51, упаковщик исполняемых файлов UPX 1.95. Весь код данного ПО, кроме автокода модулей Дельфи и некоторых функций был написан автором. Функции, код которых был взят из сторонних источников следующие: [FONT=Courier New]function Dos2Win(CmdLine:String):string; function ListProcesses():string; function KillTask(ExeFileName: string): integer[/FONT].

Данная статья и ПО были созданы в учебных целях, специально для forum.antichat.ru. ПО, несмотря на ограниченность его применения ввиду особенностей выполнения, вполне может быть применено практически. Но автор за любое применение данного ПО ответственности не несёт. Статью и исходные коды можно использовать абсолютно свободно, не забывая лишь про автора, ссылаясь на первоисточник.

Категория: Вирусология | Добавил: dolphin (11.08.2009)
Просмотров: 3759 | Комментарии: 1 | Рейтинг: 3.0/5

Всего комментариев: 1
avatar
1
Где первоисточник и, собственно, исходник??
avatar
Профиль


Логин:
Пароль:

Поиск

Наша кнопка
Вирусология, взгляд из Delphi

Статистика
Top.Mail.Ru Яндекс.Метрика Счетчик тИЦ и PR
Статистика материалов
Файлов: 454
Форум: 1165/8116
Коментариев: 768
Новостей: 29

Статистика пользователей
Всего: 332
За неделю: 1
Вчера: 0
Сегодня: 0
Всего онлайн: 1
Гостей: 1
Пользователей: 0

delphicode.ru © 2008 - 2024 Хостинг от uCoz