大家好,我是ABC_123。前一段时间我花时间花精力总结了最近两三年中,在攻防比赛中比较常见的Web打点漏洞类型,捎带着把钓鱼邮件的主题类型也总结了一下。今天分享出来,相信无论是对于攻击方还是防守方,都能从中获得一些启发(一些小型攻防比赛、地级*攻防比赛,由于用各种常规漏洞也能打点成功,所以暂时不在以下统计范围之内)。
信息来源主要有以下几点:1、以往的攻防比赛中积累的经验;2、作为裁判研判漏洞经历;3、朋友同事之间的讨论;4、其它。接下来分类别将近些年红队人员常见打点漏洞分类给大家讲讲,希望对于红队可以帮助其进行梳理,对于蓝队人员可以有针对性地防护。
Part1 超级0day及供应链0day
对于一些超难的目标,很多只能靠这两种方法打进去。超级0day指的是那种可以一击致命的影响较大且又不容易被网络安全设备发现的漏洞,包括某VPN多个缓冲区溢出漏洞、某VPN任意加账号漏洞、某聊天软件命令执行、虚拟机逃逸0day、办公软件漏洞、浏览器级别的远程溢出等。对于这种超级0day,这里不多做讨论,对于大多数红队队员来说可遇不可求,这种级别0day漏洞基本上就是核武器,其它关于外网打点的技术和战术在其面前显得微不足道。
供应链0day漏洞危害同样很大,防护起来难度不小。原因是:很多公司业务量、资产非常庞大,难以把供应链资产完整梳理出来,漏掉一个点都不行,而红队人员是可以随机选取一个供应链的资产进行代码审计,进行漏洞挖掘的。总体来说,两方难度都不小,所以攻防总是相对的。
Part2 社工钓鱼篇
- 邮件钓鱼
这里顺带提一下邮件钓鱼的主题吧,也属于外部打点的方法之一。我总结了一下,邮件钓鱼的题材,大致包括以下这6大类,后续ABC_123有精力再细分一下。
工作类主题 求职简历、求职自荐信、员工转正申请、合作详情见附件、营业执照申请归档。
投诉类主题 违规收取各种费用投诉、针对某项事务的投诉建议、不合规责任通报、宣传与预期不符投诉、严重失职公告、过度采集用户信息投诉。
福利类主题 薪资调整通知、福利诱骗、中秋领月饼通知、节假日领奖通知、节假日福利通知、夏季高温津贴、夏季工服领取、薪资结构调整。
安全类主题 钓鱼邮件防护通知、安全漏洞补丁升级、攻防演练内部资料分享、防守方联系方式通知、重大漏洞检查通知。
通知类主题 邮箱配额升级、快递待处理单子、工作十六项准则、能力提升专研培训通知、疫情防控工作安排、个人所得税年度汇算清缴、学习强国教育、食堂菜谱调研通知。
热门话题类 世界杯、疫情相关等,估计大家都能想到。
- 微信加好友
红队队员通常会养几个小号,而且这些小号很多都是用美女头像,朋友圈还会定期发一些生活动态。红队队员首先在网上通过各种信息收集得到目标单位的员工手机号,然后通过微信加好友的方式,谎称自己是某大型公司的HR,发送年薪百万的岗位内部招聘主题类的压缩包,实际上里面是一个后门程序,这种方式有很多成功案例,大家要注意防范。
- 加qq群
红队队员会通过各种搜索,找到目标公司的一些员工以小组、部门形式自建的qq群,谎称自己是新员工入职,或者是某某领导让加群,或者安装安全检查工具等等。一旦加进群,会在qq群里发送一个藏有后门的压缩包,基本上都会获取较大的成果,此外还会在qq群共享里面查找一些敏感文档、通讯录列表等,很多时候都会在qq群里找到一些内部系统的账号密码,大家要注意防范。
- 脉脉求职+微信聊天组合
红队队员去脉脉等求职平台,定位到目标单位的运维技术等人员,谎称自己是阿里、腾讯、华为高管,进行年薪百万的定向招聘,然后诱导至微信聊天,发送钓鱼邮件木马压缩包。我惊讶地发现,这样的成功案例特别多,大家要注意防范。
Part3 Web漏洞篇
- 敏感信息泄露
我把它放在第一位,是因为希望可以引起大家的重视,有些单位都被搞过好几轮了,但是没想到还是会存在这些信息泄露问题,以下是一些案例,供大家参考。
案例1:官网直接的JSON文档,里面直接有Mssql的明文账号密码,ip还是外网的。
案例2:使用burpsuite抓包,js源码中存在某云的AK/SK。
案例3:对apk脱壳,反编译Java代码找到了某云的AK/SK。
案例4:对apk直接批量进行信息提取,找到了很多偏门的ip+端口的资产。
案例5:网站的说明文档中会有一些意外的资产,然后用shiro反序列化、log4j2等常规漏洞可以打进去。
案例6:官网链接的软件包中,配置文件含有Socks5代理,直连内网。
案例7:SVN等源码泄露漏洞,通过php代码审计上传漏洞。
- Shiro反序列化漏洞
这个漏洞这么多年一直存在,这一点让我还是很惊讶的,近几年一直有很多成功案例。但Shiro反序列化漏洞在一级单位或者二级域名资产非常难见到了,主要集中在2级单位的边缘资产,3、4级单位的资产,还有公众号、小程序等资产,其中的shiro的key都是常见的key,我个人感觉100多个常见的key列表足够了。
此外对于这种漏洞的利用,几个报告中贴出了难以见到的不常用的shiro key,但是我推测,应该是从springboot的heapdump中提取的shiro key,然后再进行加以利用的。对于这种漏洞的利用,记得把shiro key可以改掉,这样可以维持权限更久一些。
- OA系统类漏洞
后续我总结了一下,这些OA系统主要包括某远oa、某微OA、某户oa、Fanruan、某综合安防系统、某微移动平台漏洞、某emobile、某凌OA、某友cloud、某友nc、某达OA系统、某道等,其nday漏洞在2级单位的边缘资产及3、4级单位还能遇到,一级、二级单位的主要资产除非有0day否则很难利用成功。
- Fastjson漏洞
这种nday老洞还是有很多,尤其在目标资产的微信公众号、小程序资产上,对于json数据包都可以尝试一下。对于1.2.47之前的版本利用很简单,回显也可以实现;对于1.2.68之前的版本,利用方式多集中在fake mysql的思路打,少数有写shell的成功案例;对于1.2.68至1.2.80版本的fastjson,虽说有漏洞,但是目前我还未见过有实战打成功的,但是不排除有大佬有内部姿势,所以该升级到最新版本还是要升级的。
对于jackson反序列化,利用条件太过苛刻,成功案例极少,所以我见到jackson,一般就是放弃。
- Log4j2漏洞
对于这个nday漏洞,和fastjson漏洞一样,多数使用burpsuite的被动扫描插件发现的,而且不知道在什么地方就会冒出来。大家在扫描这个漏洞的时候,记得不要用常见的dnslog,因为特征太明显了,主流的waf或者流量监控设备都把常用的dnslog加入了黑名单,最好自己匿名搭建一个,这也是为什么同样的log4j2漏洞别人能发现,而自己却发现不了的原因所在。
- Springboot框架漏洞
对于SpringBoot漏洞的利用,/actuator/env及heapdump的利用成功案例非常非常多,不但要看根目录,还要看子目录,还要看/api/目录下有没有相关的url路由。对于有的网站,每个子目录其实它映射到后端是不同的服务器应用。从heapdump里面可以提取各种账号密码,有不少找到某云AK/SK的情况。再就是也看到了spring cloud gateway的利用,这个漏洞起初我认为实战能遇到的可能性太小了,但是实战中确实存在,而且还见过好几个成功案例。
- Nacos系列漏洞
这种漏洞和SpringBoot接口漏洞一样,利用成功案例出奇地多,同样也是根目录、二级目录都要看,红队队员的主要利用方式都是nacos弱口令、nacos加账号漏洞等,进入nacos后台之后,会找到数据库的账号密码。如果遇到Mssql、Oracle那么基本上可以拿下服务器权限,有时候会找到某云平台的AK/SK,拿下很多服务器权限。
- Weblogic漏洞
Weblogic漏洞的利用相对于前几年大大减少,这也是让我非常惊讶的,自己曾研究这些漏洞的回显、内存马写入等,耗费了巨大的精力,但是我总是还能碰到weblogic反序列化,我想造成weblogic漏洞出现频率降低的原因可能有以下几个:
1. 后续新出的Weblogic漏洞的利用在不出网情况下是很难拿权限的;
2. Weblogic后续漏洞(如cve-2020-2555开始出现的coherence库系列漏洞)利用非常麻烦,解决coherence库的兼容性很麻烦,工具层面上很难兼顾;
3. Webloigc的一些漏洞利用EXP在jdk1.5、jdk1.6、jdk1.7、jdk1.8等环境的下可能是不一样的,但是最终的利用工具只能在一个版本jdk下编译,所以有时候是很难兼顾的,因为本身就是自相矛盾的,导致利用不成功。
4. 防火墙或者是waf直接拦截掉T3和IIOP协议,但是有时候只是拦截了T3,IIOP协议还是放行的,大家有时候可以试一下,当然蓝队也要记得防范。
5. T3协议加入了filter,限制了白名单从而没法利用。
- Ueditor上传漏洞
这个漏洞也很多,多数利用都集中在那个SSRF造成的getshell漏洞,同样根目录、二级目录都要看,一些js源码中会有ueditor目录记录,可以试试这个漏洞。
- SQL注入漏洞
这个漏洞外网资产出现的频率比我想象的多,现在很多人都不愿意去找sql注入漏洞,但是我交流经验发现,在2级单位的边缘资产和3、4级单位仍然大量存在,如果发现sql注入漏洞,运气好遇到一个量很大的目标,那危害也是很严重的;如果遇到Mssql和Oracle可以提权拿到服务器权限。当然如果遇到云上系统,不到万不得已,还是去用其它方法吧,毕竟sql注入绕云waf成本太高了,有那个精力,还不如找一下其它入口。所以对于sql注入漏洞,大家还是要注意防范。
- Tomcat漏洞
在多个单位的子公司的偏门资产上,居然还有tomcat弱口令tomcat:tomcat,这也是我没有想到的,这样的案例我见过好几次成功案例。我仔细看了一下,这些成功案例的共同特点就是,端口都不是常见端口8080,推测红队队员对每一个ip都做了全端口扫描及服务识别。此外还有tomcat AJP协议获取webshell的成功案例。
- Struts2系列漏洞
现在的网站应用使用Struts2框架的越来越少了,但是还是能见到,外网也有几个成功案例。在内网横向过程中,它却发挥了比以前更大的价值,貌似都成了内网横向的利用漏洞了。
- 各种上传漏洞
管理员账号密码+后台上传shell,成功案例仍然非常多,而且非常典型,这里就不过多叙述了,相信大家都耳熟能详。
- 各种弱口令漏洞
sentinel弱口令、mysql的3306弱口令,但我未见到过外网的SQLServer的弱口令(推测原因是,如果存在弱口令,早就被外网的那些抓肉鸡战队给光顾了)、phpmyadmin弱口令、管理员弱口令(进后台能看到通讯录的话,也是有价值的)、druid未授权获取session,登录后台获取数据。
- 逻辑漏洞/越权漏洞
公众号、小程序也会有一些业务逻辑漏洞,如常见的订单遍历、用户身份遍历,也是非常严重的。有些安全厂商可能没有自己的红队人员,但是仍然参加了攻防比赛,他们主要精力就放在挖掘业务逻辑漏洞上,但是有时候也会收到奇效,比如用户信息遍历漏洞,结果有很多行,危害也是很大的。解密小程序或者其他加密页面的js加密算法,会挖掘到高价值的业务逻辑漏洞。
- 其它漏洞
以下这些漏洞有成功案例,但是非常少见。向日葵RCE漏洞(非常见的高端口)、Jboss反序列化、ewebeditor上传漏洞、dubbo高端口的反序列化漏洞、RMI端口反序列化漏洞、nexus cve-2019-7238漏洞等等,xxl-job从内网翻到密码去外网拿权限,此外还有一些网络设备的漏洞,就不一一列举了。
Part4 内网篇
这部分后续有时间我再写文章着重讲解,本期先简单介绍一下:
1. 针对VMware Vcenter等的漏洞利用大大增多,很多红队人员都喜欢在内网用这种漏洞打下一片机器,也就是打下了云平台。
2. 打域控可以看到很多用Zerologon漏洞拿下来的,当然不排除可能是通过其它手段拿下域控,但是写报告时误写成了Zerologon漏洞。
3. 拿到webshell或数据库后,多去翻一番某云的AK/SK等,会有意想不到的收获。
4. 对于工控系统,不得不承认,有些红队人员内网横向能力很强,从文字描述看,他们就是奔着工控目标去的,从一个网段跳到另一个网段,每横向一步,都知道自己在内网的什么位置,脑海中逐步形成一个清晰的内网拓扑图。
也有的红队队员拿下工控系统,是在内网中扫一圈各种服务的弱口令、通过MS17-010打了几台服务器,提取了通用的密码或者hash值,然后再滚雪球批量扫描,内网大批量扫描发现了工控的web管理界面等等,无意中进入了工控段,这其实也是一种方法。
5. 内网拿到数据库或者域控服务器之后,别忘了用同等账号密码,尝试一下外网的统一认证系统,往往会有意想不到的收获,有时候会直接连上VPN等系统。所以要加强对外网统一认证系统的防护。