Browsers must crash!

Surku

Хорошо всем знакомый по 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

bnarly

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

logkeys

Кейлоггер — это инструмент для считывания нажатий клавиш с клавиатуры. В основном это любят делать вредоносные программы для записи логинов, паролей и другой конфиденциальной информации. Такими вредоносами на Windows никого не удивить, а вот в мире Linux подобные штуки встречаются редко.

Возможно, ты слышал об lkl, uberkey, THC-vlogger, PyKeylogger. Но они сейчас либо больше не поддерживаются, либо работают неправильно.

Logkeys (linux keylogger) — это кейлоггер для GNU/Linux-систем. Он более продвинут, чем его конкуренты, и лучше соответствует текущим реалиям. Принцип работы данного кейлоггера базируется на интерфейсе событий подсистемы ввода ОС Linux. Так что после установки он логирует все символы и функциональные клавиши (Shift, AltGr и так далее). Он хорошо работает как с serial-клавиатурами, так и с USB-клавиатурами стандарта от 101 до 105 клавиш без Asian-расширения.

Особенности последней версии:

  • удаленная выгрузка лога по HTTP;
  • распознавание USB HID keyboard устройств.
 

Сила перебора!

patator

Поговорим о брутфорсе. Если тебе не нравятся 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 как она есть

dirtyJOE

Как известно всем, Java присутствует более чем на трех миллиардах устройств — о ее распространенности даже не стоит спорить, как и о любви к ней со стороны хакеров :). Многочисленные эксплойты и чуть менее многочисленные зловреды для и на Java живут на просторах интернета. И все это необходимо ловить, анализировать, исследовать. Так что без качественного инструмента не обойтись.

Итак, встречай dirtyJOE (Java Overall Editor) — бесплатный, написанный на С++ редактор и просмотрщик скомпилированного Java-кода. А если быть более точным, то Java-байт-кода, который после компиляции располагается в class-файлах. И вот спустя два года затишья с последнего релиза вышла новая и обновленная версия dirtyJOE. Основной ее фичей можно назвать восстановление отладочной информации (таблица локальных переменных, таблица номеров строк и так далее).

Ключевые особенности:

  • просмотр: пула констант, методов, полей, атрибутов;
  • редактирование: пула констант, байт-кода, заголовка, атрибутов;
  • Python-скриптинг для зашифрованных строк.

Наличие скриптового движка на Python позволяет автоматизировать задачи при анализе вредоносов. Вообще программа имеет простой и понятный интерфейс, с которым очень легко исследовать и редактировать Java-байт-код. Данный инструмент просто must have к какому-нибудь Java-декомпилятору при анализе Java.

 

 

Crash monitor for OS X

Crash

Важный этап в процессе фаззинга — этап ловли падений. Если он отсутствует или выполнен неправильно, то фазь не фазь, а эффекта будет ноль. Так что сейчас поговорим о ловле крашей на OS X.

Возможно, ты уже пользовался CrashWrangler или хотя бы слышал о нем и стандартном Crash Reporter. CrashWrangler, однако, весьма неповоротлив, а Crash Reporter хранит только двадцать последних падений и норовит все отправить в Apple. Так что сегодня хотелось бы представить более простой и гибкий инструмент в лице Crash.

Итак, Crash — это инструмент для ловли падений приложений в OS X. Инструмент полностью написан на Си и в качестве движка для дизассемблирования использует библиотеку BeaEngine. Ключевые особенности:

  • отображение регистров CPU;
  • отображение дизассемблированного участка кода, на котором произошло падение;
  • отображение части памяти стека;
  • поддержка 32/64-bits.

О процессе установки советуем почитать на странице приложения.

 

Ассемблер в стиле JIT

asmjit

Хочу поделиться с тобой еще одной интересной библиотекой под названием 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.

На мой взгляд, это уникальный проект, на который стоит обратить внимание.

 

Оставить мнение

Check Also

Пишешь на С++ или .NET? Даем скидку 50% на Deleaker, программу для поиска утечек памяти

Deleaker — это программа для разработчиков под Windows, пишущих на C++. Она ищет утечки па…