干货 | 红队攻防快速获取入口权限总结

VSole2023-01-15 10:28:22

前言

近年来各种大规模的红蓝对抗逐渐兴起,攻防实战受到了更多的重视。对抗时红队模拟真实黑客的攻击行为,对企业网络应用系统进行渗透攻击,最终能发现企业平时未注意到的风险点,达到完善企业的安全体系的目的。

本文站在红队攻击的角度,介绍一种在红队攻击初期快速通过已知Nday漏洞获取入口权限的思路,并编写成工具供红队渗透测试人员使用。

红队攻击流程概述

在红蓝对抗中红队的攻击流程大致可总结为以下几点

情报收集 => 入口权限获取 => 内网信息探测 => 横向移动 => 权限维持

本文主要针对第二步入口‘入口权限获取‘展开讨论。

获取入口权限

在真实的企业网络中内网往往是脆弱的,通过一个入口权限进入内网后往往可以上线大量内网机器。所以入口权限的获取至关重要。

在大型的红蓝对抗中,要对一定地区的企业应用进行打击,红队初期拿到目标有时会涉及成百上千个url和ip。

在如此庞大的目标面前,初期通过常规渗透测试手法对单一系统进行测试是不合理的,这样难以涉及到全部目标并且容易漏掉容易出现问题的系统。

比较流行的方法是用工具批量化扫描,比如用goby + awvs + xray等常见漏洞扫描工具进行联动,以达到批量测试目标获取入口权限的目的。

利用常见组件的漏洞

利用漏扫联动批量扫描的确是一个很好打点方法,但避免不了效率慢,ip被ban,流量易被检测的问题。

所以在红队攻击的初期应该重将心放在各种主流 "中间件 + 开源程序 + Web服务组件" 历史上爆出的各种Nday漏洞的检测上面,通过这些漏洞的利用,我们可以很容易的getshell后进入内网。

这里列举一些常见漏洞组件


struct2 (s2系列rce)
thinkphp系列 (tp2x,3x,5x的代码执行等)
Jekins (未授权访问,命令执行等)
weblogic (CVE-2020-2551,CVE-2019-2729等)
Jboss (反序列化CVE-2015-7501,CVE-2017-7504,CVE-2017-12149)
各类开源cms的漏洞 (如wordpress,drupal ,discuz,joomla, 帝国cms,织梦cms等)
常见编辑器的历史漏洞 (如ueditor编辑器解析漏洞,各种越权和后台地址泄露等)
常见OA漏洞 (用友,泛微,致远,金蝶等)
各种网关防火墙nday,redis未授权,mongodb未授权,mysql认证绕过等

在信息收集时EHole是一款优秀的红队工具,它可以从大量杂乱的资产中找到这些易受攻击的系统,红队人员再利用对应组件的poc验证目标系统是否存在漏洞,以达到快速获取入口权限的目的。

项目地址:https://github.com/popmedd/EHole

高危漏洞的检测与攻击

* POC:可以理解为一段验证漏洞是否存在的程序,如果验证成功,poc可以将漏洞存在的消息返回通知我们。一个poc往往对应一个或一类漏洞,并且poc只提供验证的功能,不会利用漏洞对目标造成危害。
* EXP:即为一段利用漏洞的程序,与poc对应,exp提供攻击功能,exp通过利用漏洞攻击目标以发挥这个漏洞带来的危害。

在识别到常见组件后,我们往往会利用该组件历史漏洞的poc,来验证是否有漏洞的存在

如果验证成功再利用该漏洞对应的exp攻击目标系统,以获取我们想要的信息,这需要红队测试人员在平时对常见组件的漏洞足够了解,需要收集大量的poc/exp并能够及时对相应漏洞进行复现和利用。

对于红队人员来说,最好的情况是利用exp返回一个主机shell,这将直接进入内网渗透阶段。

所以在红队攻击初期,一些危害性大的漏洞如 RCE,反序列化,任意文件上传等往往得到格外的青睐,通过对这些漏洞的检测利用我们可以很容易的打通入口隧道进入内网。

而反之xss,crsf,业务逻辑漏洞,甚至是一些以时间为成本的sql注入在初期显得不是特别重要,这些可以在攻击中后期进行挖掘利用。

goby提供poc验证的功能,并且goby收集的poc基本都能获取到主机的shell权限,满足红队初期优先检测高危漏洞的观念,但也有很明显的不足之处

在红蓝攻防中红队时间紧任务重,一是goby的扫描速度堪忧,再者普通版goby中poc不能及时更新到新爆的高危漏洞,并且用goby只进行高危poc的检测扫描无疑大材小用的。

为了解决这种情况,我们可以编写扫描器来快速对大量目标进行高危漏洞的poc验证。

POC的集成与自动化验证

要编写一款适合红队快速打点的扫描器。

扫描器的核心思想在于收集大量常见组件高危漏洞的poc,然后编写一个框架加载这些poc,批量对多个目标进行fuzz测试。

这款专为红队定制的扫描器旨在只要扫出漏洞即可搜索对应exp获取目标shell权限。

因为常见的poc都是以python脚本的形式分布在互联网上,所以用python编写扫描器框架可以很容易的加载调用这些poc进行漏洞验证,我们只需要不断收集这些poc并稍加改动即可。

我们可以将一个poc编写成一个检测漏洞是否存在的函数存在扫描器的poc模块中,并用框架去调用这些漏洞验证函数。

一个漏洞验证函数的编写思路可以如下:

  1. 函数的返回结果以字典的形式返回并且具有name和vulnerable两个键值,name说明漏洞名称,vulnerable通过True和False的状态表明漏洞是否存在
  2. 示例函数如下(以 thinkphp5.0.22/5.1.29 的命令执行漏洞为例)
def  thinkphp5022_5129_rce(url):
     relsult = {
         'name': 'Thinkphp5 5.0.22/5.1.29 Remote Code Execution Vulnerability',
         'vulnerable': False
     }
     try:
       ......
       (用任意方法检测漏洞)
       ......
       if 存在漏洞:
           relsult['vulnerable'] = True     # 将relsult的vulnerable的值置为True
           relust['xxxxx'] = 'xxxxx'     # 可以添加该漏洞相关来源等信息
           ......
           return relsult     # 将vulnerable值为True的relsult返回
       else:  # 不存在漏洞
           return relsult    # 若不存在漏洞将vulnerable值为False的relsult返回
     execpt:
       return relsult

这样扫描器框架可以通过通过调用这个函数来实现poc的扫描验证,通过返回字典中的vulnerable值来判断漏洞是否存在。

POC bomber

POC bomber是笔者编写的一款高危漏洞扫描器,其中集成了各种红队攻击中常见组件高危漏洞的poc并能够多线程多目标进行fuzz测试,是一款专门为红队定制的工具,适合在红队攻击初期快速找到突破口。

项目地址:

https://github.com/tr0uble-mAker/POC-bomber

此款扫描器支持thinkphp全版本,s2全版本,weblogic全版本的漏洞检测,并整合多个hvv高危漏洞,poc有的是网上收集有的是笔者自己编写,是很多扫描器的集合体,并且poc经过改动后误报率很低,能大大减少红队人员的手工验证漏洞时间。

扫描器检测结果:

目前项目的poc在不断更新中并及时更新最新高危漏洞的poc验证(包括最近的泛微任意文件上传-CNVD-2021-49104)

漏洞漏洞挖掘
本作品采用《CC 协议》,转载必须注明作者和本文链接
src漏洞挖掘浅谈
2023-02-20 11:22:13
信息收集就说到这里,信息收集的主要目的就是扩大可利用面,10000万个资产你可能碰到弱口令,但1个资产你肯定没有弱口令挖掘前篇前边已经讲了信息收集,在测试前为了能高效的挖掘src,就需要有数据进行测试,这个数据就是我们常说的字典,字典怎么来,整理,收集,经验,积累。金额,数量都是可以篡改的地方小结挖掘src漏洞最主要还是挖掘逻辑漏洞,无非就是耐心,细节,多留意数据包的可疑数据,数据包所实现的功能。
首先要上分那么一定是批量刷漏洞,不然不可能上得了分的,然后呢,既然要批量刷漏洞。两种思路:1.审计通用性漏洞2.用大佬已公布的漏洞思路1难度较大,耗时也较长。思路2难度适中,就是需要写脚本或者使用别人已经写好的脚本。这是泛微继与微信企业号合作后,又一个社交化管理平台的落地成果。简单的说,一般比较大的企业都会用这个平台来做一些钉钉或者微信接口对接泛微OA的功能。
关于漏洞的基础知识
2022-07-20 09:44:23
黑客可以通过修改事件完成的顺序来改变应用的行为。所以,进行有效的验证是安全处理文件的重要保证。这种类型的漏洞有可能是编程人员在编写程序时,因为程序的逻辑设计不合理或者错误而造成的程序逻辑漏洞。这种类型的漏洞最典型的是缓冲区溢出漏洞,它也是被黑客利用得最多的一种类型的漏洞
网络安全漏洞(以下简称“漏洞”)作为信息通信网络中在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,随着经济社会信息化、网络化、数字化和智能化程度的加深,对国家网络安全的影响也日益加剧。世界各主要国家和组织为了切实提升国家网络安全防护能力,围绕漏洞的研究、收集和利用,纷纷建立国家级漏洞通报平台或漏洞数据库。日本于2003年开始建设“日本漏洞通报”(JVN)平台;美国于 2005 年开始建设“
细说从0开始挖掘cms-
2022-08-17 16:26:57
确立目标挖洞的第一步首先是确立一个目标,也就是找个cms来挖,这里可以通过github,gitee或者谷歌百度直接去搜cms。或者cnvd查看相应的信息,通过查看相应的信息可以提高我们挖洞的效率,我们从中可以知道该项目已经存在漏洞,我们到时候挖就可以看看相应的地方会不会还存在漏洞或者避免挖到别人挖过的漏洞。本次挖掘漏洞是ofcms,首先先下载一下源码,然后解压丢一边,回到网页来看一下项目文档。
最后对响应的匹配,使用正则识别id命令之后的结果。成功扫描出CVE-2022-1388F5 BIG-IP API Unauthenticated RCE漏洞漏洞的请求也变异无误,最后的响应中也是执行了id命令。案例二:利用Scalpel工具挖掘多个0day漏洞Scalpel工具使用较为灵活,通过对检测目标变异响应的check,可以发现检测目标中未知的安全问题。同时发现某Apache开源项目的CVE漏洞,报告被该团队接受并正在修复,尚未披露。
攻击者可在无需认证的情况下,通过构造特殊的请求,触发反序列化,从而执行任意代码,接管运行ForgeRock AM的服务器。本文从漏洞挖掘的角度分析其中的技术细节,也将公开一些其他的反序列化点。
对于公益SRC来说,想要冲榜就不能在一个站上浪费大量时间,公益SRC对洞的质量要求不高,所以只要 花时间,还是可以上榜的。在对某站点进行测试SQL注入的时候,先通过一些方式测试是否可能存在漏洞,然后可以直接sqlmap一把梭,也可以手工测试,然后提交漏洞。任意注册算是低危漏洞,不过也有两分。不管是进行SRC漏洞挖掘,还是做项目进行渗透测试,又或者是打红蓝对抗,一定要做好信息收集。
VSole
网络安全专家