Этот набор инструментов Ghidra представляет собой комплексный набор инструментов, предназначенных для оптимизации и автоматизации различных задач, связанных с запуском Ghidra в режиме Headless. Этот набор инструментов предоставляет широкий спектр сценариев, которые можно выполнять как внутри, так и вместе с Ghidra, позволяя пользователям выполнять такие задачи, как поиск уязвимостей, комментирование псевдокода с помощью ChatGPT и создание отчетов с визуализацией данных в анализируемой базе кода. Он позволяет пользователю загружать и сохранять свой собственный сценарий и взаимодействовать со встроенным API сценария.
Автоматизация безголового режима : набор инструментов позволяет пользователям беспрепятственно запускать и запускать Ghidra в безголовом режиме, обеспечивая автоматическую и пакетную обработку задач анализа кода.
Репозиторий/управление скриптами : набор инструментов включает репозиторий готовых скриптов, которые можно выполнять в Ghidra. Эти сценарии охватывают множество функций, предоставляя пользователям возможность выполнять разнообразные задачи анализа и манипулирования. Он позволяет пользователям загружать и сохранять свои собственные сценарии, обеспечивая гибкость и возможности настройки в соответствии с конкретными требованиями анализа. Пользователи могут легко управлять и систематизировать свою коллекцию сценариев.
Гибкие параметры ввода : пользователи могут использовать набор инструментов для анализа отдельных файлов или целых папок, содержащих несколько файлов. Такая гибкость позволяет эффективно анализировать как мелкомасштабные, так и крупномасштабные базы кода.
Охота на уязвимости с распознаванием образов . Используйте сценарии набора инструментов для выявления потенциальных уязвимостей в анализируемой базе кода. Это помогает исследователям и разработчикам безопасности выявлять слабые места в системе безопасности и активно их устранять.
Охота на уязвимости с помощью SemGrep : благодаря исследователю безопасности 0xdea и созданному им набору правил мы можем использовать простые правила и SemGrep для обнаружения уязвимостей в псевдокоде C/C++ (их github: https://github.com/0xdea/semgrep). -правила)
Автоматическое создание псевдокода : Автоматическое создание псевдокода в режиме Headless в Ghidra. Эта функция помогает понять и документировать логику кода без ручного вмешательства.
Комментирование псевдокода с помощью ChatGPT . Повысьте читаемость и понимание базы кода, используя ChatGPT для создания комментариев, подобных человеческим, для фрагментов псевдокода. Эта функция помогает документировать и объяснять логику кода.
Отчеты и визуализация данных : создавайте комплексные отчеты с визуализацией для обобщения и эффективного представления результатов анализа. Набор инструментов предоставляет возможности визуализации данных, помогающие выявлять шаблоны, зависимости и аномалии в базе кода.
Прежде чем использовать этот проект, убедитесь, что у вас установлено следующее программное обеспечение:
Гидра: Вы можете скачать Гидру из репозитория GitHub Агентства национальной безопасности @ https://github.com/NationalSecurityAgency/ghidra.
Java: убедитесь, что у вас установлен Java Development Kit (JDK) версии 17 или выше. Вы можете скачать его с сайта OpenJDK @ https://openjdk.org/projects/jdk/17/.
BinExport (ОПЦИЯ). Следуйте инструкциям по установке расширения Ghidra https://github.com/google/binexport.
SemGrep (ОПЦИЯ). Следуйте подробной инструкции https://semgrep.dev/docs/getting-started/.
Установите необходимые компоненты, упомянутые выше.
Загрузите выпуск Sekiryu прямо с Github или используйте: pip install sekiryu
.
Чтобы использовать скрипт, вы можете просто запустить его с двоичным файлом с параметрами, которые вы хотите выполнить.
sekiryu [-F FILE][OPTIONS]
Обратите внимание, что выполнение бинарного анализа с помощью Ghidra (или любого другого продукта) — относительно медленный процесс. Таким образом, ожидайте, что бинарный анализ займет несколько минут в зависимости от производительности хоста. Если вы запускаете Sekiryu для очень большого приложения или большого количества двоичных файлов, будьте готовы ЖДАТЬ
Найдите демо-версию на сайте www.bushido-sec.com.
The "server.py" is basically built to allow scripts to interract with Ghidra each other and with the host system. An User can easily develop their own script, load and saved it in the script folder and use the known functions of the API to interract with Ghidra.
Чтобы использовать его, Пользователь должен импортировать xmlrpc в свой скрипт и вызвать функцию, например: proxy.send_data
send_data() — позволяет пользователю отправлять данные на сервер. («данные» — это словарь)
Recv_data() — позволяет пользователю получать данные с сервера. («данные» — это словарь)
request_GPT() — позволяет пользователю отправлять строковые данные через API ChatGPT.
Скрипты сохраняются в папке /modules/scripts/, вы можете просто скопировать туда свой скрипт. В файле ghidra_pilot.py
вы можете найти следующую функцию, которая отвечает за запуск безголового сценария Ghidra:
def exec_headless(file, script): """ Выполнить автономный анализ ghidra """path = ghidra_path + 'analyzeHeadless'# Установка переменныхstmp_folder = "/tmp/out"os.mkdir(tmp_folder) cmd = ' ' + tmp_folder + ' TMP_DIR -import'+ ' '+ файл + ' '+ "-postscript "+ скрипт +" -deleteProject"# Запуск Ghidra с указанным файлом и скриптом. Попробуйте: p = subprocess.run([str(path + cmd)],shell=True, capture_output=True) os.rmdir(tmp_folder), за исключением KeyError как e: print(e) os.rmdir(tmp_folder)
Использование довольно простое: вы можете создать свой собственный скрипт, а затем просто добавить функцию в ghidra_pilot.py
например:
def yourfunction(file): try: # Установка scriptscript = "modules/scripts/your_script.py"# Запустите функцию exec_headless в новом потокеthread = threading.Thread(target=exec_headless, args=(file, script)) thread.start () thread.join(), за исключением исключения как e: print(str(e))
Файл cli.py
отвечает за интерфейс командной строки и позволяет добавлять аргументы и команды, связанные следующим образом:
Analysis_parser.add_argument('[-ShortCMD]', '[--LongCMD]', help="Ваше справочное сообщение", action="store_true")
Scripts/SCRIPTS/SCRIIIIIPTS : этот инструмент разработан как набор инструментов, позволяющий пользователю легко сохранять и запускать свои собственные сценарии, очевидно, если вы можете внести свой вклад в какой-либо сценарий (все, что интересно, будет одобрено!)
Оптимизация : Любой вид оптимизации приветствуется и будет почти автоматически утверждаться и развертываться в каждом выпуске. Некоторые приятные вещи могут быть: улучшение параллельного выполнения задач, очистка кода и общее улучшение.
Анализ вредоносного ПО : это большая часть, с которой я не знаком. Любой аналитик вредоносного ПО, желающий внести свой вклад, может предложить идею, сценарий или даже зафиксировать код непосредственно в проекте.
Отчетность : я не инженер по визуализации данных, если кто-то захочет улучшить/внести свой вклад в эту часть, это будет очень приятно.
The xmlrpc.server module is not secure against maliciously constructed data. If you need to parse untrusted or unauthenticated data see XML vulnerabilities.
A lot of people encouraged me to push further on this tool and improve it. Without you all this project wouldn't have been the same so it's time for a proper shout-out: - @JeanBedoul @McProustinet @MilCashh @Aspeak @mrjay @Esbee|sandboxescaper @Rosen @Cyb3rops @RussianPanda @Dr4k0nia - @Inversecos @Vs1m @djinn @corelanc0d3r @ramishaath @chompie1337 Thanks for your feedback, support, encouragement, test, ideas, time and care.
Для получения дополнительной информации о Bushido Security посетите наш веб-сайт: https://www.bushido-sec.com/.