Содержание статьи
- KASLRfinder — утилита для поиска в памяти Windows 10
- Фреймворк с открытым исходным кодом для аудита WAF
- POC генератора архитектурно независимого VBA-кода
- Компилятор Shellcode для Windows
- Linux LD_PRELOAD руткит для архитектур x86, x86_64 и ARM
- Скрипт-демонстрация подмены MBR
- Демонстрационный пример рансомвари с командным сервером
KASLRfinder — утилита для поиска в памяти Windows 10
Автор: Ulf Frisk
URL: https://github.com/ufrisk/kaslrfinder
Система: Windows
KASLRfinder — это небольшая утилита, которая может быть использована для поиска в памяти Windows 10 ядра и загруженных драйверов, несмотря на базовые адреса, рандомизированные таким механизмом, как Kernel Address Space Layout Randomization (KASLR). Инструмент может запускаться как обычная программа и не требует привилегий администратора.
Инструмент работает на основе времени выполнения неудачных инструкций внутри Transactional Synchronization Extensions (TSX) блока. TSX был впервые введен в процессорах на базе Haswell, но был отключен из-за некоторых проблем. Инструкции TSX доступны на всех процессорах Skylake. Для получения более детальной информации советуем ознакомиться с записями Рафаля Войтчука (Rafal Wojtczuk) из Bromium Labs или презентацией c Black Hat.
KASLRfinder способен:
- найти адрес ядра в пределах допустимой погрешности 1 Мбайт;
- найти драйвер или адрес модуля точно, используя сигнатурный поиск;
- создать новые сигнатуры.
Системные требования:
- Skylake CPU или более новый (некоторые Haswells также могут работать);
- Windows 10 64-bit.
Подробнее об инструменте можно узнать из поста Windows 10 KASLR Recovery with TSX.
Фреймворк с открытым исходным кодом для аудита WAF
Авторы: George Argyros, Ioannis Stais
URL: https://github.com/lightbulb-framework/lightbulb-framework
Система: Linux
LightBulb — это фреймворк на Python с открытым исходным кодом для аудита Web Application Firewalls (WAF, файрволов уровня веб-приложения). Фреймворк состоит из двух основных алгоритмов:
- GOFA — алгоритм активного обучения, который позволяет анализировать программы удаленно, то есть запрашивать нужную программу и изучать вывод;
- SFADiff — алгоритм дифференциального тестирования черного ящика на основе обучения символических конечных автоматов (SFA). Выявлять различия между программами с аналогичной функциональностью — одна из важных проблем безопасности: такие различия могут быть использованы для снятия цифрового отпечатка (fingerprinting) или обхода атак против ПО для безопасности, такого как WAFs, предназначенные для обнаружения вредоносных входных данных для веб-приложений.
Инструмент впервые был представлен на конференции Black Hat Europe 2016 в презентации Another Brick Off the Wall: Deconstructing Web Application Firewalls Using Automata Learning и whitepaper.
POC генератора архитектурно независимого VBA-кода
Автор: Vincent Yiu
URL: https://github.com/mwrlabs/wePWNise
Система: Linux, Windows
WePWNise — это proof-of-concept Python-скрипт, который генерирует архитектурно независимый VBA-код для использования в документах Office или шаблонах. Помогает автоматизировать обход механизмов контроля и предотвращения эксплуатации в программном обеспечении.
Инструмент перечисляет Software Restriction Policies (SRPs) и присутствие EMET и динамически идентифицирует наиболее подходящие бинарные файлы для инжекта payload. WePWNise интегрируется с фреймворками эксплуатации (например, Metasploit, Cobalt Strike), также он принимает любые пользовательские полезные нагрузки в raw-формате.
WePWNise понимает как 32-, так и 64-битный raw-формат полезных нагрузок для того, чтобы быть в рабочем состоянии, когда он попадает на заранее неизвестную цель (с точки зрения архитектуры). Однако если требуется только архитектура x86, то все равно должна быть некая заглушка для архитектуры x64.
Компилятор Shellcode для Windows
Автор: Ionut Popescu
URL: https://github.com/NytroRST/ShellcodeCompiler
Система: Windows
Shellcode Compiler — это небольшая программа, которая компилирует код в стиле C/C++ в миниатюрный, позиционно независимый (PIC, position-independent) и без NULL-значений шелл-код для Windows. На текущий момент он с легкостью позволяет вызывать любые Windows API функции. К сожалению, обрабатывать условия и циклы он не умеет — внутренний язык написания шелл-кодов не позволяет этого, но так как проект с открытым исходным кодом, то можно расширить поддержку внутреннего представления данного компилятора шелл-кода.
Shellcode Compiler принимает на вход исходный файл, использует собственный компилятор для интерпретации кода и генерирует ассемблерный листинг, который собирается с помощью NASM.
Пример использования:
ShellcodeCompiler.exe -r Source.txt -o Shellcode.bin -a Assembly.asm
Текущие ограничения:
- не умеет взаимодействовать с return value от API-вызовов;
- не умеет взаимодействовать с указателями и буферами;
- не поддерживает переменные.
Все эти упущения обещают исправить как можно скорее. Однако есть и другие ограничения, все же это пока только альфа-версия. Если обнаружишь какие-то баги — смело пиши разработчикам.
Данная разработка впервые была представлена на конференции DefCamp в Румынии в ноябре 2016-го.
Linux LD_PRELOAD руткит для архитектур x86, x86_64 и ARM
Автор: mempodippy
URL: https://github.com/mempodippy/vlany
Система: Linux
Vlany — это Linux-руткит, базирующийся на LD_PRELOAD, для архитектур x86, x86_64 и ARM.
Особенности:
- скрытие процессов;
- скрытие пользователей в системе;
- скрытие сетевой деятельности;
- LXC-контейнер;
- антиотладка;
- антифорензика;
- стойкость к удалению;
- модификация динамического линкера;
- бэкдоры: accept() (взят из Jynx2), PAM-бэкдор, PAM auth логгер;
- набор специализированных команд.
Более подробно обо всем можно узнать из описания. Находится в активной стадии разработки.
Скрипт-демонстрация подмены MBR
Автор: David Buchanan
URL: https://github.com/DavidBuchanan314/pwn-mbr
Система: Linux
Простая демонстрация подмены MBR.
Фаза 1: инъекция
Зловредный бинарник запускается с привилегиями root. Исходная MBR копируется в другое свободное место (первый сектор, полностью содержащий нули) на диске до первого раздела. Boot-сектор перезаписывается вредоносным кодом.
Фаза 2: выполнение
В следующий раз при перезагрузке BIOS начнет исполнение пейлоада. В примере на GitHub у тебя высветится текст MBR PWNED! несколько сотен раз. Пейлоад определяет местоположение исходного boot-сектора (по magic number) и копирует его на свое законное место (0x7C00). Однако раньше там располагался пейлоад, поэтому прежде он копирует себя в другое место. Наконец, пейлоад переходит обратно на адрес 0x7C00, и загрузка продолжается в обычном режиме.
Демонстрационный пример рансомвари с командным сервером
Автор: NullArray
URL: https://github.com/NullArray/Cypher
Система: Windows/Linux
Cypher — демонстрационный пример ransomware, то есть вредоносного программного обеспечения, предназначенного для вымогательства. Написан с использованием PyCrypto и использует Gmail как командный сервер. Проект находится в стадии активной разработки.
При заражении каждой машине присваивается уникальный ID, который будет выслан вместе с ключом шифрования на почтовый адрес Gmail. После этого Cypher определит, какие файлы нужно зашифровать, и начнет собственно шифрование. Процесс распараллеливается, поэтому достигается высокая скорость. В последней версии добавлена функция перезаписи исходной MBR.
В итоге Cypher создаст файл README, в котором будут даны указания для получения ключа расшифрования.