Содержание статьи
PE-мишка
PE-редакторы — инструменты не новые, и давно зарекомендовали себя как must have в арсенале любого реверсера. Но в последнее время в данной области образовался какой-то застой и ничего нового и действительно интересного не появлялось.
Хочется представить твоему вниманию новый инструмент для реверсинга исполняемых файлов — PE-bear. Утилита может похвастаться весьма богатым арсеналом возможностей, в том числе парой уникальных фишек:
- поддержка как PE32, так и PE64;
- просмотр нескольких файлов одновременно;
- сигнатурное определение упаковщиков с помощью сигнатурного анализа (работает очень неплохо);
- быстрый дизассемблер в комплекте (можно натравить на любое RVA/File-смещение);
- наглядная визуализация секций;
- функция сравнения двух PE-файлов;
- интеграция с меню Explorer (автор явно хотел добавить еще один пункт, но не знал какой :). — Прим. ред.) и многое другое.
Видно, что автор очень воодушевлен проектом, — он выпускает релиз с кучей нововведений каждые пять-шесть недель. Его цель — сделать удобный редактор для malware-аналитиков, и парень идет к своей цели.
Для себя основной фишкой этого PE-редактора я бы назвал возможность одновременно изучать несколько исполняемых файлов в одном окне. К тому же пару раз мне очень пригождалась функция сравнения двух бинарных файлов. С ее помощью, к примеру, можно быстро сравнить патчи, и она же пригодится при создании сигнатур.
Forensics tool для Mac
URL: github.com/jipegit/OSXAuditor
Система: Mac
OS X Auditor — это бесплатный инструмент на Python для проведения компьютерных расследований на машинах с OS X на борту. Для своей работы данный инструмент парсит и вычисляет хеши для определенного набора артефактов в запущенной системе или в образе системы, которую необходимо проанализировать. В итоге программа способна определить: - установленные расширения ядра; - системные агенты и демоны; - сторонние агенты и демоны; - элементы автозапуска; - скачанные файлы; - установленные приложения.
Из этого перечня нетрудно понять, что в первую очередь инструмент заточен для поиска возможных зловредов в системе (и не говори мне, что их нет для Mac). Помимо этого, из анализируемой системы можно извлечь:
- файлы из карантина;
- пользовательские данные из браузеров Safari, Firefox и Chrome;
- данные из аккаунтов почты и соцсетей;
- данные об используемых Wi-Fi-точках.
При этом для каждого извлеченного файла можно проверить его репутацию на Team Cymru’s MHR, VirusTotal, Malware.lu или в собственной локальной базе. А весь результат работы можно сохранить в простом текстовом файле или в HTML-документе. Еще вариант — и вовсе отправить на Syslog-сервер.
Исследуй свой (ну или не свой) Mac, и ты почти наверняка узнаешь о нем много нового и интересного :).
Анализируем шелл-коды
URL: github.com/dzzie/VS_LIBEMU
Система: Win
Scdbg — это инструмент для анализа шелл-кодов, который базируется на библиотеке эмуляции libemu. В своем роде это уникальный проект, который не имеет (по крайней мере публичных) аналогов.
Если жутко хочется узнать, что же делает шелл-код из эксплойта и при этом не стать его жертвой, самое верное решение — не выполнять шелл-код, а эмулировать его выполнение. Как раз это и делает scdbg. На текущий момент инструмент уже получил GUI для настройки запуска анализатора, а сам анализатор является консольным приложением, очень похожим на стандартный отладчик типа windbg, только со своим набором команд. Среди них: пошаговое выполнение шелл-кода, брейкпоинты, просмотр стека, просмотр цепочки seh, установка значений для регистров, список загруженных DLL и многое другое. Сейчас scdbg в своей базе содержит 199 перехватываемых API-вызовов, 12 известных DLL и 224 опкода.
Как одно из самых последних и важных нововведений можно выделить поддержку анализа ROP-шелл-кодов — без которых сегодня уже никуда. Проект полностью на Си.
Пример запуска scdbg для анализа ROP-шелл-кода, базирующегося на гаджетах из advapi32.dll:
scdbg -f advapi_rop.sc -rop -raw
0x77dd1000-c:\advapi.text.dat -poke
0x77dd1404-0x7c90dc9e
О различных режимах запуска и решении интересных кейсов с помощью scdbg ты можешь почитать в постоянно обновляемом блоге автора sandsprite.com/blogs.
PowerShell против кредиток
URL: netspi.github.io/PSCCChecker
Система: Win
В общем, есть задача найти в файлах, сетевом трафике, базе данных и еще где бы то ни было карточные данные (Card Numbers, CVV и так далее). И очень часто находится хеш номера кредитной карты вместе с ее первыми шестью или последними четырьмя цифрами. Номера кредитных карт имеют фиксированную длину, так что это значительно ограничивает пространство возможных значений, и, как следствие, возможно использовать brute force атаку на найденный хеш. CC_Checker — реализация атаки и подтверждение того, что хеширования номеров для их безопасности явно недостаточно.
Инструмент написан на PowerShell. Пример запуска программы:
CC_Checker.ps1 -i INPUT_FILE -o OUTPUT_FILE -h
HASH_TYPE [1-3]
где 1 = SHA-1, 2 = SHA-256, 3 = MD5. Формат входного файла имеет следующий вид:
123456??????1234:HASH
GDB как Olly
URL: github.com/snarez/voltron
Система: Linux
Раньше для приведения GDB к более-менее сносному виду существовал только специально средактированный конфигурационный файл gdbinit от хакера с ником fG!. Но тут на свет появилось расширение voltron, которое написано на Python. Оно, конечно, не дублирует полностью интерфейс Windows-собратьев, а лишь делает анализ данных и их вывод на экран более читаемым.
Архитектурно расширение работает следующим образом: в основном окне терминала отладки запускается voltron server, а в других терминалах — так называемые view, ответственные за отображение того или иного UI. На текущий момент реализованы следующие:
- окно регистров;
- окно стека;
- окно дизассемблера;
- окно backtrace;
- окно команд.
А чтобы не мучиться с размещением окон, автор создал конфиг для tmuxinator, где все окна уже сразу удобно расположены.
Также при желании можно написать и собственный view — специально для этого был создан подкласс TerminalView. В результате получается вполне неплохой интерфейс отладчика, который и не снился оригинальному GDB.
Voltron функционирует в GDB v6, GDB v7 и LLDB и работает на системах с архитектурами x86 и x86_64.
Король в локальной сети
Система: Linux
Различные встроенные снифферы включают в себя парсинг логинов и паролей для множества известных протоколов. В инструменте также не забыты и DoS-атаки.
В перспективе автор проекта видит свое детище как модульный командный центр всей сети, откуда можно просматривать и сразу углубленно анализировать всю сеть. И это вполне возможно, так как Zarp полностью написан на Python и имеет хорошую модульную структуру. Из зависимостей проекта можно выделить:
- Scapy (библиотека для крафтинга пакетов);
- airmon-ng suite (мониторинг беспроводных сетей);
- tcpdump (сниффер);
- paramiko (ssh2-модуль для Python);
- nfqueue-bindings.
Zarp уже включает в себя несколько десятвков модулей, которые разбиты на разные разделы:
- пойзнеры;
- DoS;
- снифферы;
- сканеры;
- взлом параметров сети;
- взлом сервисов;
- атаки на сессии.
Программируемая отладка
URL: visi.kenshoto.com/viki/MainPage
Система: Win/Linux/Mac/BSD/Solarisa
- IDA с отладчиком и IDAPython;
- WinDbg с PyKd;
- ImmunityDbg, написанный на Python, с коллекцией плагинов и скриптов для людей в серых шляпах.
В целом настало золотое время для программируемой отладки на Python, независимо от области применения. Ни исследование malware, ни поиск багов без автоматизации не обходится.
Пора представить тулкит VDB, построенный на vtrace от invisig0th из легендарной команды kenshoto. Они много лет устраивали DEF CON CTF: участники хорошо помнят, насколько интересные и крутые бинарные задания они создавали.
VDB (кстати, в прошлом приватный инструмент) отличается обширным функционалом и наличием документации в основном в коде. По правде говоря, другой документации, кроме как в исходниках, не существует. А сам код по себе очень хардкорный, изобилующий использованием различных недокументированных функций ОС. Так что это точно не инструмент скрипт-кидди.
Для тех, кто засиделся на Win32/Win64, кросс-платформенность идет приятным бонусом. Поддерживаются почти все системы: Windows, Linux, OS X, BSD, Solaris. Честности ради стоит сказать, что не для всех платформ работает весь функционал — местами он отличается, что, в принципе, легко объяснить. Использование GUI на Qt опционально.