4 829
Подписчики
-224 часа
+127 дней
+9330 день
Архив постов
4 828
Короче, идея с анализом малвари под QEMU TCG провалилась. Этот режим крайне медленный, даже если отключить мониторинг памяти и оставить только сисколы. Вернулся к KVM режиму. Ускорить, оптимизировать, давать больше времени вообще не помогает.
4 828
с помощью qemu tcg можно также исследовать UEFI малварь, незнаю дойдут ли у меня до туда руки, так как щас чисто под юзерспейс малварь разрабатываю. Ну посмотрим
4 828
Вместо приватных репозиториев на гитхабе я стал использовать Forgejo - это селф хостед локальный репозиторий
4 828
В результате запуска одного сэмпла малвари, qemu tcg виртуалка генерит около 550 Мегабайт текста, и это еще сильно обрезанная версия. Приходится выставлять лимиты, иначе легко можно несколько гигабайт на один ран потратить. Эти гигабайты надо еще выкачать с виртуалки на хост, передать мне по локальной сети. Для полноценных больших ресерчей один прогон будет генерить десятки гигабайт данных.
4 828
Внутри винды, которая запущена под qemu tcg мы не ставим Procmon, Sysmon, дебаггеры и прочие анализирующие тулзы. Винда остается максимально чистой, а все наблюдение происходит снаружи, через QEMU TCG и офлайн-парсинг логов. Qemu Guest Agent тоже удаляется.
QEMU TCG пишет не красивый отчет, а низкоуровневый поток событий: выполненные блоки кода, syscall-события, обращения к памяти. На этом уровне в логе есть шум всей виртуальной машины: ядро Windows, службы, cmd/launcher, conhost, дочерние процессы и сам sample. В этом шуме мы должны найти образ/процесс целевой малвари и выделить конкретно ее действия. Сделать это можно по комбинации сисколов и определенных действий. Главная сложность — отделить поведение образца от шума операционной системы и превратить поток низкоуровневых событий QEMU TCG в понятную картину: какие файлы трогал sample, куда писал, какие ключи реестра менял, пытался ли инжектиться в другие процессы и оставлял ли следы закрепления.
Как это реально работает:
1. QEMU-плагин пишет сырой syscall-поток: PID, TID, CR3, image, syscall number, RIP, аргументы регистров и часть stack-аргументов.
2. Скрипт парсит
ntdll.dll из гостевой Windows и строит карту:
0x55 -> NtCreateFile 0x3A -> NtWriteFile 0x18 -> NtOpenKey ...То есть syscall number превращается в человеческое имя:
NtCreateFile, NtWriteVirtualMemory, NtSetValueKey.
3. Затем события фильтруются до PID/image целевого sample
4. После этого идут правила. Сисколы:
NtCreateFile / NtOpenFile / NtReadFile / NtWriteFileпопадают в file activity. А
NtCreateKey / NtOpenKey / NtSetValueKey / NtDeleteValueKeyпопадают в registry activity. Да, для анализа обычной малвари это оверхэд. Но зато такой стеап может быть полезен и для анализа эксплоитов, особенно ядерных, так как можно видеть всю работу в ядре.
4 828
Есть проект https://panda.re/, который реализует точно такую же идею, что и я пописал. Я его пробовал использовать, но он очень нестабилен, еле как работает, больше трети функций вообще не работают, местами там куски дерьма мамонта. Вообще не юзабельное. Поэтому свой велосипед оказывается лучше и притом работает с виртуалкой Вин10 (панда только с вин 7).
4 828
Решил исследовать тему исследования малвари путем запуска через QEMU TCG, в полностью headless-режиме.
QEMU TCG — это режим QEMU без аппаратной виртуализации, где гостевые инструкции не выполняются напрямую на CPU, а переводятся и исполняются самим QEMU через Tiny Code Generator. Tiny Code Generator берет блоки инструкций гостевой архитектуры, переводит их во внутреннее представление, а затем генерирует исполняемый код для CPU хоста. Эти переведенные блоки кэшируются и переиспользуются, поэтому QEMU не интерпретирует каждую инструкцию заново, а выполняет динамическую бинарную трансляцию. Стек получился такой:
Proxmox VE -> Debian VM -> QEMU -> Windows 10 guest -> malware sample
На железе стоит Proxmox VE. Внутри него поднял минимальную Debian VM, а уже внутри Debian запускается QEMU с Windows 10. То есть Windows с малварью живет не напрямую в Proxmox, а внутри nested QEMU. Параметры Debian VM:
- Debian GNU/Linux 13 trixie
- 8 vCPU
- ~8 GB RAM
Режим TCG медленнее, зато QEMU сам транслирует guest-инструкции и может логировать выполнение на уровне блоков, инструкций и CPU state. QEMU запускался примерно так:
qemu-system-x86_64 \
-accel tcg,thread=multi \
-cpu max \
-smp 8 \
-m 4096 \
-display none \
-nic none \
-drive file=win10-run.qcow2,format=qcow2,if=ide \
-serial file:serial.log \
-D qemu-tcg.log \
-d guest_errors
Перед запуском создается snapshot/overlay, внутрь Windows копируется sample, затем Windows стартует в TCG. Один реальный прогон малвари занял примерно 5 минут. За 60 секунд полной трассировки получилось около 2.1 GB лога. Лог содержит сырые инструкции, который выполнялись на "процессоре":
IN: 0xfffff80577ca06a1: 48 8b c7 movq %rdi, %rax 0xfffff80577ca06a4: eb ac jmp 0xfffff80577ca0652 Trace 6: RAX=0000000000000000 RBX=ffffe509e52773f8 RIP=fffff80577ca06a1 RFL=00040246 CR3=000000012dd3f000Мы также видим весь kernel space, любой код который там выполнялся, все системколлы, полный доступ к памяти винды, что дает очень много инфы о запускаемой программы. Далее я хочу чекнуть как с 2 гигабайтным логом справится локальная ллм типа геммы
4 828
В итоге была найдена только 1 уязвимость out of bounds read (cwe 126), зарепортил, уровень medium 5.5, посмотрим че ответя. Таргет был Windows driver ПО Krisp https://hackerone.com/krisp?type=team
4 828
https://github.com/kernullist/kn-live-dbg - полезная тулза. ЛЛМ с ней норм работает. Помогает проводить проверку найденных крешей в драйвере. Я слежу за автором в твиттере, тулза постоянно обновляется, он говорил что добавил МСП в нее, но пока вроде не запушил. Даже без mcp ллм норм с ней работает
4 828
Короче, отфаззил один таргет с hackerone, фаззился он недели две. За это время нашлось ровно 100 крэшей (красивое число). Теперь начался triage. Пока нашел только Dos.
4 828
Случайно наткнулся на репозиторий, где приводится небольшой намеренно уязвимый бинарник. Решил чекнуть сколько уязвимостей найдут маленькие модели
4 828
CVE-2026-41089 PoC — Netlogon CLDAP stack buffer overflow (CVSS 9.8 CRITICAL)
https://github.com/0xABCD01/CVE-2026-41089
4 828
Я прогнал маленькие локальные модели на небольшой задачке - разобрать гипотетическое Windows Electron приложение и найти в нем уязвимости. Результаты описал в статье:
https://www.orderofsixangles.com/ru/2026/06/24/local-model-testing-ru.html
4 828
Надо чекнуть
Toolkit for Windows internals, vulnerability analysis, and reproducible security research workflows.
https://github.com/kernelstub/NTForge
4 828
я улучшил промпт, добавил немного инстурментов, пошаманил над виртуалкой, и запустил исследовать новый таргет. Посмотрю на результаты, и если они будут удовлетворительны, то скину детали. Также я в воскресенье весь день тестил небольшие модельки для security анализа на своем мак мини 24 Гб, результаты записал, но пока лень выкладывать, но думаю выложу, вдруг кому интересно будет
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
