Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: Пред. 1 2
RSS
Эксплоиты!Как их писать???
 
А я тожа пасибо хАчУ

ru:
Modern_kinds_of_system_attacks: http://lbyte.ru/txt/misc/cabzz.txt

Kids Buffer Overflow Paper: http://www.securitylab.ru/48885.html

Написание эксплойтов переполнения буфера - туториал для новичков: http://wasm.ru/article.php?article=buf_over4noob

Как устроены эксплоиты: http://rootteam.void.ru/article.php?txt=expleng

Ховард М. "Защищенный код": http://84.252.140.76/MSDVD/Zachita.zip
end ru

en:
Writing buffer overflow exploits - a tutorial for beginners: http://www.shellcode.com.ar/docz/bof/mixter-smash.txt

An Introduction to executing arbituary code via stack overflows: http://www.shellcode.com.ar/docz/bof/overflow_tutorial.txt

HEAP OVERFLOW TUTORIAL: http://www.shellcode.com.ar/docz/bof/heap-tute.txt
end en
 
   
Вообще то тема уже поднималась и когда то мне дали на нее полный ответ.
Во первых чтобы понять что такое эксплоит и уязвимость и как они находяться тебе надо прочесть ряд литературы.
Кто то сказал эксплоит пишеться на Си.
Не совсем верно тело эксплоита пишеться на асм. Так называемоей "яйцо".

Литература следующего содержания.

1) Харви и Пол Дейтеловы "Учимся программировать на С"
2) Чарльз Петзольд "Программирование Windows"
3)Питер Абель Ассемблер "Программирование IBM PC"
4) Девид Соломон "Inside Microsoft Windows 2000"
5) Рихтер
6) TCP/IP Снейдер.

Информацию передаю как эстафету
 
------Учиться, учиться и только учиться------------------
Hacking: The Art of Exploitation
http://www.web-hack.ru/books/books.php?go=47
 
Smart-eXploit for beginner

Напишем маленькую программку и сразу взломаем ;)
На авторство программы не претендую. Где-то в инете видел.

<font color=ORANGE>#include <stdio.h></font>
<font color=ORANGE>#include <string.h></font>

<font color=BLUE>void</font> foo(<font color=BLUE>const char*</font> input)
{
     <font color=BLUE>char</font> buf[10];
     <font color=BROWN>//Стек программы</font>
     printf(<font color=GREEN>"My Stack #1: \n%p\n%p\n%p\n%p\n%p\n%p\n\n"</font>);
     strcpy(buf, input);<font color=BROWN>//Скопировали строку</font>
     printf(<font color=GREEN>"%s\n"</font>, buf);<font color=BROWN>//Напечатали</font>
     <font color=BROWN>//Теперь стек такой</font>
     printf(<font color=GREEN>"My Stack #2: \n%p\n%p\n%p\n%p\n%p\n%p\n\n"</font>);
}
<font color=BROWN>//Функция, которую надо вызвать, "взломав" программу</font>
<font color=BLUE>void</font> bar<font color=BLUE>(void)</font>
{
     printf(<font color=GREEN>"HACK!\n"</font>);
}

<font color=BLUE>int</font> main(<font color=BLUE>int</font> argc, <font color=BLUE>char*</font> argv[])
{
     <font color=BROWN>//Адреса функций</font>
     printf(<font color=GREEN>"Adress foo = %p\n"</font>, foo);
     printf(<font color=GREEN>"Adress bar = %p\n"</font>, bar);
     <font color=BLUE>if</font> (argc != 2)
     {
                   <font color=BROWN>//Если запуск произведен без пер.строки, скажем</font>
                   printf(<font color=GREEN>"No String-Argument!\n"</font>);
                   <font color=BLUE>return</font> -1;
     }
     foo(argv[1]);
     <font color=BLUE>return</font> 0;
}

Компилируем. VC6.0 или lcc или gcc-2.95.2.
Запускаем...
stackOverrun.exe AB23
Если передать большую строку, в стек попадут некоторые символы из передаваемой строки. Посмотрим, какие буквы обозначают коды этих символов. Стек (для VC6) - 00401060. Значит, подставив вместо них адрес функции bar, программа выведет надпись HACK. Передавать надо наоборот, то есть 6010 40

Для VC6 достаточно в HEX-редакторе набрать:
7374 6163 6B4F 7665 7272 756E 2E65 7865 2041 4232 3343 3030 4447 4849 4A60 1040
Сохранить файл с расширением .cmd в директорию с откомпилированным файлом и запустить.
 
Прикольно  
 
Цитата
Литература следующего содержания.

1) Харви и Пол Дейтеловы "Учимся программировать на С"
2) Чарльз Петзольд "Программирование Windows"
3) Питер Абель Ассемблер "Программирование IBM PC"
4) Девид Соломон "Inside Microsoft Windows 2000"
5) Рихтер
6) TCP/IP Снейдер.

Информацию передаю как эстафету

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

Из англоязычной документации хотелось бы отметить Exploting Sowtware (Greg Hoglund и Gary McGraw); The Shellcoders Handbook (Jack Koziol, David Litchfield, Dave Aitel, Chris Anley, Sinan "noir" Eren, Neel Mehta, Riley Hassell).
 
ссылка_1

Переполнения стека для начинающих, часть №1

Переполнения стека для начинающих, часть №2


Vint Burner
Умныя-умныя мы, а кто-то только учиться начинает.
 
ку. Убил этот топик! Решил помочь им  ;)  И так для начала что такое сплоиты и шелл-код.

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

Шелл-код (англ. shellcode, код запуска оболочки) — это двоичный исполняемый код, который обычно передаёт управление командному процессору, например '/bin/sh' Unix shell, command.com в MS-DOS и cmd.exe в операционных системах Microsoft Windows. Шелл-код может быть использован как полезная нагрузка эксплойта, обеспечивающая взломщику доступ к командной оболочке (англ. shell) в компьютерной системе.
При эксплуатации удаленной уязвимости шелл-код может открывать заранее заданный порт TCP уязвимого компьютера, через который будет осуществляться дальнейший доступ к командной оболочке, такой код называется привязывающим к порту (англ. port binding shellcode). Если шелл-код осуществляет подключение к порту компьютера атакующего, что производится с целью обхода брандмауэра или NAT, то такой код называется обратной оболочкой (англ. reverse shell shellcode).

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

Эксплойты бываю разные...

Эксплойты фактически предназначены для выполнения сторонних действий на уязвимой системе и могут быть разделены между собой следующим образом:
  1. Эксплойты для операционных систем
  2. Эксплойты для прикладного ПО (музыкальные проигрыватели, офисные пакеты и т. д.)
  3. Эксплойты для браузеров (Internet Explorer, Mozilla Firefox, Opera и другие)
  4. Эксплойты для интернет-продуктов (IPB, WordPress, VBulletin, phpBB)
  5. Эксплойты для интернет-сайтов (facebook.com, hi5.com, livejournal.com)
  6. Другие эксплойты
1.Теперь по языка программирования: собственно от типа эксплойтов и оттталкиваемся. Если это под ОС ту подойдут такие языки как С\С++, Perl, Python, Ruby. Плюс ко всем этим языка нужно знать ассемблер так как на нем пишут шелл-код. 2.тот же список. 3.HTML 5, ActionScript, JavaScript +Asm. 4.PHP + SQL + JavaScript. 5.тот же список. 6. Под другими эксплойтами в вике наверно понимается будущее то есть хардварные эксплойты, значит тут ассемблер. Теперь как искать уязвимости??? Есть два метода! Первый это статический - бинарный анализ и подобное с помощью отладчиков например WinDbg, OllyDbg, Syser Kernel Debuger (наследник SOFT ICE), GDB, IDA Pro, ImmunityDbg. Второй метож динамический с помощью техники фаззинга. Минусы первого метода, очень трудоёмко при исследование регистров. Второй метод, опирается на первый, так как креш программы надо исследовать, что привело к сбою! ИМХО все эксплойты можно писать на пхп, теперь в нем доступны инлайт 8,16,32 регистров, как в это делается в системных языках.... з.ы. всем спасибо
 
А еще круто научиться писать драйверы для real system hooking  :D
Страницы: Пред. 1 2
Читают тему