Как узнать, сколько NOP использовать для выполнения shllcode - PullRequest
0 голосов
/ 07 мая 2020

Мне нужна помощь с переполнением буфера, кто-нибудь, пожалуйста, проясните эти вопросы. Вопрос 1: зачем нужно использовать строку «220» s.send("220 "+buffer+"\r\n") Вопрос 2: как мне узнать, сколько NOP использовать для выполнения моего шеллкода, я знаю, что мне нужно вычесть позицию шаблона из размера шеллкода и 4 Пример: шаблон = 200 шелл-код = 368 EIP = 4 200 - 368 - 4 = -172 это даст отрицательное число, не знаю, что делать. как я понимаю этот шаблон перед шеллкодом Вопрос 3: Как сгенерировать небольшой поэтапный / бесступенчатый обратный / связывающий шелл-код для windows x86 Спасибо,

Изменить: ответ: Для вопроса 1) , вам не обязательно использовать строку «220», вы можете использовать любую, например «A» или «z» или что-то еще. Это просто как обивка На вопрос 2) Я бы сказал, что это какой-то большой шелл-код !! Возможно, попробуйте сократить размер шелл-кода. Опять же, nops похожи на заполнение. Таким образом, вы можете заменить nops (0x90) на A (0x41) при их использовании для переполнения буфера. Например, с 2), у меня есть это простое двоичное переполнение использовать

patternPosition = "\x42"*989
jmpAddres = p32(0x7636F7DF)
exploit = patternPosition + jmpAddres
exploit += '\x90'*(989 - len(shellcode) -4) #NOPs calculation
exploit += shellcode

По EuanB26

...