查看原文
其他

​通过 HIDS 告警分析 webshell 行为

Autumnechoed FreeBuf安全咨询 2023-10-04

作者 | Autumnechoed

编 | zhuo

文章中敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!


 | 准备漏洞环境 |


1. 下载 vulhub 仓库


git clone https://github.com/vulhub/vulhub.git


2.  修改 tomcat 弱口令漏洞环境配置


vi vulhub/tomcat/tomcat8/tomcat-users.xml


将配置文件中的 user 和 password 修改为非弱口令


3.  启动漏洞环境(根据实际 docker 环境选择下面两个命令)


docker compose -f vulhub/tomcat/tomcat8/docker-compose.yml up -d# ordocker-compose -f vulhub/tomcat/tomcat8/docker-compose.yml up -d



 | 准备 HIDS 环境 |


1.  安装 HIDS 探针(有什么装什么,不做演示?)

2.  更新探针资产(初装探针无需更新)


 | 入侵及 HIDS 告警分析 |


1.  使用 webshell 管理工具(godzilla)生成 java webshell



2.  通过 tomcat 弱口令漏洞上传 webshell


  • 添加 shell.jsp 到 shell.jsp.war

  • 打开 tomcat manager app,使用默认账号密码登录

  • 部署 shell.jsp.war 到 tomcat 中



  • 查看并分析 HIDS 告警信息



  • 根据 webshell 告警中的容器 ID 关联信息,可以看到容器名为 vulhub/tomcat8.0 


 

3.  连接 webshell 并执行系统命令


  • 使用 godzilla 连接 webshell


  • 执行 whoami 查看系统用户信息



  • HIDS 产生告警(网络应用执行基本信息查询命令)


  • 分析告警详情中进程树信息进程树


通过告警详情中的进程树可以看到,HIDS 清晰记录了可疑命令的进程树以及详细的系统命令。根据进程树信息我们可以得知,攻击者执行的可疑命令为 whoami,被入侵的是一个在 docker 容器内由 java 启动的服务。攻击者执行系统命令的方法是通过 sh -c "{command}" 来实现的。


  • 分析告警应用信息中网络应用信息


根据告警详情中的网络应用信息,可以得知本次入侵中被利用的服务是 tomcat,监听在 8080\8089\8005 端口,运行权限为 root。


4.  判断主机是否出网


  • 打开 dnslog 平台获取 dnslog 地址



  • 通过 godzill 连接 shell 执行 ping dnslog 的命令




  • 查看 dnslog 平台是否接收到信息


  • 查看 hids 告警信息(可疑命令 && 网络请求)


  • 通过告警信息分析入侵行



与上面分析执行系统命令的思路一致就不再赘述,唯一存在差异的点在于,dnslog 请求预期会触发两种类型的告警(进程检测 && 网络检测)。


因为我测试使用的 HIDS 网络异常请求可以关联进程及容器等信息,所以不展开分析进程异常告警了(偷懒)。


 | 总结&建议 |


  1. 本文通过简单的漏洞环境及利用手段复现攻击者入侵 web 服务的过程;

  2. 以HIDS 运维人员角度进行分析,旨在帮助大家通过 HIDS 告警对攻击者的入侵链及行为进行分析;

  3. 本文中操作相对基础,建议大家可以作为告警分析练习题,类比到更多入侵场景及自己现阶段在使用的 HIDS 中(浅卷下各家HIDS);

  4. 评论区欢迎大家晒出HIDS进程树呀,一起交流,共同进步(握拳)。


精彩推荐


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存