Содержание статьи
Remote Vulnerability Testing Framework
Автор: Knownsec Security Team
URL: https://github.com/knownsec/Pocsuite
Система: Linux / Windows / OS X / BSD
Pocsuite — это фреймворк на Python с открытым исходным кодом для удаленного тестирования на уязвимости. Фреймворк поддерживает два режима работы:
- валидации;
- эксплуатации.
При этом на вход Pocsuite может получать список целей и последовательно тестировать их каждым из требуемых эксплоит-плагинов.
С инструментом можно работать в режиме, подобном Metasploit, интерактивно задавая все необходимые параметры сканирования, и в CLI-режиме, определив все аргументы.
Как и Metasploit, Pocsuite-фреймворк имеет свой так называемый development kit — для разработки собственных эксплоитов. Пользователь может с помощью вспомогательных модулей расширить возможности эксплуатации или интегрировать в Pocsuite дополнительные инструменты оценки уязвимостей.
Из интересных особенностей фреймворка стоит выделить интеграцию с Seebug и ZoomEye API для совместного использования. Оценить уязвимости можно автоматически: искать цели через ZoomEye и использовать PoC’ы из Seebug или локального хранилища.
Network Forensics Framework
Автор: Ankur «7h3rAm» Tyagi
URL: https://github.com/7h3rAm/rudra-pcaponly
Система: Windows/Linux
Инструмент Rudra призван предоставить разработчику дружелюбный фреймворк для всестороннего анализа PCAP- и PE-файлов. После сканирования он генерирует отчеты, которые включают структурные свойства файлов, визуализацию энтропии, степень сжатия и другие данные.
Эти сведения, наряду с информацией о формате файла, помогают аналитику понять тип данных, встроенных в файл, и быстро решить, заслуживает ли он дальнейшего изучения.
Возможности Rudra: сканирование API, anti{debug, vm, sandbox}-обнаружение, обнаружение упаковщиков, authenticode-верификация, наложение Yara-правил, детектирование shellcode и поиск по regexp.
Отчеты для каждого анализируемого файла могут быть созданы на диске в форматах JSON, HTML, PDF. Инструмент был впервые представлен на конференции Black Hat USA 2015.
StackPivotChecker
Авторы: Xiaoning Li, Haifei Li
URL: https://www.blackhat.com/docs/asia-16/materials/arsenal/asia-16-Li-StackPivotChecker-tool.zip
Система: Windows
У исследователей, занимающихся анализом атак и эксплоитов, во всем мире есть общая проблема — анализ ROP only эксплоитов. Это значит, что, кроме самого эксплоита, и шелл-код написан в технике ROP (return-oriented programming). Анализировать такое очень сложно. В качестве примера можно привести APSA13-02 в PDF reader от Adobe (CVE-2013-0641). В этом эксплоите около тысячи ROP-гаджетов!
StackPivotChecker — инструмент, призванный облегчить подобный анализ. И делает он это с помощью детектирования так называемого StackPivot, ответственного за контроль над стеком, от которого зависит ROP-техника. Логика проста: поймав StackPivot, можно поймать и весь ROP-шелл-код.
Для трассировки инструмент использует связку двух техник: Single Step + BTF.
Более подробно об инструменте можно узнать из презентации StackPivotChecker — Instrumentation Techniques and ROP Exploit Rapid Analysis.
Инструмент был впервые представлен на конференции Black Hat Asia 2016.
recoversqlite
Автор: A. Ramos
URL: https://github.com/aramosf/recoversqlite/
Система: Windows/Linux
Инструмент помогает восстановить измененные или удаленные данные из SQLite базы данных. Автор написал его относительно давно, но опубликовал на GitHub только сейчас. Сам recoversqlite состоит из нескольких скриптов на языке Python:
- recoversqlite.py — первая версия;
- dumplite.py — вторая, обновленная.
Версии различаются отображением извлеченных данных; кроме того, автор говорит, что вторая версия полностью переписана. В первой, к примеру, мы можем получить данные в формате ASCII или в более удобном hex-формате, а также краткие сведения о файле. Во второй — только hex, но дополнительная информация доступна как для файла, так и для отдельных страниц или «свободных» диапазонов в БД — они как раз и могут содержать данные, которые мы пытаемся восстановить.
Для запуска устанавливать ничего не требуется, достаточно скачать исходники из репозитория проекта и запустить нужную версию:
- recoversqlite:
$ python recoversqlite.py -f dumplite/personas.sqlite
- dumplite:
$ cd dumplite
$ python dumplite.py -f personas.sqlite -l -u -d
Среди дополнительных ссылок, оставленных автором в небольшом ReadMe к утилите, можно найти не только описание процесса восстановления с примерами использования, но и материалы (книги, документацию), на которые он опирался при разработке. Есть один минус: примеры использования и справка ко второй версии программы написаны на испанском языке.
Изучаем ядро Windows
Автор: Nedim Sabic
URL: https://github.com/rabbitstack/fibratus
Система: Windows
Fibratus — это инструмент, который способен захватывать большинство активностей ядра Windows: создание и завершение процессов/потоков, I/O файловой системы, работу с реестром, сетевую активность, загрузку и выгрузку DLL и многое другое.
Fibratus имеет очень простой CLI-интерфейс, который инкапсулирует в ядро механизм для сбора событий и устанавливает свои фильтры или запускает легкий Python-модуль, называемый filaments. С помощью filaments можно расширять Fibratus собственными скриптами на Python очень удобно и просто. Это позволяет создавать уникальные полезные дополнительные инструменты.
Пример вывода о захваченном событии:
5636 20:28:17.288000 2 taskmgr.exe (3531) - LoadImage (base=0x7fefab90000, checksum=204498, image=xmllite.dll, path=\Windows\System32\xmllite.dll, pid=3532, size=217088)
Каждая такая линия содержит:
- id — уникальный идентификатор события (увеличивается инкрементально);
- timestamp — время;
- cpu — ядро CPU, на котором оно было сгенерировано;
- process — имя процесса, которое вызвало событие;
- pid — идентификатор процесса;
- kevent — имя события ядра;
- params — параметры события.
Post-exploitation OS X / Linux agent
Автор: Adaptive Threat Division
URL: https://github.com/adaptivethreat/EmPyre/
Система: Linux/Mac
Инструмент EmPyre — это RAT (Remote Access Trojan), основанный на Empire framework для операционных систем Linux и Mac. Если в твоих задачах встречается большой зоопарк подобных систем, то ты не останешься равнодушным к данному инструменту.
Агент полностью написан на Python, асинхронен, имеет безопасный канал связи (протокол Диффи — Хеллмана), большое количество модулей для постэксплуатации. Из его возможностей стоит выделить:
- кейлоггер;
- keychain dump;
- мониторинг clipboard;
- сбор сообщения (Message.app DB: iMessage, Jabber, Google Talk, Yahoo, AIM);
- hash hump;
- browser dump (Chrome, Safari).
Присутствуют и такие модули, как:
- поднятие привилегий;
- закрепление в системе (через Login Hooks, Crontab, LaunchDaemon, Dylib Hijacking).
Стоит сказать, что достаточно много позаимствовано из других инструментов, но это не уменьшает достоинства данной разработки. А даже, наоборот, заставляет присмотреться к нему повнимательней, так как авторы постарались включить в него как можно больше полезного по теме постэксплуатации для Linux/Mac.
Более подробно об инструменте можно узнать из презентации External to DA the OSX Way: Operating In An OS X-Heavy Environment.
A linux system call fuzzer using TriforceAFL
Авторы: Jess Hertz, Tim Newsham
URL: https://github.com/nccgroup/TriforceLinuxSyscallFuzzer
Система: Linux
Проект TriforceLinuxSyscallFuzzer представляет собой набор файлов, предназначенных для фаззинга системных вызовов ядра Linux x86_64 при помощи AFL и QEMU. Естественно, для самого фаззинга необходим также образ ядра, в котором предполагается поиск уязвимостей.
Данный набор скриптов может помочь решить целый ряд задач:
- фаззинг;
- воспроизведение падения;
- отладку.
В основе проекта лежит фаззер TriforceAFL, представляющий собой пропатченную версию AFL, которая поддерживает полносистемный фаззинг с использованием QEMU. Данная версия QEMU умеет трейсить все переходы, пока код выполняется на эмуляторе.
В состав входит также утилита afl-showmap, которая позволяет отображать карту покрытия кода при фаззинге.
В последнее время полносистемный фаззинг набирает обороты. И это неудивительно: постепенно технологии эмуляции и виртуализации начинают все активнее и активнее применяться в security-проектах.