Проверка объема буфера

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by GivioN, 16 Mar 2009.

  1. GivioN

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

    Joined:
    30 Mar 2008
    Messages:
    45
    Likes Received:
    10
    Reputations:
    0
    Вобщем пишу сплоит, который
    должен отправлять специально сформулированые пакеты с нулбайтовым содержанием кода на сервис 135 порта для винды сп2, главное нужно подсчитать объем этих пакетов, что бы точно забить буфер , потом нужно будет сделать так что бы после переполнения буфера, отправлять пакеты шел кода которые попадут в стек, код в стеке выполнится и запустит калькулятор.
    Проблема в том, что я не могу угадать объем нул байтового кода для буфера есть идея сделать проверку на заполнения буфера, только как именно, понять не могу.
     
  2. Flame of Soul

    Flame of Soul Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    185
    Likes Received:
    146
    Reputations:
    45
    Глупый вопрос конечно, а в какой функции уязвимость? Можно и в ПМ. Или Вы хотите просто удаленно посылать пакеты?)) Простите, но у меня смутное подозрение что Вы впервые пишите эксплойт для взлома удаленной системы.

    Позвольте я поясню свои выводы:
    если Вы нашли функцию, или используете одну из известных ранее в которых есть уязвимость, то посмотрите примеры уже готовой реализации. Но как я поняла, Вы пытаетесь сами переполнить буфер. (выражение не корректно).

    Для того чтобы его переполнить, он должен где-то существовать и при том не корректно обрабатыватся. То есть на удаленной системе должна быть некая функция, которая принимает данные в буфер, некорректно их обрабатывает, то любые данные, длина которых превышает размер выделенного для их хранения буфера, будут просто записаны поверх того, что находилось после буфера. Если в дальнейшем программа передаст управление в эту область памяти, то есть исполнит находящийся в этой области памяти машинный код, то злоумышленник может вставить в неё инструкции на машинном языке, которые будут выполнять любые действия с привилегиями суперпользователя — добавлять и удалять учётные записи пользователей, изменять пароли, изменять или удалять любые файлы и т. д.

    И собственно пожалуйста уточните на каком языке вы пишите, хотя я подразумеваю что это наверное с++.