ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Пишем быстро простой бэкдор на основе idHTTPServer
  #1  
Старый 02.04.2007, 02:08
Аватар для begin_end
begin_end
Members of Antichat - Level 5
Регистрация: 04.01.2007
Сообщений: 176
Провел на форуме:
17964969

Репутация: 1362
По умолчанию Пишем быстро простой бэкдор на основе idHTTPServer

Целью данной статьи было ещё раз показать возможности idHTPPServer на практике, а также привести пример небольшой утилиты для удалённого администрирования с наиболее основными, характерными для такого рода программ, функциями. Всё предлагается с готовым примером приложения и прокомментированными исходными кодами. Скачать можно здесь.

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пишем свой BIOS для x86 компьютеров OverClocker Схемы и программы 1 06.03.2005 11:21
Пишем MailBomber на перле foreva Чужие Статьи 3 08.02.2005 07:13



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ