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-примитивов, позволяют проверить реализацию неизвестного протокола на ошибки в более глубоких фазах машины состояния своего протокола.

Работа с инструментом заключается в двух этапах.

  1. Обучение. Например, на основе 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)

  2. Использование полученной модели. Например, для моделирования:

    $> 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.

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