Умный ROP

Автор: Nicolas Economou URL: https://github.com/CoreSecurity/Agafi Система: Windows

Тему написания ROP-шелл-кода в данной рубрике мы поднимали не раз и не два. И кажется, чем же еще могут удивить авторы? А оказывается, могут, ведь хакерская мысль не стоит на месте. Итак, что же интересного еще тут можно придумать? Если ты следишь за данной темой, то знаешь, что все текущие инструменты сейчас ищут по паттернам наборы полезных ROP-гаджетов. И некоторые из них также на основании паттернов могут в отдельных случаях сделать цепочку ROP-гаджетов для отключения DEP.

Agafi (Advanced Gadget Finder) написан на С/С++ и использует для поиска ROP-гаджетов эмуляцию кода (ему не требуется анализировать инструкции благодаря этому). Принцип, как говорит автор, базируется на идее EEREAP-инструмента. Одна из особенностей инструмента — поиск идет по снапшоту памяти процесса. Для своей работы он также использует QEMU и библиотеку diStorm3.

На самом деле это набор из четырех инструментов:

  • agafi — для поиска ROP-гаджетов на основе семантического выражения (а не паттерна);
  • agafi-rop — для построения ROP-цепочки для отключения DEP (на данный момент только через kernel32.VirtualProtect);
  • gisnap и fsnap — для создания снапшотов памяти процессов.

Благодаря такому принципу работы инструмент способен находить очень сложные гаджеты, которые не описать простыми паттернами. К сожалению, он работает только с x86-архитектурой.

Подробнее об инструменте ты можешь узнать из презентации Agafi/ROP с конференции EkoParty 2014.

agafi

PortEx

Автор: Katja Hahn URL: https://katjahahn.github.io/PortEx/ Система: Windows/Linux

PortEx — это Java-библиотека для анализа PE-файлов, в первую очередь от вредоносных программ. Она сфокусирована на обнаружении аномалий и нестандартных показателей в PE-файлах. Библиотека написана на Java и Scala.

Особенности:

  • чтение заголовочной информации с MS DOS Header, COFF File Header, Optional Header, Section Table;
  • чтение стандартных секций: import section, resource section, export section, debug section, relocations, delay-load imports;
  • дампинг sections, overlay, embedded ZIP, JAR или class файлов;
  • сканирование файлов на аномалии, включая структурные аномалии;
  • визуализация структуры PE-файла и его энтропии;
  • вычисление энтропии Шенона для файлов и секций;
  • вычисление хешей для файлов и секций;
  • сканирование с использованием PEiD-сигнатур или собственных;
  • сканирование JAR-файлов, которые обернуты в exe (например, с помощью exe4j, jsmooth, jar2exe, launch4j);
  • извлечение Unicode- и ASCII-строк из файлов;
  • обнаружение и дампинг overlay.

Для установки скачай файлы portex.pom и portex.jar и выполни следующую команду:

$ mvn install:install-file -Dfile=portex.jar -DpomFile=portex.pom

После этого ты можешь включать PortEx в свой проект следующим образом:

<dependency>
    <groupId>com.github.katjahahn</groupId>
    <artifactId>portex0</artifactId>
    <version>1.0.beta1.1</version>
</dependency>

Для более подробной информации смотри Wiki проекта.

Portex

Malware repository framework

Автор: Vu Quoc Huy URL: https://github.com/c633/malwaRE Система: Linux

MalwaRE — это репозиторий, выполненный в виде сайта на PHP Laravel фреймворке, для вредоносного программного обеспечения, а именно для управления своим собственным маленьким зоопарком. MalwaRE базируется на проекте от команды Adlice, но с набором новых фич.

Особенности:

  • решение располагается прямо у вас (нужен PHP/MySQL-сервер);
  • отображение результатов работы с VirusTotal (опционально для неизвестных семплов);
  • доступен поиск по фильтрам (результат по AV, имя файла, хеш, теги и так далее);
  • возможность добавления URL с описанием каждого семпла;
  • удобная работа с тегами;
  • кнопка «Пересканировать с помощью VirusTotal»;
  • скачивание семплов из репозитория.

Вот благодаря такому не особо сложному проекту можно очень просто и эффективно управлять своими семплами (а не разбрасывать их по всей машине). А в связи с наличием исходного кода это все несложно усовершенствовать и доделать под собственные нужды.

malwaRE

Анализируем исходный код

Автор: npdunn URL: sourceforge.net/projects/visualcodegrepp/ Система: Windows

VCG (Visual Code Grepper) — это инструмент для автоматической проверки безопасности исходного кода на языках:

  • C++;
  • C#;
  • VB;
  • PHP;
  • Java;
  • PL/SQL.

Инструмент позволяет значительно быстрее обнаруживать плохой и небезопасный код. В дополнение к некоторым более сложным проверкам он также имеет конфигурационный файл для каждого языка. В основном он позволяет добавлять любые функции, которые небезопасны, на твой взгляд, или которые тебе просто нужно найти в коде. Инструмент может не только искать такие функции, но и сразу давать комментарий, почему эта функция небезопасна. Это может быть очень удобно: если отдел безопасности сделает такие комментарии для отдела разработки, сразу будут понятны причины срабатывания сканера VCG.

Как заверяет сам автор, он попытался уменьшить количество ложных срабатываний, которыми грешат другие инструменты. На мой взгляд, это спорное утверждение, так как VCG, как и следует из названия, — это немного продвинутый grep с визуализацией. Но при несложных задачах он может быть весьма полезен.

VisualCodeGrepperv2

Mailing Phishing Framework

Автор: Matias P. Brutti URL: https://github.com/FreedomCoder/Cartero Система: Linux

Cartero — это простенькая библиотека фишингового фреймворка с CLI-инструментом на Ruby.

Cartero имеет модульную структуру и разделена на команды, каждая из которых выполняет свою отдельную независимую задачу (например, Mailer, Cloner, Listener, AdminConsole), а также подкоманды в виде опций для более детальной настройки задачи.

Например, если ты хочешь клонировать gmail.com, то достаточно использовать следующие две команды:

./cartero Cloner --url https://gmail.com --path /tmp --webserver gmail_com
./cartero Listener --webserver /tmp/gmail_com -p 80

После того как поднялся сайт, мы можем использовать команду Mailer для писем нашим жертвам:

./cartero Mailer --data victims.json --server gmail2 --subject "Internal Memo" --htmlbody email_html.html --attachment payload.pdf --from "John Doe <jdoe@company.com>"

Основные команды — это Mongo, Cloner, Listener, Servers, Templates, Mailer, WebMailer, LinkedIn, IMessage, GoogleVoice, Twilio, AdminWeb, AdminConsole. Также можно очень просто добавить и свои команды, инфраструктура проекта позволяет сделать это очень легко.

unnamed

KdExploitMe

Автор: clymb3r URL: https://github.com/clymb3r/KdExploitMe Система: Windows

Немного непривычный инструмент для нашей рубрики. KdExploitMe — это уязвимое приложение, на котором можно учиться и оттачивать мастерство эксплуатации уязвимостей в ядре для операционной системы Windows при помощи известных техник.

Можно успешно познакомиться с такими вещами, как:

  • AttackWriteWhatWhere;
  • PoolOverflow;
  • AttackDecAddress;
  • KernelAdressLeak.

Также можно получить знания об основных полезных нагрузках в ядре. Конечно, в основном для поднятия привилегий. Так что благодаря данному драйверу начинающему эксплойтописателю уровня ring 0 нет необходимости искать 0day. Он может взять этот драйвер, книжку «A Guide to Kernel Exploitation: Attacking the Core» и начать свой путь :).

Приятным бонусом в случае проблем с эксплуатацией будет присутствие готовых эксплойтов под заготовленные уязвимости. Драйвер написан для упражнений на Windows 7 и Windows 8.1

1024-BL1

Anti-Anti-Debug

Автор: Carbon Monoxide URL: https://bitbucket.org/NtQuery/scyllahide Система: Windows

ScyllaHide — это библиотека с открытым исходным кодом для антиантиотладки, то есть отладки того, что сопротивляется отладке. Библиотека поддерживает x64/x86-архитектуры. Работает она по следующему принципу: перехватывает различные функции в usermode для сокрытия отладки. А для сокрытия отладки в ring 0 обрати внимание на TitanHide.

ScyllaHide поддерживает различные отладчики с плагинами:

  • OllyDbg v1/v2;
  • x64_dbg;
  • Hex-Rays IDA v6+;
  • TitanEngine v2.

Поддерживает следующие техники: — Process Environment Block (PEB); — NtSetInformationThread; — NtSetInformationProcess; — NtQuerySystemInformation; — NtQueryInformationProcess; — NtQueryObject; — NtYieldExecution; — NtCreateThreadEx; — BlockInput; — NtUserFindWindowEx; — NtUserBuildHwndList; — NtUserQueryWindow; — NtSetDebugFilterState; — NtClose; — Remove Debug Privileges; — Hardware Breakpoint Protection (DRx); — Timing; — Raise Exception; — также техники для каждого отладчика в отдельности.

Отладка PE x64 полностью поддерживается только в x64_dbg и IDA. Стоит отметить, что ScyllaHide не ограничен только перечисленными отладчиками. Можно использовать standalone-версию и инжектить ее в любой отлаживаемый процесс.

Подробнее о библиотеке можно узнать из документации.

Теги:

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

Check Also

Эксплоиты в десятку. Обзор самых интересных докладов с мировых ИБ-конференций

В последние годы мы отучились воспринимать Windows как нечто невероятно дырявое. Эта опера…