Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2021-1675 — Учебный proof-of-concept для PrintNightmare (CVE-2021-1675/34527) с имитацией нерабочей полезной нагрузки, анализом вектора атаки, сопоставлением с MITRE, рекомендациями по обнаружению и шагами по устранению уязвимости. | Kitploit
Инструменты/GitHubGitHub/hkenzokimura/cve-2021-1675
Повышение привилегийАнализ уязвимостейЭксплуатацияЛатеральное перемещениеТестирование на ПроникновениеОбучение и Образование
GitHubhkenzokimura/cve-2021-1675

CVE-2021-1675

Учебный proof-of-concept для PrintNightmare (CVE-2021-1675/34527) с имитацией нерабочей полезной нагрузки, анализом вектора атаки, сопоставлением с MITRE, рекомендациями по обнаружению и шагами по устранению уязвимости.

Репозиторий
291 месяц назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

🖨️ CVE-2021-1675 — PrintNightmare Windows Print Spooler RCE/LPE

Тип: Proof of Concept — Симуляция (нерабочий) CVE: CVE-2021-1675 + CVE-2021-34527 CVSS: 7.8 (LPE) / 8.8 (RCE) Псевдоним: PrintNightmare Исправлено: Июнь/Июль 2021 — KB5004945 Добавлено в CISA KEV: Июль 2021

⚠️ Полезная нагрузка этого PoC является явно вымышленной и не-вредоносной — всего 4 байта заголовка DCE/RPC, за которыми следует имя функции в ASCII. Она не выполняет код, не устанавливает драйвер, не повышает привилегии. Использование исключительно в целях обучения и разработки детектов.

Разработано: HKK


$ cat ./vulnerability_summary.txt

CVE-2021-1675, известный как PrintNightmare, — это критическая уязвимость удаленного выполнения кода и локального повышения привилегий в службе Windows Print Spooler. Ошибка позволяет атакующим выполнять произвольный код с привилегиями SYSTEM, эксплуатируя функцию RpcAddPrinterDriverEx(), используемую для удаленной установки драйверов принтера без надлежащей проверки контроля доступа.

Первоначально классифицированная как LPE (CVSS 7.8) и исправленная в «вторнике исправлений» в июне 2021 года, Microsoft переклассифицировала уязвимость как RCE (CVSS 8.8) 21 июня. Чтобы избежать путаницы, вектор RCE получил новый идентификатор, CVE-2021-34527 — оба обычно называют PrintNightmare.


$ cat ./timeline.txt

08 июня 2021  Microsoft публикует первоначальный патч в «вторник исправлений» — CVE-2021-1675 (LPE, CVSS 7.8)
21 июня 2021  Microsoft переклассифицирует как RCE (CVSS 8.8)
29 июня 2021  Исследователи случайно публикуют PoC — полагая, что это та же уже исправленная уязвимость
01 июля 2021  CVE-2021-34527 присвоен вектору RCE — отличному от исходного LPE
02 июля 2021  Microsoft выпускает экстренный внеплановый патч: KB5004945
Июль 2021    CISA добавляет в каталог Known Exploited Vulnerabilities
              Активная эксплуатация группами программ-вымогателей (Vice Society, Magniber и т.д.)

$ cat ./architecture.txt

Почему Print Spooler — такой ценный вектор?

┌──────────────────────────────────────────────────────────────────────────┐
│              PRINTNIGHTMARE — СХЕМА АТАКИ                                │
│                                                                          │
│  АТАКУЮЩИЙ (аутентифицированный пользователь)   WINDOWS PRINT SPOOLER   │
│                                                  (spoolsv.exe)          │
│  1. Аутентифицироваться с любой                  ┌────────────────────┐ │
│     действительной учетной записью домена       │  Работает как SYSTEM│ │
│                    │                            │  Активен по умолчанию│ │
│  2. Подключиться через RPC к                     │  на всех Windows,   │ │
│     именованному каналу \pipe\spoolss           │  включая DC         │ │
│                    │                            └──────────┬─────────┘ │
│  3. Вызвать RpcAddPrinterDriverEx()                         │           │
│     с путем к вредоносной DLL ────────────────────────────►│           │
│     (UNC: \\attacker\share\evil.dll)                       │           │
│                                           ┌─────────────────▼─────────┐ │
│                                           │ Print Spooler загружает  │ │
│                                           │ драйвер (DLL) как SYSTEM │ │
│                                           │ без проверки источника   │ │
│                                           │ или целостности          │ │
│                                           └─────────────────┬─────────┘ │
│                                                            │           │
│  ◄── RCE / LPE как SYSTEM ────────────────────────────────┘           │
│       Новый пользователь admin, reverse shell,                          │
│       развертывание программ-вымогателей и т.д.                         │
│                                                                          │
│  ─────────────────────────────────────────────────────────────────────  │
│  ЭТОТ PoC: только TCP connect + 25 байт → без реального RPC → без эксплойта
└──────────────────────────────────────────────────────────────────────────┘

$ cat ./design_decisions.md

1. Анализ вымышленной полезной нагрузки

fake_rpc_payload = b"\x05\x00\x0b\x03RpcAddPrinterDriverEx"

Эта полезная нагрузка имеет 25 байт и демонстрирует две концепции одновременно:

Байты 0-3: Легитимный заголовок DCE/RPC

БайтЗначениеСмысл
\x055Версия протокола DCE/RPC (версия 5 — стандарт Windows)
\x000Младшая версия 0
\x0b11Тип PDU: BIND — первый шаг согласования RPC
\x033Флаги: `PFC_FIRST_FRAG(0x01)

Байты 4-24: Имя функции в ASCII

RpcAddPrinterDriverEx — имя уязвимой функции, в открытом виде.

Почему эта полезная нагрузка не работает как реальный эксплойт?

Легитимный BIND RPC потребовал бы после 4-байтового заголовка:

- max_xmit_frag     (2 байта)
- max_recv_frag     (2 байта)
- assoc_group_id    (4 байта)
- num_ctx_items     (1 байт)
- context_elem[]    → UUID интерфейса MS-RPRN:
                      {12345678-1234-ABCD-EF00-0123456789AB}
- transfer_syntaxes → UUID NDR

Без этой структуры Windows немедленно отклоняет пакет. Полезная нагрузка, по сути, является лишь проверкой связности — «могу ли я достичь порта 445 с этой вымышленной полезной нагрузкой?».


2. Порт 445 — SMB как транспорт RPC

sock.connect((target_ip, 445))

Почему 445, а не 135 (RPC Endpoint Mapper)?

PrintNightmare использует SMB именованный канал \pipe\spoolss как транспорт — не прямой RPC. Реальный поток:

1. TCP connect → порт 445 (SMB)
2. SMB negotiate + session setup (аутентификация NTLM/Kerberos)
3. Tree connect → IPC$
4. Открытие именованного канала → \pipe\spoolss
5. DCE/RPC BIND → интерфейс MS-RPRN
6. Вызов RpcAddPrinterDriverEx() с NDR marshaling

PoC имитирует только шаг 1 — начальное TCP-соединение — без реализации шагов 2-6.

sock.settimeout(5): таймаут в 5 секунд предотвращает зависание PoC на хостах, которые не отвечают. Полезно для быстрого сканирования доступности порта.


3. CVE-2021-1675 против CVE-2021-34527 — Различие

АспектCVE-2021-1675CVE-2021-34527
ВекторЛокальный (LPE)Удаленный (RCE)
CVSS7.88.8
АутентификацияЛокальная учетная записьАутентифицированная учетная запись домена
ПатчИюнь 2021 (вторник исправлений)Июль 2021 (внеплановый KB5004945)
Уязвимая функцияRpcAddPrinterDriverExRpcAddPrinterDriverEx
СценарийЛокальное повышение привилегийУдаленный RCE через SMB именованный канал

Корневая причина в обоих случаях одна и та же: функция RpcAddPrinterDriverEx() не проверяет источник файлов драйвера, не накладывает надлежащих ограничений привилегий для установки драйверов и не проверяет подлинность или целостность загружаемых DLL.


$ cat ./mitre_mapping.yml

tactic: Initial Access / Lateral Movement
  - T1210    # Exploitation of Remote Services
             # RPC-вызов через \pipe\spoolss на удаленный хост
             # Требуется действительная учетная запись домена

tactic: Privilege Escalation
  - T1068    # Exploitation for Privilege Escalation
             # обычный пользователь → SYSTEM через Print Spooler
             # CVE-2021-1675 (LPE): локальный процесс повышается до SYSTEM

tactic: Execution
  - T1569.002  # System Services: Service Execution
               # Вредоносная DLL загружается spoolsv.exe как SYSTEM
               # Эквивалент выполнения кода через службу Windows
Скачать инструмент