18.11.2014 Views

JIT SPRAY АНАЛИЗ TDSS - Xakep Online

JIT SPRAY АНАЛИЗ TDSS - Xakep Online

JIT SPRAY АНАЛИЗ TDSS - Xakep Online

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Та же память после выполнения <strong>JIT</strong>-кода. Теперь<br />

тут шеллкод из метасплойта<br />

Любой шеллкод из Metasploit подходит<br />

сдвига на каждые четыре байта копируемого шеллкода. Надо искать<br />

другой путь. Можно, например, заменить все сдвиги на одну<br />

операцию умножения. То есть 0x0000ABCD*0x10000=0xABCD0000.<br />

Значит, можно написать <strong>JIT</strong>-шеллкод, который заносит произвольные<br />

значения в регистры ECX и EAX, а потом копирует по адресу<br />

ECX значение EAX. Затем добавляем к ECX четыре байта и заносим<br />

в EAX следующую часть метасплойтовского шеллкода.<br />

ÀÂÒÎÌÀÒÈÇÀÖÈß<br />

Теперь пора написать генератор шеллкода, который согласно<br />

вышеупомянутому алгоритму будет генерить <strong>JIT</strong>-шеллкод. Начнем<br />

труд! В метасплойте генерируем шеллкод в формате Perl. Я выбрал<br />

запуск калькулятора, без всяких кодировок шеллкода. Нам это ни<br />

к чему, во-первых, потому что <strong>JIT</strong>-шеллкод и так неслабо перекодирует<br />

оригинальный шеллкод — ни один антивирус не узнает.<br />

Во-вторых, размер кода меньше. Итак, есть шеллкод в формате<br />

Perl, который мы запихнем в переменную $shellcode. Зададим<br />

старшие байты страницы, куда будем копировать этот шеллкод.<br />

Я выбрал 0x080A0000. Так как младшие байты нас не интересуют,<br />

задаю только старшие:<br />

#Address with RWX - place for shellcode<br />

$addr="\x08\x0A"; #0x080A0000<br />

Поскольку весь шеллкод копируем по четыре байта, необходимо выровнять<br />

его, для этого считаем размер шеллкода и делим с остатком на<br />

4. Если остаток 1, 2 или 3, то добавляем к концу шеллкода мусора:<br />

$len=length($shellcode);<br />

$add=$len % 4;<br />

for($i=0;$i

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!