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

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

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

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

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

Категории

Все категории
Loading categories
p4wned — Исследования безопасности и инструменты Perforce - CVE-2026-6043 | Kitploit
Инструменты/GitHubGitHub/flyingllama87/p4wned
РазведкаСканеры уязвимостейСканеры веб-уязвимостейФреймворки для эксплойтовАтаки на ПаролиЭксплуатацияСбор информацииТестирование на ПроникновениеНеправильная Конфигурация
GitHubflyingllama87/p4wned

p4wned

Исследования безопасности и инструменты Perforce - CVE-2026-6043

22 месяцев назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
РепозиторийСайт

P4WNED (CVE-2026-6043)

Инструменты для исследования безопасности Perforce (Helix Core) и шаблоны nuclei.

Статья об исследовании: https://morganrobertson.net/p4wned/

Пожалуйста, прочитайте выше для полных подробностей.

Только авторизованные цели. Используйте на своих серверах или с явным письменным разрешением.

Целевая аудитория: администраторы серверов Perforce, пентестеры, инженеры по безопасности

Обновление мая 2026: Выпущена Perforce 2026.1. Эта версия поставляется с безопасными настройками по умолчанию! Очень рады видеть этот релиз для защиты интеллектуальной собственности разработчиков. Читать далее.

Примечание: Эти инструменты сканируют неправильные конфигурации, являющиеся результатом CVE-2026-6043.


Требования

ИнструментТребуется
p4wned.pyPython 3, p4 CLI binary (см. ниже)
p4ghost.pyPython 3, p4 CLI binary, локальный экземпляр p4d (см. настройку ниже)
p4-auth-hammerg++, Perforce C++ API, OpenSSL 1.1.1 (см. p4-auth-hammer/README.md)
JavaScript инструментыNode.js (без внешних зависимостей)
Шаблоны NucleiNuclei v3+
Модули MetasploitMetasploit Framework

Получение бинарного файла p4 (требуется для p4wned.py и p4ghost.py):

root@kitploit:~
# Subject to Perforce terms of use: https://www.perforce.com/legal
wget https://ftp.perforce.com/perforce/r25.2/bin.linux26x86_64/p4
chmod +x p4

Предыстория

Серверы Perforce используют собственный бинарный TCP-протокол (порт по умолчанию 1666). Многие установки поставляются с небезопасными настройками по умолчанию — неаутентифицированный список пользователей, раскрытие информации о сервере, доступные удаленные депо, отсутствие требований к паролям и отсутствие ограничения скорости попыток входа. Все инструменты здесь используют эти настройки по умолчанию без необходимости в учетных данных.


Инструменты

p4wned.py — Полный сканер безопасности

Основной сканер. Использует бинарный файл CLI p4 для перечисления пользователей, проверки учетных данных, списка депо и создания отчета.

root@kitploit:~
python3 p4wned.py [-brute] [-audit] [-parallel N]

Параметры:

ФлагОписание
-bruteВключить режим подбора — проверяет пароли для всех обнаруженных учетных записей
-auditРежим тщательного аудита — продолжает тестирование всех пользователей даже после нахождения уязвимости
-parallel NКоличество параллельных попыток подбора пароля (по умолчанию: 1)

Конфигурация (редактировать в начале скрипта):

Что он делает:

  • Определяет режим сервера ASCII или unicode
  • Перечисляет пользователей (если run.users.authorize=0)
  • Проверяет пустые пароли и известные/распространенные учетные данные
  • Выводит названия депо и примеры недавних путей к файлам
  • Проверяет членство в группе super для скомпрометированных учетных записей
  • Выводит структурированный текстовый отчет

Вывод в консоль:

root@kitploit:~
$ python3 p4wned.py

                   ___ _  _  __    __    __  __  ___ 
                  / _ \ || |/ / /\ \ \/\ \ \/__\/   \
                 / /_)/ || |\ \/  \/ /  \/ /_\ / /\ /
                / ___/|__   _\  /\  / /\  //__/ /_// 
                \/       |_|  \/  \/\_\ \/\__/___,'  

P4WNED - 0wning P4 servers via shit security defaults since Y2K+25

 · Sniffs out user accounts, blank passwords, weak creds, and dumb settings.
 · Confirms depots access and those juicy "super" user accounts.
 · Drops a tidy report so you can fix the mess before the Skids arrive

Authorised targets only, brotendo. Use on your own servers or at your own risk.
==============================================================================


=== Processing: 192.0.2.10:1666 (perforce.example-studio.com) ===

[INFO] Testing user 'super' for security issues...
[INFO] User 'super' does not exist.

[INFO] Users listing accessible: build, designer1, jsmith, lead_prog, svc_build

[INFO] Testing user 'build' for security issues...
[INFO] Testing user 'designer1' for security issues...
[INFO] Testing user 'jsmith' for security issues...
[INFO] Testing user 'lead_prog' for security issues...
[INFO] Testing user 'svc_build' for security issues...

[INFO] Added new credential for 192.0.2.10:1666: user='svc_build', password='None'
[INFO] Saving updated credentials after finding valid credentials for svc_build on 192.0.2.10:1666

[INFO] Report saved to perforce-report-p4wned-1775436520.txt

Файл отчета (perforce-report-p4wned-*.txt):

root@kitploit:~
Perforce Security Scan Report

Server: 192.0.2.10:1666 (perforce.example-studio.com)
  Status: Insecure
  Note: Insecure via user 'svc_build' (no password)

  == Depots ==
Depot depot 2025/11/03 local depot/... 'Default depot'
Depot assets 2024/08/19 local assets/... 'Asset depot'

  == Last 10 Changes ==
Change 1047 on 2025/11/03 14:22:11 by lead_prog@DESKTOP-BUILD01

        Merge branch feature/ai-pathfinding

Change 1046 on 2025/11/03 09:44:38 by designer1@DESKTOP-ART02

        Updated character rig exports

  == Depot Details ==

  Depot: depot
    -- Root Directories --
    //depot/Source
    //depot/Content
    //depot/Config
    This depot is a non-Unreal Engine Depot.

------------------------------------------------------------

Summary Report

Server: 192.0.2.10:1666 - Insecure - Note: Insecure via user 'svc_build' (no password)

p4ghost.py — Сканер удаленных депо

Проверяет неаутентифицированный доступ к удаленному депо через скрытого пользователя remote. Эксплойт работает путем запуска локального экземпляра p4d под контролем атакующего — целевой сервер подключается к нему в рамках протокола сервер-сервер, раскрывая при этом список файлов своего депо.

Настройка (однократная):

root@kitploit:~
# Subject to Perforce terms of use: https://www.perforce.com/legal
wget https://ftp.perforce.com/perforce/r24.2/bin.linux26x86_64/p4d
wget https://ftp.perforce.com/perforce/r25.2/bin.linux26x86_64/p4
chmod +x p4d p4

# Start a plain ASCII p4d on port 1818 (used as the attacker's server)
mkdir p4root_attacker
./p4d -r ./p4root_attacker -p 1818 -d

# Start a unicode p4d on a separate port (1819) for unicode targets
mkdir p4root_attacker_unicode
./p4d -r ./p4root_attacker_unicode -xi   # convert to unicode mode
./p4d -r ./p4root_attacker_unicode -p 1819 -d
root@kitploit:~
python3 p4ghost.py <input_file> [-skipnolicense] [-report FILE] [-p4cmd PATH]
                   [-unicodeport PORT] [-nonunicodeport PORT] [-timeout SECS]
root@kitploit:~
# Example invocation using the local attacker servers above
python3 p4ghost.py targets.txt -nonunicodeport 1818 -unicodeport 1819

Аргументы:

Затронутые версии: Все версии ниже 2025.1 с security < 4 (по умолчанию 0).


p4-auth-hammer — PoC подбора паролей (C++)

Доказательство концепции, демонстрирующее, что p4d не эффективно ограничивает скорость попыток аутентификации при security < 3. Достигает более 300 000 попыток входа в минуту для одной учетной записи с использованием Perforce C++ API.

root@kitploit:~
./p4_auth_hammer_poc <server:port> <username> <password_file> [-ticketauth]

Сборка (требуется Perforce C++ API и OpenSSL 1.1.1 — см. p4-auth-hammer/README.md для полной настройки):

root@kitploit:~
bash p4-auth-hammer/p4_auth_hammer_poc_build.sh

Режимы:

  • По умолчанию: прямая аутентификация по паролю (security < 3). Ограничение скорости полностью обходится. >300 000 попыток/мин.
  • -ticketauth: вход на основе тикета (security >= 3). Ограничение скорости (dm.user.loginattempts) активно на этом уровне.

Автоматически определяет SSL и unicode серверы. Автоматически настраивает количество потоков для максимальной пропускной способности.

Устранение: p4 configure set security=3 (или 4). См. p4-auth-hammer/README.md для полных подробностей.


JavaScript инструменты

Автономные скрипты Node.js. Без зависимостей, кроме стандартной библиотеки Node.js. Все скрипты автоматически определяют SSL против обычного TCP и режим ASCII против unicode — флаги не требуются.

Формат файла целей: host:port одна на строку, порт по умолчанию 1666, если не указан. Строки, начинающиеся с #, игнорируются.

root@kitploit:~
p4testascii.example.net:1666
p4testunicode.example.net:1666
p4testunicode.example.net:1667

Автоопределение: Сначала пробуется обычный TCP. Если сервер отвечает сообщением об ошибке SSL Perforce ("Failed client connect, server using SSL"), соединение повторяется через TLS с rejectUnauthorized: false (принимает самоподписанные сертификаты). Сначала пробуется режим ASCII; если сервер возвращает сообщение об ошибке unicode, соединение повторяется с параметром unicode.


perforce-users.js — Перечисление пользователей

Использует run.users.authorize=0 (по умолчанию) для вывода списка всех учетных записей без аутентификации.

root@kitploit:~
node javascript/perforce-users.js [targets_file]

Вывод: [host:port] [tcp|ssl] username <email> "Full Name"


perforce-info.js — Раскрытие информации о сервере

Использует dm.info.hide=0 (по умолчанию) для извлечения версии сервера, внутреннего адреса, корневого пути и строки лицензии.

root@kitploit:~
node javascript/perforce-info.js [targets_file]

Вывод:

root@kitploit:~
[host:port] [tcp|ssl]
  Version    : P4D/LINUX26X86_64/2024.2/2877946
  Server Addr: internal-hostname:1666
  Server Root: /opt/perforce/p4root
  License    : Acme Corp

perforce-passwordless.js — Обнаружение учетных записей без пароля

Находит учетные записи пользователей без установленного пароля. Использует формат вывода с тегами (параметр tag) для обнаружения отсутствия поля Password в записях пользователей. Учетные записи без пароля позволяют прямой неаутентифицированный вход.

root@kitploit:~
node javascript/perforce-passwordless.js [targets_file]

Вывод: [host:port] [tcp|ssl] [PASSWORDLESS] username <email> "Full Name"


perforce-remote.js — Перечисление файлов удаленного депо

Использует скрытого пользователя remote через RPC сервер-сервер rmt-DbPipe для прямого чтения таблицы db.rev, извлекая пути к файлам депо и номера изменений без аутентификации. Затронутые версии: ниже 2025.1 с security < 4.

root@kitploit:~
node javascript/perforce-remote.js [targets_file]

Вывод:

root@kitploit:~
[host:port] [tcp|ssl] 42 file(s) in depot:
  [change=7] [2024-11-03] //depot/src/main.cpp
  [change=3] [2024-09-12] //depot/config/database.yml

perforce-keys.js — Перечисление глобальных ключей

Извлекает глобальные значения ключей/счетчиков с серверов Perforce. Ключи могут содержать номера сборок, внутренние строки версий и конфигурацию.

root@kitploit:~
node javascript/perforce-keys.js [targets_file]

Вывод: [host:port] [tcp|ssl] keyname = value


Шаблоны Nuclei

Шаблоны для Nuclei. Все шаблоны используют этап TCP-шлюза для подтверждения наличия сервера Perforce перед выполнением полезной нагрузки JavaScript. Шаблоны используют тот же подход автоопределения, что и JavaScript инструменты.

root@kitploit:~
nuclei -t nuclei-templates/ -u target:1666
nuclei -t nuclei-templates/ -l targets.txt

Обнаружение

ШаблонIDОписание
perforce-detect.yamlperforce-detectionОбнаруживает серверы Perforce через рукопожатие бинарного протокола. Серьезность: info.

Шаблоны уязвимостей

Ограничения: Нет поддержки SSL, только порт 1666. См. JavaScript инструменты для получения дополнительной информации.


Модули Metasploit

Три вспомогательных модуля сканера для Metasploit Framework, плюс общая библиотека mixin, обрабатывающая бинарный протокол Perforce. Эти модули охватывают те же уязвимости, что и автономные инструменты выше — перечисление пользователей, обнаружение учетных записей без пароля и эксплуатация удаленного депо.

Все модули автоматически определяют режим сервера ASCII или unicode. Поддерживается SSL.

МодульОписание
auxiliary/scanner/perforce/perforce_user_enum

Исходные файлы находятся в каталоге metasploit/. PR был отправлен в Metasploit Framework.


Краткая справка по устранению:

Скачать инструмент
ПеременнаяОписание
INPUT_FILEСписок целей (ip:port, одна на строку) — по умолчанию perforce-servers.txt
P4_CMDПуть к бинарному файлу p4 — по умолчанию ./p4
TOP_PASSWORDS_FILEСловарь для подбора — по умолчанию top-passwords.txt
KNOWN_CREDS_FILEИзвестные пары учетных данных для первой проверки
REPORT_FILEПуть к выходному отчету
ФлагОписание
input_fileСписок целей (ip:port, одна на строку)
-skipnolicenseПропустить серверы, возвращающие Server license: none
-report FILEПуть к выходному отчету
-p4cmd PATHПуть к бинарному файлу p4 (по умолчанию ./p4)
-unicodeport PORTЛокальный порт p4d для unicode, используемый как сервер атакующего
-nonunicodeport PORTЛокальный порт p4d для не-unicode
-timeout SECSТайм-аут команды
ШаблонIDСерьезностьCVSSОписание
perforce-user-extraction.yamlperforce-user-enumerationMedium5.3Неаутентифицированный список пользователей — серверы ASCII и unicode. Извлекает имена пользователей, email, полные имена.
perforce-info-disclosure.yamlperforce-info-disclosureMedium5.3Раскрытие информации о сервере — версия, внутренний адрес, корневой путь, лицензия.
perforce-passwordless-users.yamlperforce-passwordless-usersCritical9.1Находит учетные записи без установленного пароля.
perforce-remote-depot-unauth.yamlperforce-remote-depot-access-unauthHigh7.5Удаленный доступ к депо через пользователя remote — серверы ASCII и unicode. Извлекает пути к файлам и номера изменений. Затронуто: < 2025.1 с security < 4.
Неаутентифицированный список пользователей — извлекает имена пользователей, email, полные имена и время последнего доступа.
auxiliary/scanner/perforce/perforce_passwordlessОбнаруживает учетные записи без установленного пароля.
auxiliary/scanner/perforce/perforce_remote_depotПеречисление файлов удаленного депо через скрытого пользователя remote. Затронуто: < 2025.1 с security < 4.
ПроблемаИсправление
Перечисление пользователейp4 configure set run.users.authorize=1
Раскрытие информацииp4 configure set dm.info.hide=1
Пользователи без пароляУстановите пароли для всех учетных записей; p4 configure set dm.user.noautocreate=2
Доступ к удаленному депоОбновитесь до 2025.1+, или p4 configure set security=4
Ограничение скорости аутентификацииp4 configure set security=3 (включает эффективную блокировку через dm.user.loginattempts)
Все вышеперечисленноеp4 configure set security=4 плюс отдельные настройки выше — security=4 исправляет удаленный эксплойт, но не скрывает списки пользователей или информацию о сервере