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

Эхо кибервойны. Как NotPetya чуть не потопил крупнейшего морского перевозчика грузов

Российское кибероружие, построенное на утекших у АНБ эксплоитах, маскировалось под вирус-в…