8. 远控工具开发
8.1 CobaltStrike实战去特征免杀
插件开发(BOF/CNA)
| 工具 | 功能 |
|---|---|
| LSTAR | 综合信息收集 |
| OperatorsKit | 运维工具 |
| CS-AutoPostChain | 自动化后渗透 |
| Ghosting-BOF | - |
| WindowSpy | 窗口监控 |
| CS-Remote-OPs-BOF | 远程操作 |
| PrivKit | 提权 |
| PPEnum | 权限枚举 |
| Chisel-Strike | 隧道 |
| cmstplua-uac-bypass | UAC绕过 |
| CSx4Ldr | 加载器 |
| AceLdr | 位置无关代码加载 |
| bof-vs | VS BOF模板 |
| No-Consolation | 控制台隐藏 |
| BOF-patchit | 内存补丁 |
| ScreenShot-BOF | 截图 |
| SCMUACBypass | SCM UAC绕过 |
| Slacker | - |
| Mockingjay_BOF | - |
| ScreenshotBOFPlus | - |
| DropSpawn_BOF | - |
| HiddenDesktop | 隐藏桌面 |
| whereami | 地理定位 |
| Cookie-and-Handle-Stealer | 凭证窃取 |
BOF开发参考: bof_helper / Visual-Studio-BOF-template
服务器设置
- 禁ping:
/etc/sysctl.conf→net.ipv4.icmp_echo_ignore_all=1 - CDN: 免费CF账号
Beacon修改
特征修改核心:
1. 修改Key: OriginKey → CustomizeKey
2. Profile:
- strrep "beacon.x64.dll" "" (修改关键字)
- set magic_mz_x86 "1234"; set magic_mz_x64 "5678" (修改MZ头)
- set magic_pe "BB" (修改PE头)
- set cleanup "true" (清除原始Beacon DLL)
- set obfuscate "true" (去掉DLL头部)
- set userwx "false" (不给可写)
3. SleepMask: 修改key和异或逻辑
- my_mask_section中修改key = "cf81d743beef8422"
- 修改MSSE pipe特征
4. 替代Beacon: [geacon_plus](https://github.com/Z3ratu1/geacon_plus) / [beacon-rust](https://github.com/b1tg/cobaltstrike-beacon-rust) / [Beacon.dll](https://github.com/NoOne-hub/Beacon.dll)(简单逆向) / [Beacon_Source](https://github.com/kyxiaxiang/Beacon_Source)
Profile工具: Burp2Malleable / C2concealer / GraphStrike / goMalleable / pyMalleableC2 / JustC2file
BeaconEye检测特征: 6A 00
8.2 流量转发工具二次开发
修改方法:
| 方向 | 具体操作 |
|------|---------|
| 修改UA头 | UA参考 / User-Agent Switcher and Manager插件 |
| 配置文件自删除 | 硬编码配置到main(XOR加密ip/port) / 配置后os.Remove(cfgFile) |
| 远程加载配置 | - |
| TLS指纹 | burp-awesome-tls / frp pkg/util/net/tls.go |
| 域前置 | pkg/util/net/websocket.go + CDN配置回源HTTP |
| 外联小众协议 | QUIC: transport.protocol = "quic" |
| Protobuf插件 | frp protobuf支持 |
| 自定义加解密 | ChaCha20 / XOR / 复杂加密给配置文件认证+流量包简单加密(不然卡) |
| 去硬编码 | salt/json数据 → 可能崩溃需动调 / 认证部分指纹(models/msg/msg.go) / FrpWebsocketPath = "/~!frp" |
| 编译混淆加壳 | UPX / garble / go-strip |
| DLL加载 | - |
| 签名伪造 | Sign-Sacker |
框架结构学习方法(以fscan为例):
common → 数据解析/结构体/变量存储
plugins → 插件(理解项目结构从写插件开始)
webscan → web扫描(框架指纹识别/调度流程)
关键函数: 正看框架逻辑(改框架) → 打断点倒看调用(改插件)
动态调试 + 加解密加log输出
8.3 哥斯拉去特征
自定义流量加密: - 去除MD5校验: core/ApplicationConfig.java - 去掉HTTP头特征 - 修改key取值为后16位: ShellEntity.getSecretKeyX + 加密类.generate
自定义命令执行: - 修改execCommand: 复制cmd到临时目录执行并删除 - 修改默认变量名 - 重新编译后替换payload.dll - 修改ShellExecCommandPanel默认命令
WebShell去特征: - 修改反射Load方法名和GetMethod过特征免杀(Java/C#一样) - 其他变量随意修改 - 根据GenerateShellShellLoder的填充方式修改template/base64.bin - 修改shell.aspx去掉头尾 - ILspy反编译payload.dll导出源码修改文件名类名
插件开发:
- 修改打包好的jar替换原始lib中的jar
- Godzilla API
- 包名: shells.plugins.* + PluginnAnnotation注解 + Plugin接口
- Swing UI设计
- 菜单注册: MainActivity.registerJMenu/registerPluginJMenuItem/registerShellViewJMenuItem(必须在static代码块中)
需要的工具: JETBRAIN IDEA / RIDER / ILspy / sqlitestudio / Visual Studio 2022