Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Fuzzing исследование уязвимостей методом грубой силы.pdf
Скачиваний:
1127
Добавлен:
13.03.2016
Размер:
5.96 Mб
Скачать

Полезные инструменты и библиотеки

97

с фаззингом нам повезло – уже существует множество инструментов и библиотек, которые мы можем использовать в своей работе.

Полезные инструменты и библиотеки

Большинство разработчиков фаззеров создают свои собственные инст$ рументы с нуля – это очевидно по огромному количеству фаззинговых скриптов, находящихся в открытом доступе.1 К счастью, существует много инструментов и библиотек, которые смогут помочь вам на этапе разработки и реализации вашего фаззера. В данном разделе перечис$ лены несколько подобных инструментов и библиотек (в алфавитном порядке).

Ethereal2/Wireshark3

Wireshark (побочный проект Ethereal)4 – это популярный сетевой ана$ лизатор пакетов и протоколов с открытым исходным кодом. Хотя нельзя сказать, что именно эта библиотека должна стать фундаментом вашей работы, этот инструмент будет очень полезен на этапах исследо$ вания и отладки ошибок при создании фаззера. Wireshark предостав$ ляет огромное количество анализаторов с открытым исходным кодом, которые часто оказываются полезными также в качестве справочного материала. Полученный трафик, имеющий, согласно системе, доступ$ ный анализатор, отображается в виде серии пар «поле – значение», противопоставлемой блоку необработанных байтов. Перед погружени$ ем в ручной анализ протокола всегда имеет смысл вначале ознако$ миться с тем, что думает по этому поводу Wireshark. Для быстрого дос$ тупа к списку доступных анализаторов обратитесь к архиву Wire$ shark, а точнее, к разделу об анализаторах протокола Ethernet.5

libdasm6 и libdisasm7

И libdasm, и libdisasm являются свободными библиотеками для дизас$ семблера с открытым исходным кодом; вы можете внедрять их в свои инструменты для дизассемблирования синтаксиса at&t и Intel из дво$ ичных потоков. Libdasm написан на С, а libdisasm – на Perl. Libdasm оснащен также интерфейсом Python. Хотя дизассемблер не всегда ис$ пользуется для формирования сетевого трафика, этот момент важен

1

2

3

4

http://www.threatmind.net/secwiki/FuzzingTools

http://www.ethereal.com

http://www.wireshark.org

http://www.wireshark.org/faq.html#q1.2

5http://anonsvn.wireshark.org/wireshark/trunk/epan/dissectors/

6http://www.nologin.org/main.pl?action=codeView&codeId=49

7http://bastard.sourceforge.net/libdisasm.html

98

Глава 6. Автоматизация и формирование данных

при автоматизации проверочного теста в конце выравнивания. Обе библиотеки используются на протяжении всей книги: в главе 12 «Фаз$ зинг формата файла: автоматизация под UNIX», главе 19 «Фаззинг оперативной памяти», главе 20 «Фаззинг оперативной памяти: авто$ матизация», главе 23 «Фаззинговый трекинг» и главе 24 «Интеллек$ туальное обнаружение ошибок».

Libnet1/LibnetNT2

Libnet – это свободный программный интерфейс приложения высоко$ го уровня с открытым исходным кодом; используется для создания и ввода сетевых пакетных данных низкого уровня. Эта библиотека скрывает большинство сложностей, обычно связанных с формирова$ нием IP и трафика канального уровня, обеспечивая мобильность связи между различными платформами. Если вы пишете фаззер для сетево$ го стека, эта библиотека может быть вам интересна.

LibPCAP3

LibPCAP и совместимая с Microsoft Windows WinPCAP4 – это бесплат$ ные библиотеки высокого уровня с открытым исходным кодом; они удобны при создании сетевых инструментов ввода и анализа данных на платформах UNIX и Microsoft Windows. Многие анализаторы сете$ вых протоколов, например вышеупомянутый Wireshark, были созда$ ны в противовес этой библиотеке.

Metro Packet Library5

Metro Packet Library – это библиотека, написанная на C# и предостав$ ляющая абстрактный интерфейс для работы с Ipv4, TCP, UDP и прото$ колом управляющих сообщений Интернета (ICMP). Библиотека полез$ на при создании пакетных и сетевых анализаторов. Она обсуждается и применяется в дальнейшем – в главе 16 «Фаззинг сетевых протоко$ лов: автоматизация под Windows».

PTrace

Отладка программы на платформах UNIX чаще всего выполняется при помощи системного вызова ptrace() (след процесса). Процесс может ис$ пользовать ptrace() для контроля состояния реестра, памяти, испол$ нения и ввода сгенерированных сигналов другого процесса. Данный

1

2

3

4

http://www.packetfactory.net/libnet

http://www.securityfocus.com/tools/1559

http://www.tcpdump.org

http://www.tcpdump.org/wpcap.html

5http://sourceforge.net/projects/dotmetro

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]