0x01 简介
搭建一个elk环境,分析日志
准备两个虚拟机:
ubantu 22:搭建elasticsearch、kibana、fleet
windows10:配置elastic_agent采集系统、应用、安全日志,安装sysmon采集日志
0x02 环境搭建及使用
1、操作系统 ubantu
官网下载即可:
这里使用的是22.04版本
https://mirror.nyist.edu.cn/ubuntu-releases/jammy/ubuntu-22.04.4-desktop-amd64.iso
安装好之后,修改下/etc/resolv.conf
,配置个dns服务器:
2、elasticsearch 下载安装
linux上下载es:
1
2
3
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.7.1-amd64.deb
sudo dpkg -i elasticsearch-8.7.1-amd64.deb
安装成功:
存下密码,或者通过elasticsearch-reset-password
去修改密码;
1
ue8zyNPK6BBHh*2ujKVm
启动es:
1
2
3
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service
此时端口已经开了,默认9200:
3、kibana 下载安装
下载k8s:
1
2
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.7.1-amd64.deb
sudo dpkg -i kibana-8.7.1-amd64.deb
安装成功:
修改配置文件:/etc/kibana/kibana.yml
,server.host改成0.0.0.0就行,文件最后可以把语言可以改成中文:i18n.locale:"zh-CN"
,默认是en,英文;
并且添加如下内容,设置一个密钥(后期kibana里面建规则需要)
1
xpack.encryptedSavedObjects.encryptionKey: 'fhjskloppd678ehkdfdlliverpoolfcc'
运行服务:
1
systemctl restart kibana
开启成功,默认端口5601
4、ES和kibana联通
访问 kibana,
http://192.168.129.195:5601/
提示需要token:
运行如下命令,从而es拿到token;
1
sudo /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
填入token ,提示下一步,需要一个校验code:
运行如下命令,从kibana里面拿到校验code:
1
sudo /usr/share/kibana/bin/kibana-verification-code
填入code,下一步输入命令登录即可:
登录后界面:
5、ES破解
参考:https://songxwn.com/Elasticsearch-x-pack-core/
破解环境
破解需要的环境:ubantu装个docker
参考:https://yeasy.gitbook.io/docker_practice/install/ubuntu
ubantu加上国内的源:/etc/apt/source.list
1
2
3
4
5
6
7
8
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
更新源,添加相关证书
1
2
3
4
5
6
7
8
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
加软件源的 GPG
密钥
1
sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
向 sources.list
中添加 Docker 软件源
1
2
3
4
sudo echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
在更新源,并安装docker
1
2
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
1
sudo usermod -aG docker $USER
给docker配置全局代理
创建如下目录和配置文件,然后设置代理梯子:
1
2
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo touch /etc/systemd/system/docker.service.d/proxy.conf
1
2
3
4
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080/"
Environment="HTTPS_PROXY=http://proxy.example.com:8080/"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
重启docker
1
2
sudo systemctl daemon-reload
sudo systemctl restart docker
破解:
下载破解zip:
1
wget https://github.com/Songxwn/crack-elasticsearch-by-docker/archive/refs/tags/8.7.1.zip
解压运行:
1
2
3
unzip 8.7.1.zip
version=8.7.1
sudo bash crack.sh $version
进入output目录,用x-pack-core-8.7.1.crack.jar
覆盖/usr/share/elasticsearch/modules/x-pack-core/
下的x-pack-core-8.7.1.jar
1
sudo cp ./output/x-pack-core-8.7.1.crack.jar /usr/share/elasticsearch/modules/x-pack-core/x-pack-core-8.7.1.jar
重启es:
sudo systemctl restart elasticsearch
创建elastic8.json文件
1
2
3
4
5
6
7
8
9
10
11
12
13
{
"license": {
"uid": "d177620f-46ef-4389-8694-4f1d1cb232f0",
"type": "platinum",
"issue_date_in_millis": 1682640000000,
"expiry_date_in_millis": 4081372171000,
"max_nodes": 1000,
"issued_to": "elastic",
"issuer": "elastic",
"signature": "AAAAAwAAAA1Mj/kViFP0DDokihMTAAABmC9ZN0hjZDBGYnVyRXpCOW5Bb3FjZDAxOWpSbTVoMVZwUzRxVk1PSmkxaktJRVl5MUYvUWh3bHZVUTllbXNPbzBUemtnbWpBbmlWRmRZb25KNFlBR2x0TXc2K2p1Y1VtMG1UQU9TRGZVSGRwaEJGUjE3bXd3LzRqZ05iLzRteWFNekdxRGpIYlFwYkJiNUs0U1hTVlJKNVlXekMrSlVUdFIvV0FNeWdOYnlESDc3MWhlY3hSQmdKSjJ2ZTcvYlBFOHhPQlV3ZHdDQ0tHcG5uOElCaDJ4K1hob29xSG85N0kvTWV3THhlQk9NL01VMFRjNDZpZEVXeUtUMXIyMlIveFpJUkk2WUdveEZaME9XWitGUi9WNTZVQW1FMG1DenhZU0ZmeXlZakVEMjZFT2NvOWxpZGlqVmlHNC8rWVVUYzMwRGVySHpIdURzKzFiRDl4TmM1TUp2VTBOUlJZUlAyV0ZVL2kvVk10L0NsbXNFYVZwT3NSU082dFNNa2prQ0ZsclZ4NTltbU1CVE5lR09Bck93V2J1Y3c9PQAAAQB+UgXp8+9jDR7U2Roxj4caOUYvtO3+GEU/AGVgrC7LHZTKDQkD8h36pneSK1Iwh0HTvi9kKmdWmqU6DiSwiOMW/Bu+ouItG5XlG+THiC1vDzVmknWU+MKIr9agGaEz4bsaqv70rO8MaivOLgEsj61cgDbpNL4jfLuCpiHbMB/X8XaftLCl70URcRnNTJ64PhobBFwHg0XV344FLInlRSpOWeQr29Nh94iB5bxBeKsXwhmoP9O1NtKAmPoKJUttBXQ757/BnyzruK8+sxGOv8XVCkC+xjVTqeyd3Lp5WUNw7jm4Bb7XspDWWjjRDYh4Omci94VetP+QtcoQmAiBarKi",
"start_date_in_millis": 1682640000000
}
}
在kibana界面 ,Static Management 许可管理导入
可以看到破解完成:
6、部署fleet服务
登录kibana 找到如下集成
简单填写几个名称,下一步
然后添加代理:
添加fleet服务器:
填写名称和url地址,这里地址直接设置生成本地IP的8220端口,记得https,然后点击生成fleet服务器:
得到elastic—agent的安装方法和参数:
1
2
3
4
5
6
7
8
9
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest -Uri https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.7.1-windows-x86_64.zip -OutFile elastic-agent-8.7.1-windows-x86_64.zip
Expand-Archive .\elastic-agent-8.7.1-windows-x86_64.zip
cd elastic-agent-8.7.1-windows-x86_64
.\elastic-agent.exe install `
--fleet-server-es=https://192.168.129.195:9200 `
--fleet-server-service-token=AAEAAWVsYXN0aWMvZmxlZXQtc2VydmVyL3Rva2VuLTE3MTg3MTAxMzI3NTA6M0tYY2k3XzlScFMzOTFwcWJEelJsUQ `
--fleet-server-policy=fleet-server-policy `
--fleet-server-es-ca-trusted-fingerprint=cf09ba240377c1801474dee0bcc4113107bab59e2fe2500d33ee6ce053d39e33
7、安装配置ES_agent
windows机器上,我们运行上面ps代码:
这里我之前是下载过agent了,所以直接用cmd运行最后的安装命令就行:
装好之后,kibana上,看到已连接:
然后进入:kibana界面里面的 Observability —> 基础设施
我们就能看到上来的机器
8、使用ES_agent采集的日志
进入主界面的Discover 看到实时上传的日志
创建数据视图的时候
我们看到右侧多了很多索引,这些都是es的agent采集的,里面也包括了windows里面的系统、安全、应用日志
除此之外还有一些 进程创建、网络连接、内存、文件系统的日志:
9、采集并导入sysmon日志
windows机器上可以安装sysmon,生成的evtx日志,可以直接导入到es里面
安装sysmon:
下载:https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon
配置文件:https://github.com/SwiftOnSecurity/sysmon-config/blob/master/sysmonconfig-export.xml
找到日志位置:
下载evtx2es:https://github.com/sumeshi/evtx2es/releases
运行如下命令,直接导入到es里面:
1
evtx2es.exe Microsoft-Windows-Sysmon%4Operational.evtx --host 192.168.129.195 --login elastic --pwd ue8zyNPK6BBHh*2ujKVm --scheme https --index testbyg0
如下就是导入完成了
回到kibana里面,通过创建视图,来源会新增一个索引类型的来源:testbyg0
如下是创建视图后看到的sysmon日志:
0x03 总结
记录下本地搭建ELK的过程,里面有的坑都写出来了,这里没有选择直接用docker拉docker-compose容器起环境,准备本地用,虚机快照好操作,可控性强;
有点折磨,就是一些简单的操作,但是就是会出奇奇怪怪的问题,然后写这个文章的时候又重新折磨了一遍,记录下吧,之后或许有用;