История изменений
Исправление EXL, (текущая версия) :
Помнится мне в начале нулевых на срыве стека в embedded-мобилках было сделана огромная куча эксплоитов. К примеру, взлом RSA. Точнее как, вот инженеры создали телефон и защитили его прошивку ключём 1024-bit RSA взломать который тогда было невозможно да и сейчас очень сложно. А хакеры нашли возможность сорвать стек в одной из официальных программ и обходить этим RSA-защиту.
Я вот сам делал выход за границы, получал значения каких-то левых ячеек, но как через это можно получить права рута, я не понимаю.
Суть в том, что ты в эти заграницы можешь начать что-то писать, либо же искать в них что-то интересное. А когда нашёл или записал, можешь подготовить эксплоит таким образом, что он будет выполнять твой скомпилированный код.
Далее, если это конкретно про UNIX-системы и получение root-прав в них. Если у тебя, к примеру, на целевой атакуемой машине старая версия ядра и имеется список возможных эксплоитов для получения рута в нём – ты просто используешь эти трюки оттуда и добавляешь к своему эксплоиту через уязвимость (срыв стека) в программе, в которой ты это нашёл.
К примеру, если бы срыв стека был бы в адресной строке браузера и он не был изманан песочницей, то я мы мог опубликовать какую-нибудь хитрую ссылку, перейдя по которой у тебя бы выполнилось условное rm -Rf /
из-под рута.
Срыв стека считай можно заменить простым запуском собственного кода. Как в том известном эпичном обосрамсе KDE-разработчиков: Незакрытая уязвимость в KDE там вместо срыва стека тупо можно подготовить архив, при открытии которого выполнится кастомный код, в котором может быть всё что угодно.
Исходная версия EXL, :
Помнится мне в начале нулевых на срыве стека в embedded-мобилках было сделана огромная куча эксплоитов. К примеру, взлом RSA. Точнее как, вот инженеры создали телефон и защитили его прошивку ключём 1024-bit RSA взломать который тогда было невозможно да и сейчас очень сложно. А хакеры нашли возможность сорвать стек в одной из официальных программ и обходить этим RSA-защиту.
Я вот сам делал выход за границы, получал значения каких-то левых ячеек, но как через это можно получить права рута, я не понимаю.
Суть в том, что ты в эти заграницы можешь начать что-то писать, либо же искать в них что-то интересное. А когда нашёл или записал, можешь подготовить эксплоит таким образом, что он будет выполнять твой скомпилированный код.
Далее, если это конкретно про UNIX-системы и получение root-прав в них. Если у тебя, к примеру, на целевой атакуемой машине старая версия ядра и имеется список возможных эксплоитов для получения рута в нём – ты просто используешь эти трюки оттуда и добавляешь к своему эксплоиту через уязвимость (срыв стека) в программе, в которой ты это нашёл.
К примеру, если бы срыв стека был бы в адресной строке браузера и он не был изманан песочницей, то я мы мог опубликовать какую-нибудь хитрую ссылку, перейдя по которой у тебя бы выполнилось условное rm -Rf /
из-под рута.
Срыв стека считай можно заменить простым запуском собственного кода. Как в том известном эпичном обосрамсе KDE-разработчиков: Незакрытая уязвимость в KDE там вместо срыва стека тупо можно подготовить архив, при открытии которого выполнится мой код, в котором может быть всё что угодно.