Содержание статьи
SignFinder
Автор: Auth0r
URL: https://github.com/coruws/SignFinder
Система: Windows
Написанный на Python скрипт поможет в нелегком деле поиска сигнатур антивирусов в PE32-файлах. На данный момент утилита имеет пять режимов сканирования, позволяющих шаг за шагом детализировать места расположения сигнатур.
Поиск начинается с быстрого режима, уточняющего, какой вид сигнатур нам встретился:
- скан-строка в конкретной секции;
- сигнатура эмулятора;
- сигнатура на импортируемых WinAPI
- или (методом исключения) на оставшихся заголовках PE32.
python SF.py fast path_to_exe
После поверхностного осмотра принимается решение просканировать заголовки:
python SF.py head path_to_exe
или найти сигнатуру в конкретной секции:
python SF.py sect path_to_exe section_number
Для финальной стадии поиска подходит ручной режим, по очереди затирающий отрезки заданного участка:
python SF.py man path_to_exe offset size part_num
Таким нехитрым образом можно найти участок размером в пару байтов, гарантированно ломающий сигнатуру.
Утилита обновляется, обрастая новыми режимами сканирования.
Protocol Learning and Stateful Fuzzing
Автор: Hugo Gascon
URL: https://github.com/hgascon/pulsar
Система: Linux
Pulsar — это сетевой фаззер с возможностями автоматического изучения протокола и моделирования. Инструмент позволяет моделировать протокол с помощью методов машинного обучения, таких как кластеризация и скрытые марковские модели. Эти модели могут быть использованы для моделирования связи между Pulsar и реальным клиентом или сервером благодаря семантически правильно построенным сообщениям, которые, в сочетании с серией Fuzzing-примитивов, позволяют проверить реализацию неизвестного протокола на ошибки в более глубоких фазах машины состояния своего протокола.
Работа с инструментом заключается в двух этапах.
- Обучение. Например, на основе PCAP-файла:
$> pulsar.py -l -p file.pcap (1 pcap file)
$> pulsar.py -b 016169EBEBF1CEC2AAD6C7F0D0EE9026 (1 or more binaries from cuckoo storage)
$> pulsar.py -a (all binaries from cuckoo storage) - Использование полученной модели. Например, для моделирования:
$> pulsar.py -s -m model_file
Или для фаззинга:
$> pulsar.py -z -m model_file
Более подробно с инструментом и его подходами можно ознакомится в работе Pulsar: Stateful Black-Box Fuzzing of Proprietary Network Protocols.
TLS-Attacker
Авторы: Ruhr University Bochum
URL: https://github.com/RUB-NDS/TLS-Attacker
Система: Windows/Linux
TLS-Attacker — это фреймворк на языке программирования Java для анализа TLS-библиотек. Он способен отправлять произвольные сообщения протокола в произвольном порядке в TLS-общении и определять их модификацию, используя предоставленный интерфейс. Это дает разработчику возможность достаточно просто определить собственный поток TLS-протокола и проверить это против собственной TLS-библиотеки.
Проект состоит из пяти подпроектов:
- Transport. Транспортные утилиты для TCP и UDP;
- ModifiableVariable. Содержит изменяемые переменные, которые позволяют выполнять конкретные, а также случайные модификации переменных во время потока протокола. Изменяемые переменные используются в сообщениях протокола;
- TLS. Реализация протокола, на данный момент совместимого с (D)TLS 1.2;
- Attacks. Реализация нескольких хорошо известных атак (Bleichenbacher, Dtls Padding Oracle, EarlyCCS, Heartbleed, Invalid Curve, Padding Oracle, Poodle, Winshock) и тестов для этих атак;
- Fuzzer. Фаззинг-фреймворк, реализованный поверх функциональности TLS-Attacker.
На текущий момент есть поддержка следующих стандартов и алгоритмов:
- TLS versions 1.0 (RFC-2246), 1.1 (RFC-4346) и 1.2 (RFC-5246);
- DTLS 1.2 (RFC-6347);
- алгоритмы обмена (EC)DH и RSA key;
- AES CBC;
- расширения: EC, EC point format, Heartbeat, Max fragment length, Server name, Signature и Hash algorithms;
- TLS-клиент (сервер скоро обещают).
FeatherDuster
Автор: Daniel «unicornfurnace» Crowley
URL: https://github.com/nccgroup/featherduster
Система: Linux / OS Х
FeatherDuster — инструмент на Python для взлома криптографии, который пытается сделать выявление и эксплуатацию слабых криптосистем как можно проще. Библиотека Cryptanalib, его независимая часть, может использоваться отдельно от FeatherDuster, что дает возможность применять ее в собственных Python-проектах.
Запуск программы очень прост:
# python featherduster.py [ciphertext file 1] ... [ciphertext file n]
FeatherDuster имеет возможность автоматически распознавать и декодировать общие кодировки. При подаче на вход одного файла программа будет рассматривать каждую строку как потенциально зашифрованную или закодированную.
На текущий момент Cryptanalib может обнаружить и декодировать следующие схемы:
- Vanilla Base64;
- ASCII hex-encoding;
- Zlib compression.
Анализирующий движок Cryptanalib может выявить следующие свойства на стадии анализа:
- шифротекст с низкой энтропией (полезно для детектирования кастомных алгоритмов шифрования);
- блочный или потоковый алгоритм шифрования;
- ECB-режим;
- CBC-режим с фиксированным IV;
- хеширующий алгоритм;
- шифротекст OpenSSL;
- переиспользование ключа в потоковом алгоритме;
- RSA-ключи;
- большие RSA-модули;
- переиспользование RSA-модулей;
- шифротекст с транспозицией.
Подробнее об инструменте можно узнать из слайдов Cleaning up Magical Crypto Fairy Dust with Cryptanalib and FeatherDuster.
Manalyze
Автор: Ivan Kwiatkowski
URL: https://github.com/JusticeRage/Manalyze
Система: Windows/Linux
Порой необходимо самостоятельно вручную проанализировать какой-нибудь PE-файл на наличие в нем вредоносного кода. Да, есть антивирусы, но они, как правило, закрытые, и расширить их нельзя, а порой этого очень хочется. Да и логика работы некоторых не очень понятна. Тогда приходится реализовывать что-то свое, пускай не такое мощное, зато точно покрывающее наши потребности. По такому пути пошел и автор Manalyze.
Manalyze — это статический анализатор, написанный на С++, для PE-файлов с возможностью расширения с помощью плагинов. На текущий момент инструмент может детектировать:
- определение компилятора;
- обнаружение запакованных файлов;
- применение сигнатур ClamAV;
- поиск подозрительных строк;
- подозрительный импорт (например, WriteProcessMemory + CreateRemoteThread);
- обнаружение криптографических констант;
- отправка хешей на VirusTotal;
- проверка сигнатур (на Windows).
Примеры использования:
manalyze.exe program.exe
manalyze.exe -dresources -dexports -x out/ program.exe
manalyze.exe --dump=imports,sections --hashes program.exe
manalyze.exe -r malwares/ --plugins=peid,clamav --dump all
Подробнее об инструменте и о написании собственных плагинов для него можно узнать на сайте проекта.
A Java R.A.T.
Автор: Johannes Boczek
URL: https://github.com/Sogomn/Ratty
Система: Windows/Linux/Mac
Ratty — это программа на языке программирования Java для удаленного управления своей или не своей системой. Программа состоит из клиентской и серверной части. В итоге можно выполнять ряд команд на удаленной системе. GUI-интерфейс отображает такую информацию об удаленной системе, как:
- имя системы;
- местонахождение;
- IP-адрес;
- версия операционной системы.
Это все позволит ориентироваться в случае множества удаленно управляемых машин. Но посмотрим, что именно мы можем делать с помощью данной программы на этих системах. Что касается функциональности, то можно:
- получить снимок экрана;
- получить видеопоток удаленной системы;
- получить аудиопоток удаленной системы;
- получить буфер обмена;
- записать нажатия клавиш;
- скачать и запустить файл.
Ну и так как программа на Java, то это все отлично работает сразу на нескольких операционных системах: Windows, Linux, OS Х. Благодаря наличию исходного кода можно добавлять и собственную функциональность.
Unofficial IDE for Nmap Script (NSE) Development
Автор: Sanoop Thomas
URL: http://halcyon-ide.org/
Система: Windows/Linux
Halcyon — это среда разработки, сфокусированная на скриптах для легендарного сетевого сканера Nmap. Для тех, кто не в курсе: для Nmap можно создавать так называемые NSE-скрипты и расширять его функциональность. Данная среда разработки написана на Java и имеет в своем составе:
- навигацию по коду;
- подсветку синтаксиса;
- builder;
- автодополнение;
- отладку.
В общем, все, что только необходимо серьезной IDE.
Halcyon понимает Nmap-библиотеки так же хорошо, как и Lua-синтаксис. Из мелких полезностей есть поддержка шаблонов и часто используемых фрагментов кода, как web-crawling, bruteforcing, что упрощает и ускоряет разработку собственных скриптов.
Впервые инструмент был представлен на конференции Black Hat Asia 2016.