免责声明:
由于传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任,一旦造成后果请自行承担!务必遵循所在国家法律法规,严禁未授权渗透测试
0x00简介:
红队?什么叫红队?
红队的概念最早来源于20世纪60年代的 m
原文定义如下:An independent group that challenges an organization to improve its effectiveness by assuming an adversarial role.翻译过来的大致意思是:一个通过承担对抗性角色来挑战组织以提高其有效性的独立的团体叫做Red Team。“RED TEAM“ (红队), 涵盖的范围甚广(传统的渗透测试,属于其中的一种具体实现)。意思形态上,是一种对抗的抽象。
ATT&CK( Adversarial Tactics, Techniques and Common Knowledge ),即对抗战术、技术和常识,它是一个站在攻击者的视角来描述攻击中各阶段用到的技术的模型。常见的应用场景主要有网络红蓝对抗模拟、网络安全渗透测试、网络防御差距评估、网络威胁情报收集等。
http://attack.mitre.org/
国内的红队?
经过多年的积累,我总结出一句话:
Nday刷波资产,0day打波点,没有0day就钓鱼,钓不上来就 “坐Lao“,实在不行去近源。
0x01红队的进攻周期:
一 、信息收集:
这里包括所有基本信息
企业的所有单位及下属单位,子公司(所有占股比例超过百分之八十的)
推荐一键导出平台:
https://www.tianyancha.com/
我一般会选择有网址的,有邮箱的
资产测绘思路:
我推荐以下几种方式:
1.子域名直接搜索,这里推荐360quake和fofa,整体数据较全,且傻瓜式操作,当然你也可以用,鹰图等平台:
2.搜索关键词,比如,XX集团 XX管理系统 XX平台 等等,这个针对于目标的关键词来定。
360quke语法 title:”XX“
3.搜索图标,根据图标的hash值
favicon: “XXXXX”
4.冷门操作,通过知识产权:
我们可以通过还在申请或者已经申请的知识产权中,找到一些蛛丝马迹:
比如某个产品,XXX智慧平台之类的,都可以套用我上面讲的三种方式。
包括LOGO之类的,都可以作为关键词,有时候会带来一些惊喜,比如会有一些很敏感的,还在测试的系统
5.其他常规操作
C段、友情链接、爆破子域、网站里的企业或单位结构介绍等等等…
人员信息收集思路
1.邮箱:
收集足够的邮箱,你可以从这家公司的招标情况来找到这些邮箱,也可以通过国外的一些邮箱泄露平台搜到一些信息
当然,也可以直接创建关键词,用浏览器搜索语法去搜索,比如@xxx.com
这些邮箱可以为你爆破和钓鱼目标的一些提供提供帮助,比如说有些邮箱系统和商城系统(常见默认密码Ab123456、Ab123#等)是员工的邮箱,可以给你提供账户库。
2.敏感信息:
这些信息包含:
新闻,github源代码库
SVN,GHDB,网盘,文库,贴吧,乌云历史漏洞的信息,资产
微博,微信,QQ群,论坛
公众号,小程序,移动APP
网页中的一些可以Fuzz的接口,帮助手册
供应商信息,开发商信息,运维商信息
3.主动询问:
伪造自己是某部门的调查员,来打电话套话,比如说称自己是XXX部门,来确认XX信息,方法有很多,看你怎么说。
全凭一张嘴
(做之前最好在平台上申请钓鱼攻击,否则容易出问题,一定要得到指挥部的授权,这个是最重要的)
程序相关信息收集思路:
1.敏感信息:
和人员信息收集思路是一样的:
这些信息包含:
新闻,github源代码库
SVN,GHDB,网盘,文库,贴吧,乌云历史漏洞的信息,资产
微博,微信,QQ,论坛
公众号,小程序,移动APP
网页中的一些可以Fuzz的接口,帮助手册
供应商信息,开发商信息,运维商信息
另外增加了,CMS识别,框架识别,关联可能存在的漏洞,Websever,中间件版本等
还有常见的Mail 系统,VPN,OA,WIKI,SSO。
2.也可以通过之前的资产测绘思路,来寻找更多有关信息。
PS:当然,信息收集可以随着攻击进度来转换方式,主要收集好比如基础的资产,互联网泄露的信息,系统的业务功能等,比如我们打到内网后,我们就需要去收集内网的信息内容,包括电脑上的敏感文件,浏览器密码等信息,这里留在内网渗透中去详细说说。
我在这里总结一句话,也引用曾经的前辈们所说的话:
“渗透的本质就是信息收集”,信息收集会一直存在整个攻击流程里。
二、打点
打点的方式,我认为其实无非就三种:
一是 通过互联网Web应用程序,比如打VPN,OA等方式。
二是通过钓鱼的方式取得权限,比如脉脉钓鱼,BOSS直聘,QQ招聘群,邮件钓鱼、电话钓鱼、聊天软件钓鱼 等方式。
三是近缘渗透,一般当前几天实在打不下来(遇到过全员云桌面的情况),点也打不进去,鱼儿也不上钩,不得已来尝试去近缘渗透。
先说说一:
常见的漏洞,目前国内主要的一些单位,往往多是是JAVA程序,PHP较少,在19年左右,那个时候我记得shiro可以一把梭很多目标,不费吹灰之力可以打下口子。
在攻防演练中,并不是像SRC一样,存在漏洞就算分,一般都需要拿到实际机器或者Web应用程序的控制权限才给分
这个时候就需要利用不同的漏洞来拿权限了,包含我们所说,常见的:
注入,文件包含,文件读取,文件上传,反序列化,命令执行,XSS+CSRF,逻辑漏洞&越权、敏感文件泄露等等方式
最终的目的应该是拿下当前目标的权限,从而获得进入内网的机会
我遇到的常见多的,shiro、weblogic反序列化、Struts2、thinkphp、log4j2、fastjson等等这些
还有就是应用程序,包含四大OA,某服VPN、某AXVPN,某康的安防设备,JE*CMS等w
现在也有很多企业推广SSO,零信任VPN,使得打点难上加难
而且遇到好不容易打下的目标,出现云服务器、云桌面,实在是非常的难受。 基本上就是那句话:”Nday刷波资产,0day打波点“。
往往各个团队都有自己的自动化工具,包含常见的一些历史漏洞、魔改的一些利用链EXP等自动化的检测利用。
详细的一些漏洞细节,我准备也是开一篇单独的文章来说一下,大概讲一下一些小技巧,和工具写法的思路 。
再说说二:
通过钓鱼获得权限,简单说几个思路:
脉脉、BOSS直聘钓鱼,伪装自己是HR,去钓鱼目标,引诱对方运行你的程序。
邮件钓鱼,可以选择广撒网,或者单独攻击的方式,以比如说住宿订单确认、招投标项目总结、公积金核实、发放过节福利等方式。
通过加入一些内部的QQ群,从群文件和群内容中找到一些敏感的信息,比如名单、使用帮助等。
聊天软件,比如钉*RCE、微* RCE、Q* RCE、飞*RCE等方式,引诱对方点击链接,上线。
详细的一些漏洞细节,老的不提了,拿几个2022年 遇到的一些 ,等单独开一篇文章来说一下,敬请关注本公众号。
最后讲讲三:
近缘渗透
说到近缘渗透可能很多朋友就来劲了
什么大菠萝、变色龙、PM3、WIFI猎手、特斯拉线圈、黑手、badusb等等
整体的思路是如何安全的溜进目标大厦或者办公区域,非常考验个人的心里素质,其实也不难,蹲点查看员工习惯,午休时间是什么时间段,很多人都在睡觉,很自然的进去找个没人的办公位置插网线,如果遇到问你问题的,考验你的临场应变能力,常说的:我来检查一下咱们的线路,甚至有的时候可以去买几件XX电网、XX快递的衣服上身,格局打开,没有你不能去做的。
这里也单独等开篇文章来讲,推荐一本书《欺骗的艺术》——凯文米特尼克,很多场景都是可以直接套用的,本土化一下就好。
三、提权
提权,我们无非可以分为三大类
系统提权:
windows提权 (土豆一条龙、0708、1472、0903)
liunx提权(脏牛、通过系统配置提权、通过其他内核提权)
docker(docker不同的逃逸到母机的方式)
数据提权:
Mysql (UDF MDF)
Mssql(xp_cmdshell、oacreate)
redis(多种未授权写shell)
oracle
….
中间件提权:
apache
IIS
weblogic
nginx
…
四、权限维持
免杀,杀软对抗
静态免杀
加一些 脏代码 无用代码
异或混淆
异或+偏移
证书
不同的winapi
其他AES DES 加密,商用算法
利用剪切板获取shellcode
数据存储到图片中,ps-images
远程下载获取shellcode,shellcode进行分片或加密或放到多文件,文件内容开头结尾加脏数据
函数名字也要进行异或等加密处理
回调函数,回调方式
挂起 创建的线程
渐进式的 加载 读 写 执行 依次进行
进程注入 dll注入
利用某些特殊的函数
…
动态免杀(基于行为)
文件名进行判断md5,大小进行判断特定的ip 内存 mac 网卡信息,某个路径下的某个文件是否存在,系统的版本
加个执行参数
内核的补丁
时间设置,指定时间之前不执行
…
权限维持
无文件落地
写计划任务、启动项
加载
服务
shift 或者放大镜
劫持
利用系统中已安装的程序
SSH后门
后门账户
隐藏文件
rootkist
…
整体的思路是巩固口子,一般可以在不同的网段、不同的位置、不同的程序中留下新口子,做完一切后记得把屁股擦干净。
五、隧道建立
代理转发
用的工具比较多,很多都是开源的,自己需要改一下工具的特征
比如一些常见的工具:
FRP
NPS
EW
CS自带的S5或S4
…
协议代理
主要看走什么出来
常见的:
DNS隧道
GRE隧道
TCP、UDP隧道
….
shell反弹
不同的语言,尝试反弹shell回来
php
jsp
perl
py
ruby
lua
ssh
bash
nc
Web代理
毒刺
RG
phpsocks
…
端口转发及复用
LCX
rtcp
ssocks
Tunna
…
六、内网渗透
权限拓展
控制当前主机后,获取当前主机的一些基本信息
包括所处网段,系统日志、浏览器密码等信息
最好能摸清内网拓扑结构,方便下一步操作(尽量动作轻一些,如果时间紧迫,可以考虑一把梭,赌运气,一般都是晚上11点以后操作)
留坑:详细的方法。
在内网中,如果运气好,能找到一些集权类软件,会有助于下一步发展
常见的就是一些列如:域控 、EDR、堡垒机、运维机器、vcenter、k8s、esxi等。
当然也可以去寻找一下企业中的WIKI、git、网盘、邮服、运维平台
遇到的多的就 confluence多一些
留坑:详细的方法。
内网信息收集的艺术
浏览器密码是必抓的,往往会有意想不到的收获
拿到集权类的程序后,可以翻阅上面有没有一些重要的服务器,有时候运气好会有惊喜
整体围绕着想着怎么提升自己的权限,有条件的话可以做黄金票据、白银票据,不停的去滚雪球
如果找到靶标,是重中之重,可以优先查看
如果控到一些系统,比如说OA,可以尝试做水坑钓鱼,让他们下载新的软件。
总结一句话,不放过任何细节。
留坑:详细的方法。
七、整体作战思路
Nday刷波资产,0day打波点,没有0day就钓鱼,钓不上来就“坐牢“,实在不行去近缘。
一、先信息收集外部信息
二、再去打Web,没有Web口子钓鱼也可可以
三、拿到权限后一定做好权限维持,如果做不好,一定要秉承 口子不过夜的“好习惯”
四、一个口子进去,可以想着如何匿名做加密流量、或者多从内部找几台出网的机器回来
五、做好维持,工作分工,内网有的时候会特别大
六、做横向,尝试纵向移动
七、找到靶标系统
原文始发于微信公众号(开普勒安全团队):我眼中的攻防演练红队(总览)