渗透突破口
去年秋天,渗透我帮一家做工业物联网的突破客户做渗透测试。他们的渗透系统架构很漂亮——三层防火墙、零信任网关、突破全流量加密。渗透但最后我拿到的突破最高权限,不是渗透从什么高级漏洞进去的,是突破一个运维人员留在GitHub上的SSH私钥。
这事儿让我想了好几天。渗透我们总把渗透想成技术对抗,突破其实突破口往往不在代码里,渗透在人身上。突破
一个密码本的渗透故事
前年有个案子,目标是突破一家物流公司的调度系统。前端做了SQL注入防护,渗透后端有WAF,打了两天没动静。第三天中午,我在他们公司楼下便利店买水,看见一个穿工服的司机在收银台旁边翻一个破本子,上面手写着一串串账号密码——他记不住调度系统的登录信息,怕忘,抄在本子上随身带。
我跟着他出了便利店,看他上了公司班车。后来通过社工拿到那个本子的照片,十分钟就进了系统。技术防护再厚,挡不住有人把钥匙写在纸条上贴门口。
这不是个例。我统计过自己近三年做过的四十多个项目,真正靠0day打进去的只有两次。剩下的,要么是弱口令,要么是配置错误,要么是——人主动把门打开的。
“我帮你连一下”
去年冬天一个客户,做医疗SaaS的。他们开发环境有个测试账号,密码是admin123,本来只在内网用。但有个程序员为了在家加班方便,在路由器上做了端口映射,把测试环境暴露到了公网。我扫到的时候,那个端口已经开了七个月。
进去之后发现数据库里全是真实患者数据。我没动,截了图就退出来写报告。客户的技术负责人看完脸都白了,问我怎么发现的。我说你该问那个程序员为什么觉得家里比公司安全。
这种“为了方便”的突破口,比漏洞更难防。漏洞可以打补丁,人的习惯改不了。
邮件里的“紧急”
钓鱼邮件是老套路,但老套路一直管用。上个月一个客户做内部演练,我发了封伪装成HR的邮件,标题写“关于12月工资调整的紧急通知”,附件是个带宏的Excel。四十七个人点开,二十三个启用了宏。
有个财务总监最逗,点完之后还回复我:“请问这个表要填完发回给谁?”我回了个“不用了,谢谢配合”。后来复盘的时候他说,他看到“工资调整”四个字就急了,根本没看发件人地址。
紧急感是钓鱼最好的催化剂。人一急,理性就下线。
物理接触比远程更直接
前阵子去一个园区做评估,我假装访客在前台登记,说找行政部王经理。前台打了个电话,没人接,就让我在旁边沙发等。我等了十五分钟,趁她去洗手间,直接走到办公区走廊尽头,找到一间没锁的会议室,里面有台开着的电脑,插着U盘。
我拷了桌面上的一个文件夹,里面是网络拓扑图和VPN配置。整个过程不到三分钟。后来我跟客户说,你们前台的安全意识比防火墙差远了。
物理渗透的突破口往往被忽视。门禁、前台、没锁的机柜、随手扔的快递单——这些比漏洞好利用多了。
写报告的时候我在想什么
每次写完渗透报告,我都会在最后一页加一段非技术建议。比如“建议给运维人员配密码管理器”、“建议前台访客登记后由被访人下楼接”、“建议测试环境与生产环境物理隔离”。
这些建议不酷,不像“修复CVE-2024-XXXX”那么有技术含量。但真正管用的,往往是这些不酷的东西。
渗透的突破口,说到底就一句话:找那个最薄弱的环节。它可能是个漏洞,可能是个配置,也可能就是个忘了锁的门。技术攻防在进化,但人的惰性、侥幸和着急,一直没变过。
所以下次你做渗透测试,别光盯着扫描器。去楼下便利店坐一会儿,看看有没有人翻本子。