☠
🐛
🛡
利用方式 · 修复方案 · 收束总结
所以攻击者只要做一件事:把 commandLineInterpreter 从 cmd.exe 换成自己想执行的任何东西。
PoC 长这样:
<GUIConfig name="commandLineInterpreter">calc.exe</GUIConfig>
就这一行。把 cmd.exe 换成 calc.exe。用户点「打开文件夹 → cmd」,弹出来的是计算器。
算是最温和的演示
换个恶意程序呢?反向 shell、勒索软件、凭据窃取,都随攻击者选。
计算器只是演示,恶意程序才是真相
当然这个漏洞有个前提:攻击者得先能改到你的 config.xml。常见路径有这么几种——
1
本地权限够的时候直接改配置文件
2
通过 OneDrive 或 Dropbox 之类的云同步把恶意配置同步下来
3
或者最阴的——社工:给你发个项目压缩包,里面夹带一个替换过的 config.xml
社工最防不胜防!
一旦配置被污染,只要做一次再普通不过的菜单操作——打开文件夹、点 cmd——就触发。
谁会怀疑自己编辑器的「打开命令行」功能呢?
Notepad++ 全球下载量过亿,只要版本不超过 8.9.6,都受影响。
过亿用户!影响巨大!
修复版本:8.9.6.1
加了白名单校验,commandLineInterpreter 只允许指定的几个合法程序。
还在用老版本的,建议立即更新。
升级就安全了!
收 束
那么我们这期视频两个漏洞,一个 Linux 内核提权,一个 Windows 应用 RCE。
原因都是程序对输入的信任边界的度的问题。
安全设计的三个问题
信任谁
Who
→
信什么
What
→
信多少
How much
但凡有一个没答清楚,就是在给攻击者留门