Исправление уязвимостей
12 сентября, 2011
Автор: Celil ÜNÜVER
celilunuver[n0sp4m]gmail.com
http://tcc.hellcode.net/musashi
Вступление
Уязвимости, которые публикуются ежедневно в Bugtraq, иногда могут оказаться в программном обеспечении, которым мы ежедневно пользуемся. Даже самое известное программное обеспечение подвержено уязвимостям. Просматривая Bugtraq, вы можете встретить рекомендации по безопасности даже для продуктов крупных поставщиков.
В последнее время были широко распространены веб-уязвимости, однако, программные уязвимости, такие как переполнение буфера, по-прежнему остаются самыми опасными. Кроме того, они становятся причиной профессиональных атак. По сути, эти опасные ошибки программирования появляются в результате халатности самих программистов.
В этой статье я объясню, как исправить уязвимости программного обеспечения.
Исправление
Данная технология также известна как "HotPatching" или "runtime patching ". Исправление является методом модификации двоичного кода программного обеспечения с помощью дизассемблера, отладчика, HEX-редактора и т.д.
Это очень распространенный прием для обратной разработки. Его можно использовать для перехвата API, взлома, вставки кода и т.д. Но в моей статье, я объясню, как использовать эту технику, чтобы закрыть дыры в безопасности.
Инструментарий
Для нашей работы пригодится программное обеспечение, которое хорошо известно и используется всеми реверсивными проектировщиками (отладчиками, дизассемблерами и т.д.). Но задачу может упростить дизассемблер /отладчик, который имеет встроенные функции для редактирования ассемблера и бинарного кода, такой как IDA Pro, Ollydbg.
К сожалению, встроенные функции для редактирования ассемблера и бинарного кода в IDA или Ollydbg доступны только для "x86" исполняемых модулей. Например, если вы хотите исправить исполняемый код ARM или Xbox, вы должны посмотреть на код операции (инструкция кодирования) в информации о процессоре.
Практика
Выполним ’’hotpatching’’ для программы, которую я расположил ниже. Как видите, она имеет уязвимость переполнения буфера. А теперь скомпилируем ее и забудем исходный код, теперь это наше программное обеспечение с закрытым исходным кодом…
#include
int main()
{
char buf[16];
printf("nString giriniz:");
scanf("%s", &buf);
return 0;
}
Как видите в исходном коде и коде сборки, scanf не проверяет размер строки. (% s)
Очевидно вы знаете, что проверить размер строк могут такие функции, как scanf и sprintf. Просто нам нужно поставить целые числа перед форматируемым значением. (e.g% 15s или %0,15 s)
Попробуем решить эту проблему. Для исправления я предпочитаю использовать Ollydbg. Он удобен для этого. IDA я использую только для анализа.
Откроем уязвимую программу через OllyDbg;
Как вы видите в дизассемблере, оно вызывает "00403011" смещение для перемещения строки в буфер.
Через CTRL + G комбинацию попадем на "00403011" адрес.
Думаю, из картинок вам все стало ясно:] Так что теперь мы будем модифицировать следующую строку --> "AND EAX, 694D0073".
Записываем "and eax, 733531" вместо кода "and eax, 694D0073" (а вы знаете, что коды 313573 являются шестнадцатеричными типами кодов "% 15s"и мы записали его, согласно принципу Last In First Out!)
Ну, вот и все! Мы с легкостью исправили уязвимую часть нашего программного обеспечения. Для сохранения исправлений, щелкните правой кнопкой на исправленной строке и выберите "Копировать в исполняемый модуль>Выбор ". Откроется новое окно, а при закрытии будет предложено сохранить изменения или не сохранять их. После сохранения вы можете попытаться переполнить ее :)
Давайте посмотрим на нашу исправленную программу через IDA PRO;
Заключение
Я надеюсь, что данная статья будет полезна для понимания принципа исправления. О другом трюке с исправлениями я планирую написать в моей следующей статье.
Благодарности
Я хотел бы поблагодарить моего брата, мою девушку, мою семью и моих друзей [murderkey, AhmetBSD ака L4M3R, Боб ((ulaş), kurti ]
Ссылки:
- http://tcc.hellcode.net
- http://hellcoderesearch.wordpress.com
17 апреля 2024 года
В 2023 году самыми всераспространенными Android-угрозами стали троянские программы, демонстрирующие рекламу. Шпионские троянские приложения по уподоблению с прошлым годом понизили свою энергичность таково словно стали вторыми по числу детектирований на защищаемых антивирусом Dr.Web устройствах. невзирая на то, словн... Вирусные новости
11 апреля 2024 года
Обновление ориентировано н... Антивирус Dr.Web
4 апреля 2024 года
1 апреля 2024 года
1 апреля 2024 года