Всем привет. Кто этим занимался? Есть ли какие наработки по созданию баз гаджетов для стандартных библиотек?
Пара скриптов для hex-редактора 010 Editor, дублируют функционал metasploit'a: FindOffset.1sc - для поиска смещения в файле где располагаюца нужные данные, типа если произошел переход по 41414141h и цепочка длинная из 41h, скрипт создаст уникальную последовательность типа: 41414141 41414142 и тд. для облегчения поиска в данных нужного смещения FindROP.1sc - для поиска последовательности команд в dll, exe по шаблону, расширямый скрипт на любой шаблон аналоги: findjmp.exe, msfpescan (metasploit) pop reg;pop eax;pop ebx;pop ecx;pop edx;pop esi;pop edi;pop esp;pop ebp;popa;popf pop [reg];pop [eax];pop [ebx];pop [ecx];pop [edx];pop [esi];pop [edi];pop [esp];pop [ebp] pop [reg+];pop [eax+];pop [ebx+];pop [ecx+];pop [edx+];pop [esi+];pop [edi+];pop [esp+];pop [ebp+] jmp reg;jmp eax;jmp ebx;jmp ecx;jmp edx;jmp esi;jmp edi;jmp esp;jmp ebp jmp [reg];jmp [eax];jmp [ebx];jmp [ecx];jmp [edx];jmp [esi];jmp [edi];jmp [esp];jmp [ebp] для байтового операнда jmp [reg+];jmp [eax+];jmp [ebx+];jmp [ecx+];jmp [edx+];jmp [esi+];jmp [edi+];jmp [esp+];jmp [ebp+] call reg;call eax;call ebx;call ecx;call edx;call esi;call edi;call esp;call ebp call [reg];call [eax];call [ebx];call [ecx];call [edx];call [esi];call [edi];call [esp];call [ebp] для байтового операнда call [reg+];call [eax+];call [ebx+];call [ecx+];call [edx+];call [esi+];call [edi+];call [esp+];call [ebp+] leave ret К примеру: pop reg;pop eax;call [reg+] нету поиска для: jmp [reg+reg] call [reg+reg] мнемоника не выводица
Подскажите, как использовать технику ROP если я могу записать данные не в стек? То есть я могу записать данные по произвольному адресу, но адрес стека мне не изместен. Могу сделать что-то типа CreateThread на любой адрес...
Вы бы объяснили подробнее механизм воздействия на жертву. А то как в кине "тут могу, тут не могу". Невозможно подсказать. ROP, если я правильно знаю, используется при уязвимости переполнение буфера. У вас другой случАй Уязвимость уже использована и сидит "вредитель".
valterg, сожалею, но могу лишь приближенно скачать, что имею возможность выполнить действия, аналогичные WriteProcessMemory и CreateRemoteThread (без OpenProcess и тд).... Вот и сижу думаю, как адаптировать эти возможности под ROP-технику...
test555 а зачем тогда вам роп вообще, если вы можете записать в память и запустить записанное как поток?
Потому что при выполнении этих инструкций вылазит исключение - DEP не дает выполнить этот участок кода, потому как он не помечен как EXECUTE. Потому мне и нужно сменить аттрибуты памяти (либо выделить новый регион)
test555 А ты вообще уверен, что ты можешь WriteProcessMemory делать? Может он тоже не выполняется. qqwe Надо читать так "могу вызвать CreateRemoteThread". Трудно помочь человеку, который не знает что он может :-(