Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
TwoMillion-Machine-Writeup — من إزالة تشويش code.js إلى الجذر، CVE-2023-0386 | Kitploit
أدوات/GitHubGitHub/anxs3c/twomillion-machine-writeup
تصعيد الامتيازاتالاستطلاعالاستغلالالحركة الجانبيةالهندسة العكسيةاستغلال تطبيقات الويبCTFاختبار الاختراقالتعلم والتعليممختبرات وتدريب عملي
GitHubanxs3c/twomillion-machine-writeup
17منذ 3 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

TwoMillion-Machine-Writeup

من إزالة تشويش code.js إلى الجذر، CVE-2023-0386

عرض المستودع

حول الجهاز

TwoMillion هو جهاز Linux بمستوى صعوبة سهل تم إصداره للاحتفال ببلوغ مليوني مستخدم على HackTheBox. يتضمن الجهاز نسخة قديمة من منصة HackTheBox تحتوي على رمز الدعوة القديم القابل للاختراق. بعد اختراق رمز الدعوة يمكن إنشاء حساب على المنصة. يمكن استخدام الحساب لاستكشاف نقاط نهاية API متعددة، ويمكن استخدام إحداها لرفع المستخدم إلى مسؤول. بصلاحية المسؤول يمكن للمستخدم تنفيذ حقن أوامر في نقطة نهاية توليد VPN الخاصة بالمسؤول وبالتالي الحصول على شل النظام. يوجد ملف .env يحتوي على بيانات اعتماد قاعدة البيانات، وبسبب إعادة استخدام كلمة المرور يمكن للمهاجمين تسجيل الدخول كمستخدم admin على الجهاز. كما تبين أن نواة النظام قديمة ويمكن استخدام CVE-2023-0386 للحصول على شل بصلاحية الجذر

نتائج الفحص

المنفذالخدمةالتفاصيل
22/tcpsshsyn-ack ttl 63 OpenSSH 8.9p1 Ubuntu 3ubuntu0.1 (Ubuntu Linux; protocol 2.0)
80/tcphttpsyn-ack ttl 63 nginx 2million.htb

إعداد المضيف

أضفت 2million.htb إلى ملف /etc/hots الخاص بي


اكتشاف المسارات

قمت باكتشاف المسارات عبر 2million.htb باستخدام gobuster

أثناء الاستكشاف، اكتشفت نقطة النهاية /invite


بعد الانتقال إلى صفحة /invite


أثناء فحص الصفحة، لاحظت أنها تحمّل ملف JavaScript باسم inviteapi.min.js يحتوي على كود مُعمّى:

eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('1 i(4){h 8={"4":4};$.9({a:"7",5:"6",g:8,b:\'/d/e/n\',c:1(0){3.2(0)},f:1(0){3.2(0)}})}1 j(){$.9({a:"7",5:"6",b:\'/d/e/k/l/m\',c:1(0){3.2(0)},f:1(0){3.2(0)}})}',24,24,'response|function|log|console|code|dataType|json|POST|formData|ajax|type|url|success|api/v1|invite|error|data|var|verifyInviteCode|makeInviteCode|how|to|generate|verify'.split('|'),0,{}))

فك التعمية

قمت بفك تعمية الكود باستخدام de4js، وأنتج الكود التالي بلغة JavaScript يمكن قراءتها:


function verifyInviteCode(code) {
    var formData = {
        "code": code
    };
    $.ajax({
        type: "POST",
        dataType: "json",
        data: formData,
        url: '/api/v1/invite/verify',
        success: function (response) {
            console.log(response)
        },
        error: function (response) {
            console.log(response)
        }
    })
}

function makeInviteCode() {
    $.ajax({
        type: "POST",
        dataType: "json",
        url: '/api/v1/invite/how/to/generate',
        success: function (response) {
            console.log(response)
        },
        error: function (response) {
            console.log(response)
        }
    })
}

makeInviteCode() : يُنشئ رمز دعوة جديد
verefyInviteCode(code) : يتحقق مما إذا كان الرمز صالحًا

ولفهم أكثر، اعترضت طلب التحقق:


يستخدم API استجابات JSON


توليد رمز الدعوة وفك تشفير ROT13

انتقلت إلى وحدة تحكم المتصفح ونفّذت makeInviteCode()


لاحظت أن البيانات كانت مشفرة بشيفرة ROT13


بعد فك التشفير، وجدت نقطة النهاية /api/v1/invite/generate، ثم قمت بتوليد رمز الدعوة


فك تشفير Base64

المفتاح
تم إدخال المفتاح 2F4BN-YI8OH-B0SCL-L8OE6 وتم قبوله بنجاح

التسجيل

الصفحة الرئيسية

صفحة Access
لا تعمل الكثير من صفحات هذا الموقع بشكل صحيح، وصفحة Access هي حيث تصبح الأمور مثيرة للاهتمام

استكشاف نقاط نهاية API
قمت برفع ملف VPN بالنقر على زر connection pack، واعترضت طلب GET


ثم نفّذت طلب curl بخياري verbose و silent لاستكشاف نقاط نهاية API المتاحة



استجاب الخادم بقائمة JSON من API endpoints

كان لدى المسؤول 3 نقاط نهاية API بأساليب GET و POST و PUT

عندما حاولت توليد مفتاح المسؤول من نقطة نهاية المسؤول /api/v1/admin/vpn/generate، لم يتم توليد المفتاح لأنني لم أكن المسؤول، وأكّدت نقطة نهاية المسؤول الأولى /api/v1/admin/auth ذلك





تصعيد الصلاحيات العمودي في تطبيق الويب: رفع المستخدم العادي الحالي إلى مسؤول


بعد اكتشاف الصيغة الصحيحة لـ طلب PUT مع Content-Type: application/json والمعاملات المطلوبة، نجحت في رفع مستخدمي إلى مسؤول

تنزيل الأداة