
Educational Proof-of-Concept for the CVE-2022-30190 (Follina) vulnerability.
Образовательная разработка вредоносного ПО, эксплуатация, анализ и устранение
Полностью документированное доказательство концепции, демонстрирующее уязвимость Follina — от социальной инженерии до эксплуатации, криминалистического анализа и разработки патча.
⚠️ Только в образовательных целях. Все действия в этом репозитории проводились исключительно в изолированной лаборатории виртуальных машин в рамках модуля IE4012 «Наступательные хакерские тактики и стратегии» в SLIIT. Ничто из этого не должно использоваться за пределами контролируемой лаборатории. Не тестируйте на реальных системах или сетях.
CVE-2022-30190, также известная как Follina, — это уязвимость удалённого выполнения кода в средстве диагностики поддержки Microsoft (MSDT). Она была публично раскрыта 30 мая 2022 года и получила оценку CVSS 7.8 (Высокая). Эксплойт срабатывает, когда жертва открывает специально созданный документ Microsoft Office — макросы не требуются. Документ загружает HTML-полезную нагрузку с контролируемого злоумышленником HTTP-сервера, которая вызывает обработчик протокола ms-msdt: и передаёт произвольные команды системе через аргумент PCWDiagnostic.
SourceCode.zip/
├── PoC.py # Main exploit script
├── patch.py # Mitigation patch script
├── Invoice_FS-2026-8821_OVERDUE.docx # Generated malicious Word document
└── doc/ # Internal XML files extracted from the docx
├── word/
│ ├── document.xml # Main document body
│ └── _rels/
│ └── document.xml.rels # External OLE reference pointing to attacker server
└── [Content_Types].xml
Приманкой служит фишинговое письмо, имитирующее биллинговую платформу FinanceSync, с сообщением о просроченном счете. Вложение — это запароленный zip-архив (Invoice.zip), содержащий вредоносный документ Word. Использование зашифрованного архива позволяет обойти большинство сканеров почтовых шлюзов, так как содержимое не может быть проверено.
Invoice_FS-2026-8821_OVERDUE.docx и запускает HTTP-сервер на порту 8000word/_rels/document.xml.rels, указывающую на http://<ip_атакующего>:8000/index.html2026-03-25). Если условие по дате не выполнено, ничего не выполняетсяms-msdt: с аргументом PCWDiagnostic, содержащим команду cmd.exeWINWORD.EXE → msdt.exe → cmd.exe выполняется и создаёт файл sys_cache.dat в C:\Users\Public\ как подтверждение компрометацииpatch.py удаляет обработчик протокола URI ms-msdt из реестра Windows, разрывая цепочку эксплуатации на этапе разрешения URI до того, как любые контролируемые злоумышленником аргументы достигнут MSDT.
Машина атакующего (Kali Linux)
Машина жертвы (Windows 10)
ms-msdt в HKEY_CLASSES_ROOT2026-03-25 или позже# На машине атакующего
python3 PoC.py
Скрипт создаёт документ Word и запускает HTTP-сервер. Перенесите документ на виртуальную машину жертвы и откройте его. На терминале атакующего будет зафиксирован входящий запрос от Word.
Скрипт патча должен запускаться с правами Администратора на виртуальной машине жертвы с Windows.
# Проверка текущего состояния
python patch.py --status
# Применение патча (удаление ключа реестра ms-msdt)
python patch.py --apply
# Откат к уязвимому состоянию (для повторного тестирования)
python patch.py --rollback
| Машина | Роль | IP-адрес |
|---|---|---|
| Виртуальная машина Kali Linux | Атакующий — запускает PoC.py | 192.168.56.10 |
| Виртуальная машина Windows 10 | Жертва — открывает документ | 192.168.56.20 |
Обе виртуальные машины были подключены через сеть только для хоста VirtualBox без доступа в интернет.
| Поле | Значение |
|---|
| CVE ID | CVE-2022-30190 |
| Общеизвестное имя | Follina |
| Оценка CVSS | 7.8 (Высокая) |
| Вектор CVSS | AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
| Компонент | Средство диагностики поддержки Microsoft (MSDT) |
| Затронутые версии | Windows 7 — 11 / Server 2008 R2 — 2022 |
| Раскрыта | 30 мая 2022 г. |
| Официальный патч | KB5014697 (июнь 2022, Patch Tuesday) |
| Тест | До патча | После патча |
|---|
| Наличие ключа реестра ms-msdt | Да (УЯЗВИМО) | Нет (СМЯГЧЕНО) |
| HTTP-запрос от Word | Да | Да (без изменений) |
| Запуск msdt.exe | Да | Нет |
| Запуск cmd.exe | Да | Нет |
| Создание sys_cache.dat | Да | Нет |
| Эксплойт успешен | Да | Нет |