为什么要做红队武器开发

提效、提质

知识沉淀

定制化

image-20250717124619016

01侦查、初始阶段(信息收集、漏洞攻击)

做扫描器的过程,就是学习归纳自己信息收集的过程

扫描器基本思路

image-20250717135259121

打红队一定要摆脱渗透测试思维,目的只有一个,拿到服务器权限。100%无法拿到权限的漏洞无需浪费时间深入和扫描

直接达成目的

RCE漏洞 shiro weblogic等

间接达成目的

敏感信息、SSRF探测内网、任意文件下载到源码

独特方式达成目的

有某些行业的系统(报表系统)jar、war包 可以针对性探测版本号

02隧道开发

传统隧道痛点

不出网

正向隧道速度慢

怎么绕过防御

方向隧道:面纱、流量监控、封IP、封协议的问题

正向隧道:shell免杀、waf拦截、流量监控、被删后门的问题

思路

image-20250717131323886

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,一样无法感知到这些行为。

image-20250717132931326

04C2(隐蔽通道)

为什么要自己设计远控

公开的远控更容易被检测识别

传统C2更多用于单兵作战,本地化严重。团队协同效率低

传统C2偏向于对windows的支持,对linux/darwin等系统支持较差

可以设计开发的角度出发去对抗杀软,更底层效果更好

为了更好的交互体验

系统框架图

image-20250717133525623

上线接口

反向上线:客户端连接服务器

image-20250717133556456

正向上线:服务器去连接客户端

image-20250717133615468

在成熟的企业网络中,通常会有完善的入网、出网限制。正向上线可以绕过某些限制。

任务下发

接受Master的指令

通过API接口接受指令

image-20250717133957356

将指令转发至Agent

将接受来的指令封装成固定的协议内容,转发给Agent执行,并获取输出内容

image-20250717134051011

隧道代理、插件执行的原理类似。但协议层面的处理不同,比如隧道代理要保持长连接。

马的种类

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作为中转