Содержание статьи
Browsers must crash!
- Автор: Atte Kettunen
- URL: https://github.com/attekett/Surku
- Система: Windows/Linux/Mac
Хорошо всем знакомый по ZeroNights 0x02 финский хакер Атте Кеттунен (Atte Kettunen), специализирующийся на поиске уязвимостей в браузерах, выложил в открытый доступ свой очередной (после NodeFuzz — читай о нем в предыдущих рубриках) проект, помогающий искать баги в браузерах методом фаззинга.
WARNING
Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.
Surku — это мутационный фаззер, написанный на JavaScript и запускающийся на платформе Node.js (0.8.x и 0.10.x). Проект состоит всего лишь из нескольких файлов:
- Surku.js — ядро;
- cmd.js — парсер командной строки;
- mersenne-twister.js — генератор случайных чисел;
- mutators.js — встроенные мутаторы и API для работы с ними;
- generators.js — еще генератор случайных чисел;
- xmlMutator.js — мутатор XML.
Среди встроенных мутаторов (всего 19 штук):
- freqString;
- lineCopy;
- lineSwap;
- lineRepeat;
- mutateNumber;
- replaceXMLValuePair;
- insertMultipleChar;
- bitFlip и другие.
Через специальный программный интерфейс можно динамически добавлять и убирать мутаторы и конфигурировать их. Также в архиве присутствует ряд примеров, описывающих создание собственных мутаторов.
node Surku.js -Mm 2 -mm 1 ./test.txt
Inside browser
- Автор: d0c-s4vage
- URL: https://github.com/d0c-s4vage/bnarly
- Система: Windows
bNarly — это инструмент для исследования и эксплуатации браузеров, своеобразный мост между отладчиком WinDbg и JavaScript.
Написан данный инструмент с использованием фреймворка jQuery. Где может на практике пригодиться эта тулза? Например, при анализе краша, эксплуатации use-after-free уязвимости или корректировке heap-spray.
Основные функции:
- дамп памяти;
- трассировка free/alloc;
- выполнение JavaScript-кода.
Из полезных вещей есть продуманная система вычленения кода, отвечающего за графический интерфейс.
Алгоритм работы:
- открываем браузер;
- открываем WinDbg и аттачимся к нужной вкладке;
- ставим брейкпоинт в WinDbg на нужную функцию;
- в окне bNarly пишем и исполняем нужный код;
- WinDbg за всем следит, и потом bNarly отображает нам свою информацию.
На текущий момент поддерживает:
- IE 8, 9, 10, 11;
- Firefox >= 20.
Проект имеет свой хорошо документированный API.
Linux keylogger
- Автор: Ta Kernc
- URL: https://code.google.com/p/logkeys/
- Система: Linux
Кейлоггер — это инструмент для считывания нажатий клавиш с клавиатуры. В основном это любят делать вредоносные программы для записи логинов, паролей и другой конфиденциальной информации. Такими вредоносами на Windows никого не удивить, а вот в мире Linux подобные штуки встречаются редко.
Возможно, ты слышал об lkl, uberkey, THC-vlogger, PyKeylogger. Но они сейчас либо больше не поддерживаются, либо работают неправильно.
Logkeys (linux keylogger) — это кейлоггер для GNU/Linux-систем. Он более продвинут, чем его конкуренты, и лучше соответствует текущим реалиям. Принцип работы данного кейлоггера базируется на интерфейсе событий подсистемы ввода ОС Linux. Так что после установки он логирует все символы и функциональные клавиши (Shift, AltGr и так далее). Он хорошо работает как с serial-клавиатурами, так и с USB-клавиатурами стандарта от 101 до 105 клавиш без Asian-расширения.
Особенности последней версии:
- удаленная выгрузка лога по HTTP;
- распознавание USB HID keyboard устройств.
Сила перебора!
- Автор: Sebastien MACKE
- URL: https://code.google.com/p/patator/
- Система: Windows/Linux/Mac
Поговорим о брутфорсе. Если тебе не нравятся Hydra, Medusa, ncrack, NSE-скрипты для Nmap и вспомогательные модули из Metasploit, то есть еще один вариант. Знакомься с patator.
Особенности:
- 26 модулей;
- написан на Python 2.x;
- многопоточный;
- весь проект в одном файле.
В patator можно очень хитро настраивать фильтрацию определенных ответов от серверов (это нельзя делать ни в Hydra, ни в Medusa). Например, они будут пропускать легитимный логин/пароль, если ответ будет 400, 402, 405, 406 и так далее. Это связанно с тем, что реализация != RFC. A в patator все это можно легко настроить. При этом мы все так же можем указывать необходимые словари и куда их необходимо вставлять. А из интересных фич можно выделить: показ прогресса выполнения и возможность поставить перебор на паузу.
Доступные модули:
- FTP, SSH, Telnet, SMB, LDAP, MySQL, MS SQL, PGSQL, Oracle, VNC, SNMP;
- HTTP, DNS;
- ZIP, Java keystore.
Кроме того, он заметно быстрее, чем Hydra! Если заинтересовало, то советуем ознакомиться с презентацией Introducing Patator: An open-source tool to brute-force stuff с Ruxmon 2013.
Java как она есть
- Автор: ReWolf
- URL: dirty-joe.com
- Система: Windows
Как известно всем, Java присутствует более чем на трех миллиардах устройств — о ее распространенности даже не стоит спорить, как и о любви к ней со стороны хакеров :). Многочисленные эксплойты и чуть менее многочисленные зловреды для и на Java живут на просторах интернета. И все это необходимо ловить, анализировать, исследовать. Так что без качественного инструмента не обойтись.
Итак, встречай dirtyJOE (Java Overall Editor) — бесплатный, написанный на С++ редактор и просмотрщик скомпилированного Java-кода. А если быть более точным, то Java-байт-кода, который после компиляции располагается в class-файлах. И вот спустя два года затишья с последнего релиза вышла новая и обновленная версия dirtyJOE. Основной ее фичей можно назвать восстановление отладочной информации (таблица локальных переменных, таблица номеров строк и так далее).
Ключевые особенности:
- просмотр: пула констант, методов, полей, атрибутов;
- редактирование: пула констант, байт-кода, заголовка, атрибутов;
- Python-скриптинг для зашифрованных строк.
Наличие скриптового движка на Python позволяет автоматизировать задачи при анализе вредоносов. Вообще программа имеет простой и понятный интерфейс, с которым очень легко исследовать и редактировать Java-байт-код. Данный инструмент просто must have к какому-нибудь Java-декомпилятору при анализе Java.
Crash monitor for OS X
- Автор: Portcullis Labs
- URL: labs.portcullis.co.uk/tools/crash
- Система: Mac
Важный этап в процессе фаззинга — этап ловли падений. Если он отсутствует или выполнен неправильно, то фазь не фазь, а эффекта будет ноль. Так что сейчас поговорим о ловле крашей на OS X.
Возможно, ты уже пользовался CrashWrangler или хотя бы слышал о нем и стандартном Crash Reporter. CrashWrangler, однако, весьма неповоротлив, а Crash Reporter хранит только двадцать последних падений и норовит все отправить в Apple. Так что сегодня хотелось бы представить более простой и гибкий инструмент в лице Crash.
Итак, Crash — это инструмент для ловли падений приложений в OS X. Инструмент полностью написан на Си и в качестве движка для дизассемблирования использует библиотеку BeaEngine. Ключевые особенности:
- отображение регистров CPU;
- отображение дизассемблированного участка кода, на котором произошло падение;
- отображение части памяти стека;
- поддержка 32/64-bits.
О процессе установки советуем почитать на странице приложения.
Ассемблер в стиле JIT
- Автор: Petr Kobalicek
- URL: https://code.google.com/p/asmjit/
- Система: Windows/Linux/Mac
Хочу поделиться с тобой еще одной интересной библиотекой под названием AsmJit.
AsmJit — это JIT-ассемблер для C++ c поддержкой x86/x64. Идея проекта заключается в написании ассемблерных вставок на С++ (что куда удобнее, чем inline), а также в абстракции от самого ассемблера, процессора и многих других вещей, которые нужно держать в голове при работе с ассемблером. Например, он может быть полезен при написании собственного загрузчика или тестировании шелл-кода, при этом ASLR нисколько не мешает.
Особенности:
- полный набор x86/x64-инструкций: FPU, MMX, SSE, SSE2, SSE3, SSSE3, SSE4;
- безопасность во время компиляции и во время выполнения;
- low-level и high-level кодогенерация;
- встроенный CPU-детектор;
- управление виртуальной памятью;
- конфигурируемый менеджер памяти, логирование и обработка ошибок;
- маленький и встраиваемый;
- отсутствуют зависимости.
AsmJit был успешно протестирован на различных С++ компиляторах (включая MSVC, GCC, Clang, Borland C++) под основными операционными системами (Windows, Linux, Mac). В качестве примера проекта, использующего данную библиотеку, можно посмотреть проектHadesMem, позволяющий манипулировать памятью в других процессах, или SoNew, умеющий делать инъекции в процессы Windows.
На мой взгляд, это уникальный проект, на который стоит обратить внимание.