Хорошо всем знакомый no ZeroNights 0x02 финский хакер Атте Кеттунен (Atte Kettunen), специализирующийся на поиске уязвимостей в браузерах, выложил в открытый доступ свой очередной (после NodeFuzz — читай о нем в предыдущих рубриках) проект, помогающий искать баги в браузерах методом фаззинга.
Surku — это мутационный фаззер, написанный на JavaScript и запускающийся на платформе Node.js (0.8.x и 0.10.x).
Проект состоит из нескольких файлов: • Surku.js — ядро; • cmd.js — парсер командной строки; • mersenne-twister.js и generators.js — генераторы случайных чисел; • mutators.js — встроенные мутаторы и API для работы с ними; • xml Mutator, js — мутатор XML.
Среди встроенных мутаторов (всего 19 штук): • freqString; • ІіпеСору; • lineSwap; • lineRepeat; • mutateNumber; • replaceXMLValuePair; • insertMultipleChar; • bitFlip и другие.
Через специальный программный интерфейс можно динамически добавлять и убирать мутаторы и конфигурировать их. Также в архиве присутствует ряд примеров, описывающих процесс создания собственных мутаторов.
node Surku.js -Mm 2 -mm 1 ./test.txt
2. INSIDE BROWSER Автор: d0c-s4vage https ://aithub.com/d0c-s4vaae/bnarlv Система: Windows
bNarly — это инструмент для исследования и эксплуатации уязвимостей в браузере, своеобразный мост между отладчиком WinDbg и JavaScript.
Чтобы разобраться, что привело к падению браузера, или понять, как та или иная страница влияет на его внутренние структуры, нужно смотреть/следить, что вытворяет JavaScript. Такое по сей день по плечу только отладчику. И весь этот процесс в отладчике выглядит достаточно муторным и трудоемким. Где может на практике пригодиться эта тулза? Например, при анализе краша, эксплуатации use-after-free уязвимости или корректировке heap-spray.
Основные функции: • дамп памяти; • трассировка free/alloc; • выполнение JavaScript-кода.
Из полезных вещей есть продуманная система вычленения кода, отвечающего за графический интерфейс.
Алгоритм работы: • открываем браузер; • открываем WinDbg и аттачимся к нужной вкладке; • ставим брейкпоинт в WinDbg на нужную функцию; • в окне bNarly пишем и исполняем нужный код; • WinDbg за всем следит, и потом bNarly отображает нам свою информацию.
На текущий момент поддерживает: • ІЕ8,9,10, 11; • Fi refox >= 20.
Тулза написана на jQuery и имеет свой хорошо документированный API.
3. LINUX KEYLOGGER Автор: Та Kerne URL: https://code.google.com/p/logkeys Система: Linux
Все, что любопытно сторонним взорам (злоумышленникам), пользователи, как правило, вводят сами с помощью клавиатуры. Остается только встать между клавиатурой и системой. Этим, в принципе, и занимаются кейлоггеры. Кейлоггер — это инструмент для считывания нажатий клавиш с клавиатуры. В основном это любят делать вредоносные программы для записи логинов, паролей и другой конфиденциальной информации. Такими вредоносами на Windows никого не удивить, а вот в мире Linux подобные штуки встречаются редко.
Возможно, ты слышал об Ikl, uberkey, ТНС-vlogger, PyKeylogger. Но они сейчас либо больше не поддерживаются, либо работают неправильно.
Logkeys (linux keylogger) — это кейлоггер для GNU/Linux-систем. Он более продвинут, чем его конкуренты, и лучше соответствует текущим реалиям. Принцип работы данного кейлоггера базируется на интерфейсе событий подсистемы ввода ОС Linux. Так что после установки он логиру-ет все символы и функциональные клавиши (Shift, AltGr и так далее). Он хорошо работает как с serial-клавиатурами, так и с USB-клавиатурами стандарта от 101 до 105 клавиш без Asian-расширения.
Особенности последней версии: • удаленная выгрузка лога по HTTP; • распознавание USB HID keyboard устройств.
Автор планирует со временем добавить: • отправку лога на почту; • логирование окна, в котором был ввод; • извлечение содержимого из contents; • поддержку событий для мыши.
P. S.: для защиты важных данных от перехвата лучше использовать виртуальную клавиатуру.
4. Ассемблер в стиле JIT Автор: Petr Kobalicek URL: httos://code.google.com/p/asmjit/ Система: Windows/Linux/Mac
Asm Jit — это JIT-ассемблер для C++ с поддержкой х86/х64. Идея проекта заключается в написании ассемблерных вставок на C++ (что куда удобнее, чем inline), а также в абстракции от самого ассемблера, процессора и многих других вещей, которые нужно держать в голове при работе с ассемблером. Например, он может быть полезен при написании собственного загрузчика или тестировании шелл-кода, при этом ASLR нисколько не мешает.
Особенности: • полный набор х86/х64-инструкций: FPU, ММХ, SSE, SSE2, SSE3, SSSE3, SSE4; • безопасность во время компиляции и во время выполнения; • low-level и high-level кодогенерация; • встроенный CPU-детектор; • управление виртуальной памятью; • конфигурируемый менеджер памяти, логиро-вание и обработка ошибок; • маленький и встраиваемый; • отсутствуют зависимости.
AsmJit был успешно протестирован на различных C++ компиляторах (включая MSVC, GCC, Clang, Borland C++) под основными операционными системами (Windows, Linux, Mac). В качестве примера проекта, использующего данную библиотеку, можно посмотреть проект FladesMem (https://code.google.eom/o/hadesmem), позволяющий манипулировать памятью в других процессах, или SoNew (bit.lv/1i6sliY), умеющий делать инъекции в процессы Windows.
Поговорим о брутфорсе. Перебор — это грубо, некрасиво, однако порой на пентесте без него не обойтись. Но при этом если речь касается паролей, то он может дать превосходный результат с минимальными человеческими трудозатратами. Если тебе не нравятся Hydra, Medusa, ncrack, NSE-скрипты для Nmap и вспомогательные модули из Metasploit, то есть еще один вариант. Знакомься с patator.
Особенности: • 26 модулей; • написан на Python 2.x; • многопоточный; • весь проект в одном файле.
В patator можно очень хитро настраивать фильтрацию определенных ответов от серверов (это нельзя делать ни в Hydra, ни в Medusa). Например, они будут пропускать легитимный логин/ пароль, если ответ будет 400, 402, 405, 406 и так далее. Это связано с тем, что реализация != RFC. А в patator все это можно легко настроить.
При этом мы все так же можем указывать необходимые словари и куда их необходимо вставлять. А из интересных фич можно выделить показ прогресса выполнения и возможность поставить перебор на паузу.
Кроме того, он заметно быстрее, чем Hydra! Если заинтересовало, то советую презентацию «Introducing Patator: An open-source tool to brute-force stuff» (bit.lv/KnvaqH) с Ruxmon 2013.
6. JAVA КАК ОНА ЕСТЬ Автор: ReWolf URL: dirtv-joe.com Система: Windows
Как известно всем, Java присутствует более чем на трех миллиардах устройств — о ее распространенности даже не стоит спорить, как и о любви к ней со стороны хакеров :). Многочисленные эксплойты и чуть менее многочисленные зловреды для и на Java живут на просторах интернета. И все это необходимо ловить, анализировать, исследовать. Так что без качественного инструмента не обойтись.
Итак, встречай dirtyJOE (Java Overall Editor) — бесплатный, написанный на C++ редактор и просмотрщик скомпилированного Java-кода. А если быть более точным, то Java-байт-кода, который после компиляции располагается в class-файлах. И вот спустя два года затишья с последнего релиза вышла новая и обновленная версия dirtyJOE. Основной ее фичей можно назвать восстановление отладочной информации (таблица локальных переменных, таблица номеров строк и так далее).
Ключевые особенности: • просмотр: пула констант, методов, полей, атрибутов; • редактирование: пула констант, байт-кода, заголовка, атрибутов; • Python-скриптинг для зашифрованных строк.
Наличие скриптового движка на Python позволяет автоматизировать задачи при анализе вредоносов.
Вообще программа имеет простой и понятный интерфейс, с которым очень легко исследовать и редактировать Java-байт-код. Данный инструмент просто must have к какому-нибудь Java-декомпилятору при анализе Java. Думаю, со временем появятся аналогичные инструменты и для других ЯП, использующих байт-код (C# или для андроидовского Dalvik’a).
7. CRASH MONITOR FOR OSX Автор: Portcullis Labs URL: labs.portcullis.co.uk/tools/crash Система: Mac
Фаззинг в последнее время у всех на слуху — он популярен и эффективен. Существенную роль в данном процессе играют инструменты, так как автоматизация процесса — это важная черта фаззинга. Ключевой этап в этом процессе — этап ловли падений. Если он отсутствует или выполнен неправильно, то фазь не фазь, а эффекта будет ноль. Так что сейчас поговорим о ловле крашей на OS X.
Возможно, ты уже пользовался CrashWrangler (peachfuzzer.com/v3/Monitors/CrashWrangler. html) или хотя бы слышал о нем и стандартном Crash Reporter (en.wikiDedia.ora/wiki/Crash Reporter (OS X». CrashWrangler, однако, весьма неповоротлив, a Crash Reporter хранит только двадцать последних падений и норовит все отправить в Apple. Так что сегодня хотелось бы представить более простой и гибкий инструмент в лице Crash.
Итак, Crash — это инструмент для ловли падений приложений в OS X. Эта штука полностью написана на языке Си и в качестве движка для дизассемблирования использует библиотеку BeaEngine.
Ключевые особенности: • отображение регистров CPU; • отображение дизассемблированного участка кода, на котором произошло падение; • отображение части памяти стека; • поддержка 32/64-bits.
Также стоит помнить, что данная тулза подойдет только для ловли падений в user mode. Для kernel mode нужно использовать что-нибудь другое.
О процессе установки советуем почитать на странице приложения.