Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
TwoMillion-Machine-Writeup — From deobfuscating code.js to root, CVE-2023-0386 | Kitploit
उपकरण/GitHubGitHub/anxs3c/twomillion-machine-writeup
Privilege EscalationReconnaissanceExploitationLateral MovementReverse EngineeringWeb Application ExploitationCTFPenetration TestingLearning & EducationLabs & Practice
GitHubanxs3c/twomillion-machine-writeup

TwoMillion-Machine-Writeup

2 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

From deobfuscating code.js to root, CVE-2023-0386

रिपॉजिटरी देखें

मशीन के बारे में

TwoMillion एक आसान कठिनाई वाली Linux बॉक्स है जिसे HackTheBox पर 2 मिलियन उपयोगकर्ताओं तक पहुँचने का जश्न मनाने के लिए रिलीज़ किया गया था। इस बॉक्स में HackTheBox प्लेटफ़ॉर्म का एक पुराना संस्करण शामिल है जिसमें पुराना हैक करने योग्य इनवाइट कोड मौजूद है। इनवाइट कोड को हैक करने के बाद प्लेटफ़ॉर्म पर एक खाता बनाया जा सकता है। खाते का उपयोग विभिन्न API एंडपॉइंट्स को एन्यूमरेट करने के लिए किया जा सकता है, जिनमें से एक का उपयोग उपयोगकर्ता को एडमिनिस्ट्रेटर तक बढ़ाने के लिए किया जा सकता है। प्रशासनिक पहुँच के साथ, उपयोगकर्ता एडमिन VPN जनरेशन एंडपॉइंट में कमांड इंजेक्शन कर सकता है, जिससे सिस्टम शेल प्राप्त होती है। एक .env फ़ाइल में डेटाबेस क्रेडेंशियल्स पाए जाते हैं और पासवर्ड पुनः उपयोग के कारण हमलावर बॉक्स पर एडमिन उपयोगकर्ता के रूप में लॉगिन कर सकते हैं। सिस्टम कर्नेल पुराना पाया जाता है और रूट शेल प्राप्त करने के लिए 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 फ़ाइल में जोड़ा


पथ खोज

मैंने gobuster का उपयोग करके 2million.htb पर पथ खोज की

एन्यूमरेशन के दौरान, मैंने /invite एंडपॉइंट खोजा


/invite पेज पर नेविगेट करने के बाद


पेज का निरीक्षण करते समय, मैंने देखा कि यह inviteapi.min.js नामक एक Javascript फ़ाइल लोड करता है जिसमें ऑबफस्केटेड कोड था:

root@kitploit:~
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 प्राप्त हुई:


root@kitploit:~
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 डाली गई और सफलतापूर्वक स्वीकार कर ली गई

पंजीकरण

होम पेज

एक्सेस पेज
इस साइट पर अधिकांश पेज ठीक से काम नहीं करते, एक्सेस पेज वह जगह है जहाँ चीजें दिलचस्प हो जाती हैं

API एंडपॉइंट्स की एन्यूमरेशन
मैंने connection pack बटन पर क्लिक करके vpn फ़ाइल अपलोड की, और GET अनुरोध को इंटरसेप्ट किया


फिर मैंने उपलब्ध API एंडपॉइंट्स को एन्यूमरेट करने के लिए verbose और silent विकल्पों के साथ एक curl अनुरोध निष्पादित किया



सर्वर ने API एंडपॉइंट्स की JSON सूची के साथ प्रतिक्रिया दी

एडमिन के पास GET, POST और PUT विधियों वाले 3 API एंडपॉइंट थे

जब मैंने एडमिन एंडपॉइंट /api/v1/admin/vpn/generate के साथ एडमिन कुंजी जनरेट करने का प्रयास किया, तो कुंजी जनरेट नहीं हुई क्योंकि मैं एडमिन नहीं था, और पहले एडमिन एंडपॉइंट /api/v1/admin/auth ने इसकी पुष्टि की





वेब एप्लिकेशन वर्टिकल प्रिविलेज एस्केलेशन: वर्तमान मानक उपयोगकर्ता को एडमिनिस्ट्रेटर तक बढ़ाना


Content-Type: application/json और आवश्यक पैरामीटर्स के साथ सही PUT अनुरोध प्रारूप खोजने के बाद, मैंने सफलतापूर्वक अपने उपयोगकर्ता को एडमिनिस्ट्रेटर तक बढ़ा दिया











OS कमांड इंजेक्शन

मैंने यूज़रनेम फ़ील्ड में ;whoami; इंजेक्ट किया, मेरा संदेह exec() या system() PHP फ़ंक्शनों पर गया, जो केवल-एडमिन सुविधाओं में आम हैं और अक्सर उचित सैनिटाइज़ेशन की कमी होती है

उदाहरण के लिए, संभावित कमजोर कोड कुछ इस प्रकार दिखता था:

root@kitploit:~
$username = $json->username;

exec("/usr/bin/cat /var/www/html/VPN/user/$username.ovpn");

यह एंडपॉइंट POST /api/v1/admin/vpn/generate कमजोर था, और OS कमांड इंजेक्शन सफलतापूर्वक किया गया




प्रारंभिक पहुँच: OS कमांड इंजेक्शन के माध्यम से रिवर्स शेल (base64 बाईपास)

प्रतिबंधों को बायपास करने के लिए पेलोड एन्कोड करें

चूँकि एप्लिकेशन में ऐसे प्रतिबंध थे जो विशेष वर्णों को रोकते थे, मैंने इस प्रतिबंध को बायपास करने के लिए रिवर्स शेल पेलोड कमांड को base64 में एन्कोड किया


एन्कोडेड पेलोड इंजेक्ट करें

मैंने पेलोड को username पैरामीटर में इंजेक्ट किया, इसे डीकोडिंग और निष्पादन के लिए base64 -d | bash में पाइप किया:


Netcat लिसनर


प्रारंभिक पहुँच प्राप्त की

पेलोड सफलतापूर्वक निष्पादित हुआ, और www-data उपयोगकर्ता के रूप में एक रिवर्स शेल लौटाया


लेटरल मूवमेंट

मैंने विभिन्न तकनीकों का उपयोग करके www-data उपयोगकर्ता से एडमिन उपयोगकर्ता तक लेटरल मूवमेंट का प्रयास किया

/var/www/html निर्देशिका का निरीक्षण करते समय मुझे डेटाबेस क्रेडेंशियल्स वाली एक .env फ़ाइल मिली:


खोजा गया पासवर्ड SSH और MySQL के माध्यम से प्रमाणित करने के लिए सफलतापूर्वक पुनः उपयोग किया गया

SSH

MySQL


OS प्रिविलेज एस्केलेशन

एडमिन उपयोगकर्ता के रूप में प्रारंभिक पहुँच प्राप्त करने के बाद, मैंने संभावित प्रिविलेज एस्केलेशन वैक्टर की पहचान करने के लिए सिस्टम एन्यूमरेशन की

मैंने SUID बाइनरी, क्षमताएँ, sudo अधिकार, cron जॉब्स जैसी सभी प्रमुख प्रिविलेज एस्केलेशन तरकीबें आज़माईं, कुछ भी काम नहीं आया। इसलिए मैंने PATH हाइजैकिंग या संवेदनशील वेरिएबल के लिए पर्यावरण चर की जाँच की, और मुझे /var/mail/admin की ओर इशारा करता हुआ एक MAIL वेरिएबल मिला


मैंने मेल की सामग्री की जाँच की और देखा कि एडमिन को OverlayFS/FUSE भेद्यता के विरुद्ध कर्नेल को पैच करने की चेतावनी दी गई थी


कर्नेल संस्करण

OS संस्करण

कर्नेल को कभी अपडेट नहीं किया गया, जिससे पुष्टि होती है कि एडमिनिस्ट्रेटर ने सुरक्षा चेतावनी को अनदेखा या भुला दिया था

कर्नेल एन्यूमरेशन से संस्करण 5.15.70-051570-generic का पता चला, जो CVE-2023-0386 OverlayFS/FUSE लोकल प्रिविलेज एस्केलेशन के लिए कमजोर है

भेद्यता की पुष्टि के साथ, मैंने एक सार्वजनिक POC एक्सप्लॉइट प्राप्त करने के लिए आगे बढ़ा

मैंने POC को क्लोन किया, इसे टारगेट मशीन पर स्थानांतरित किया

फिर मैंने इसे निष्पादित किया और सफलतापूर्वक रूट एक्सेस प्राप्त की


हमले की श्रृंखला



संसाधन

CVE-2023-0386 - CVE-2023-0386 - OS कमांड इंजेक्शन



अस्वीकरण: यह मशीन एक अधिकृत पेनेट्रेशन टेस्टिंग वातावरण के तहत रूट की गई थी

टूल डाउनलोड करें
चरणतकनीकलक्ष्यपरिणाम
1. रिकॉनपोर्ट स्कैन22 (SSH), 80 (HTTP)सेवा खोज
पथ खोज/inviteइनवाइट पेज मिला
JS डीऑबफस्केशनinviteapi.min.jsAPI एंडपॉइंट्स उजागर हुए
2. प्रारंभिक पहुँचइनवाइट जनरेशनPOST /api/v1/invite/generateमान्य इनवाइट कोड
पंजीकरणPOST /api/v1/user/registerमानक उपयोगकर्ता बनाया गया
3. वेब प्रिविलेज एस्केलेशनAPI एन्यूमरेशनGET /api/v1एडमिन एंडपॉइंट्स खोजे गए
वर्टिकल एस्केलेशनPUT /api/v1/admin/settings/updateis_admin: 0 -> 1
4. सिस्टम एक्सेसकमांड इंजेक्शनPOST /api/v1/admin/vpn/generateusername=test;id;
रिवर्स शेलBase64 एन्कोडेड पेलोडwww-data शेल
5. लेटरल मूवमेंटफ़ाइल खोज/var/www/html/.envadmin:SuperDuperPass123
SSH पुनः उपयोगssh [email protected]admin उपयोगकर्ता एक्सेस
6. रूट एस्केलेशनकर्नेल एन्यूमरेशनuname -r -> 5.15.70CVE-2023-0386 की पहचान हुई
ईमेल चेतावनी/var/mail/adminOverlayFS/FUSE की पुष्टि हुई
एक्सप्लॉइट निष्पादन./fuse && ./expरूट शेल