【笔记】VEO红队武器开发
为什么要做红队武器开发
提效、提质
知识沉淀
定制化
01侦查、初始阶段(信息收集、漏洞攻击)
做扫描器的过程,就是学习归纳自己信息收集的过程
扫描器基本思路
打红队一定要摆脱渗透测试思维,目的只有一个,拿到服务器权限。100%无法拿到权限的漏洞无需浪费时间深入和扫描
直接达成目的
RCE漏洞 shiro weblogic等
间接达成目的
敏感信息、SSRF探测内网、任意文件下载到源码
独特方式达成目的
有某些行业的系统(报表系统)jar、war包 可以针对性探测版本号
02隧道开发
传统隧道痛点
不出网
正向隧道速度慢
怎么绕过防御
方向隧道:面纱、流量监控、封IP、封协议的问题
正向隧道:shell免杀、waf拦截、流量监控、被删后门的问题
思路
03持久化(后门)
魔改哥斯拉、冰蝎
最基础的webshell,是非常容易被发现的,甚至导致服务下线,丢失入口点,前期的成果付诸东流。
流量:独创加密方式,或者设计成和正常流量类似
静态免杀:填充编码、混淆,混入正常代码等方式
加载方式:很多引擎都通过检测自定义的classloader,defineclass等关键词,可以想办过不通过这些函数进行类加载
魔改哥斯拉
通过网络上分享的哥斯拉反编译源码,可以设计自己的加密方式、通信方式的webshell管理工具。
独特的流量通信、加载方式可以绕过常见的EDR,HIDS等设备
冰蝎现在已经支持完全的自定义流量,所以用冰蝎实现魔改无需反编译源码
内存马后门
已知的公开内存马已经不太好用了,需要再此基础上扩展思维才能进行对抗,如SPI后门,LIB后门等,通过将木马插入jdk目录,class落盘等,也许效果会根号
内核马
攻击流程
流量从80端口进来后,XDP ingress侧TCP数据包伪装为22端口,使攻击者流量能在80端口访问22端口的SSH,绕过现有防火墙规则。
eBPF的功能覆盖XDP、TC、Prode、Socket等,每个功能点都能实现内核态的篡改行为,从而使得用户态完全致盲,哪怕是基于内核模块的HIDS,一样无法感知到这些行为。
04C2(隐蔽通道)
为什么要自己设计远控
公开的远控更容易被检测识别
传统C2更多用于单兵作战,本地化严重。团队协同效率低
传统C2偏向于对windows的支持,对linux/darwin等系统支持较差
可以设计开发的角度出发去对抗杀软,更底层效果更好
为了更好的交互体验
系统框架图
上线接口
反向上线:客户端连接服务器
正向上线:服务器去连接客户端
在成熟的企业网络中,通常会有完善的入网、出网限制。正向上线可以绕过某些限制。
任务下发
接受Master的指令
通过API接口接受指令
将指令转发至Agent
将接受来的指令封装成固定的协议内容,转发给Agent执行,并获取输出内容
隧道代理、插件执行的原理类似。但协议层面的处理不同,比如隧道代理要保持长连接。
马的种类
Stageless:完整客户端
包含所有功能代码。兼容性强,C/C++编写的约为几百KB,如果是gonlang编写的则能达到几M甚至几十M
Stage:阶段性客户端
本质上就是个下载者,下载完整客户端后运行 使用Stage通常有两个目的,一个是较小体积,一个是免杀
Shellcode
二进制形式,方便在内存执行,通常用来制作免杀
dll、so
动态加载库形式,通常用来制作免杀。
检测对抗-流量协议和中转
高隐蔽的协议-DOH
DNS over HTTPS,通过公共DOH地址进行上线
从客户端抓包看到的流量,都是通往dns.alidns.com的TLS流量,一般都不会被拦截,且非常难溯源,即使解开了HTTPS查到了域名,假如域名套了CDN也无法获取真实IP
与传统HTTPS不同,它使用了公共DOH作为中转