Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
p4wned — 퍼포스 보안 연구 및 도구 - CVE-2026-6043 | Kitploit
도구/GitHubGitHub/flyingllama87/p4wned
ReconnaissanceVulnerability ScannersWeb Vulnerability ScannersExploit FrameworksPassword AttacksExploitationInformation GatheringPenetration TestingMisconfiguration
GitHubflyingllama87/p4wned

p4wned

퍼포스 보안 연구 및 도구 - CVE-2026-6043

22개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기웹사이트

P4WNED (CVE-2026-6043)

Perforce(Helix Core) 보안 연구 도구 및 nuclei 템플릿입니다.

연구 논문: https://morganrobertson.net/p4wned/

자세한 내용은 위 링크를 참조하세요.

승인된 대상에만 사용하세요. 자신의 서버 또는 명시적인 서면 허가를 받은 경우에만 사용하십시오.

대상 독자: Perforce 서버 관리자, 침투 테스터, 보안 엔지니어

2026년 5월 업데이트: Perforce 2026.1이 출시되었습니다. 이 버전은 보안 기본값을 적용하여 제공됩니다! 개발자 IP를 보호하기 위해 이 릴리스가 발표되어 매우 기쁩니다. 자세히 읽기.

참고: 이 도구는 CVE-2026-6043으로 인한 잘못된 구성을 스캔합니다.


요구 사항

도구필수 사항
p4wned.pyPython 3, p4 CLI 바이너리 (아래 참조)
p4ghost.pyPython 3, p4 CLI 바이너리, 로컬 p4d 인스턴스 (아래 설정 참조)
p4-auth-hammerg++, Perforce C++ API, OpenSSL 1.1.1 (p4-auth-hammer/README.md 참조)
JavaScript 도구Node.js (외부 종속성 없음)
Nuclei 템플릿Nuclei v3+
Metasploit 모듈Metasploit Framework

p4 바이너리 획득 (p4wned.py 및 p4ghost.py에 필요):

root@kitploit:~
# Perforce 이용 약관 적용: 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 — 전체 보안 스캐너

기본 스캐너입니다. p4 CLI 바이너리를 사용하여 사용자 열거, 자격 증명 테스트, 저장소 목록화 및 보고서를 생성합니다.

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

옵션:

플래그설명
-brute무차별 대입 모드 활성화 — 발견된 모든 사용자 계정에 대해 비밀번호 테스트
-audit철저한 감사 모드 — 취약점을 찾은 후에도 모든 사용자 테스트 계속
-parallel N병렬 비밀번호 시도 횟수 (기본값: 1)

구성 (스크립트 상단에서 편집):

기능:

  • ASCII와 유니코드 서버 모드 감지
  • 사용자 열거 (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 인스턴스를 실행하여 작동합니다. 대상 서버는 서버 간 프로토콜의 일부로 다시 연결되며, 그 과정에서 저장소 파일 목록이 유출됩니다.

설정 (1회):

root@kitploit:~
# Perforce 이용 약관 적용: 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

# 포트 1818에서 일반 ASCII p4d 시작 (공격자 서버로 사용)
mkdir p4root_attacker
./p4d -r ./p4root_attacker -p 1818 -d

# 유니코드 대상용으로 별도 포트(1819)에서 유니코드 p4d 시작
mkdir p4root_attacker_unicode
./p4d -r ./p4root_attacker_unicode -xi   # 유니코드 모드로 변환
./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:~
# 위 로컬 공격자 서버를 사용한 예시 호출
python3 p4ghost.py targets.txt -nonunicodeport 1818 -unicodeport 1819

인수:

영향을 받는 버전: security < 4(기본값 0)인 2025.1 미만의 모든 버전.


p4-auth-hammer — 무차별 대입 PoC (C++)

security < 3일 때 p4d가 인증 시도를 효과적으로 속도 제한하지 않음을 보여주는 개념 증명입니다. Perforce C++ API를 사용하여 단일 계정에 대해 분당 300,000회 이상의 로그인 시도를 달성합니다.

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 및 유니코드 서버를 자동 감지합니다. 최대 처리량을 위해 스레드 수를 자동 조정합니다.

해결 방법: p4 configure set security=3 (또는 4). 자세한 내용은 p4-auth-hammer/README.md 참조.


JavaScript 도구

독립형 Node.js 스크립트입니다. Node.js 표준 라이브러리 외에 종속성이 없습니다. 모든 스크립트는 SSL 대 일반 TCP, ASCII 대 유니코드 서버 모드를 자동 감지합니다. 플래그가 필요하지 않습니다.

대상 파일 형식: host:port 한 줄에 하나씩, 포트가 생략되면 기본값 1666입니다. #으로 시작하는 줄은 무시됩니다.

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

자동 감지: 일반 TCP가 먼저 시도됩니다. 서버가 Perforce SSL 오류 메시지("Failed client connect, server using SSL")로 응답하면 rejectUnauthorized: false(자체 서명 인증서 수락)로 TLS를 통해 연결이 재시도됩니다. ASCII 모드가 먼저 시도됩니다. 서버가 유니코드 오류 메시지를 반환하면 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 사용자를 rmt-DbPipe 서버 간 RPC를 통해 악용하여 db.rev 테이블을 직접 읽고 저장소 파일 경로와 변경 번호를 인증 없이 추출합니다. 영향을 받는 버전: security < 4인 2025.1 미만.

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용 템플릿입니다. 모든 템플릿은 JavaScript 페이로드를 실행하기 전에 TCP 게이트 단계를 사용하여 Perforce 서버가 있는지 확인합니다. 템플릿은 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용 보조 스캐너 모듈 3개와 Perforce 바이너리 프로토콜을 처리하는 공유 라이브러리 믹스인이 포함되어 있습니다. 이 모듈은 위의 독립형 도구와 동일한 취약점(사용자 열거, 비밀번호 없는 계정 탐지, 원격 저장소 악용)을 다룹니다.

모든 모듈은 ASCII 대 유니코드 서버 모드를 자동 감지합니다. SSL이 지원됩니다.

모듈설명
auxiliary/scanner/perforce/perforce_user_enum인증되지 않은 사용자 목록 — 사용자 이름, 이메일, 전체 이름 및 마지막 접근 시간을 추출합니다.

소스 파일은 metasploit/ 디렉토리에 있습니다. Metasploit Framework에 PR이 제출되었습니다.


해결 방법 빠른 참조:

도구 다운로드
변수설명
INPUT_FILE대상 목록 (ip:port, 한 줄에 하나씩) — 기본값 perforce-servers.txt
P4_CMDp4 바이너리 경로 — 기본값 ./p4
TOP_PASSWORDS_FILE무차별 대입용 단어 목록 — 기본값 top-passwords.txt
KNOWN_CREDS_FILE먼저 시도할 알려진 자격 증명 쌍
REPORT_FILE출력 보고서 경로
플래그설명
input_file대상 목록 (ip:port, 한 줄에 하나)
-skipnolicenseServer license: none을 반환하는 서버 건너뛰기
-report FILE출력 보고서 경로
-p4cmd PATHp4 바이너리 경로 (기본값 ./p4)
-unicodeport PORT공격자 서버로 사용할 로컬 유니코드 p4d 포트
-nonunicodeport PORT로컬 비유니코드 p4d 포트
-timeout SECS명령 타임아웃
템플릿ID심각도CVSS설명
perforce-user-extraction.yamlperforce-user-enumerationMedium5.3인증되지 않은 사용자 목록 — ASCII 및 유니코드 서버. 사용자 이름, 이메일, 전체 이름 추출.
perforce-info-disclosure.yamlperforce-info-disclosureMedium5.3서버 정보 공개 — 버전, 내부 주소, 루트 경로, 라이선스.
perforce-passwordless-users.yamlperforce-passwordless-usersCritical9.1비밀번호가 설정되지 않은 계정 찾기.
perforce-remote-depot-unauth.yamlperforce-remote-depot-access-unauthHigh7.5remote 사용자를 통한 원격 저장소 접근 — ASCII 및 유니코드 서버. 파일 경로 및 변경 번호 추출. 영향: security < 4인 2025.1 미만.
auxiliary/scanner/perforce/perforce_passwordless
비밀번호가 설정되지 않은 계정을 탐지합니다.
auxiliary/scanner/perforce/perforce_remote_depot숨겨진 remote 사용자를 통한 원격 저장소 파일 열거. 영향: security < 4인 2025.1 미만.
발견 사항수정 방법
사용자 열거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는 원격 익스플로잇을 수정하지만 사용자 목록이나 서버 정보는 숨기지 않음