作者 | Autumnechoed
编 | zhuo
文章转自 FreeBuf安全咨询
|准备漏洞环境|
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
# or
docker-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,监听在 808080898005 端口,运行权限为 root。
4. 判断主机是否出网
-
-
通过 godzill 连接 shell 执行 ping dnslog 的命令
-
查看 dnslog 平台是否接收到信息
-
查看 hids 告警信息(可疑命令 && 网络请求)
-
通过告警信息分析入侵行为
与上面分析执行系统命令的思路一致就不再赘述,唯一存在差异的点在于,dnslog 请求预期会触发两种类型的告警(进程检测 && 网络检测)。
因为我测试使用的 HIDS 网络异常请求可以关联进程及容器等信息,所以不展开分析进程异常告警了(偷懒)。
|总结&建议|
-
本文通过简单的漏洞环境及利用手段复现攻击者入侵 web 服务的过程;
-
以HIDS 运维人员角度进行分析,旨在帮助大家通过 HIDS 告警对攻击者的入侵链及行为进行分析;
-
本文中操作相对基础,建议大家可以作为告警分析练习题,类比到更多入侵场景及自己现阶段在使用的 HIDS 中(浅卷下各家HIDS);
-
评论区欢迎大家晒出HIDS进程树呀,一起交流,共同进步(握拳)。
原文始发于微信公众号(昊天信安):通过 HIDS 告警分析 webshell 行为
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论