目录
wazuh安装
官方给出了两种安装方式,这里我用的是第一种(ALL-in-one deployment)整体安装 另一种是Distributed deployment (分布式安装)
yum install zip unzip curl
2.安装Elasticsearch
导入GPC密码
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
3.添加存储库
cat > /etc/yum.repos.d/elastic.repo << EOF [elasticsearch-7.x] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md EOF
4.elasticsearch安装与配置
安装Elasticsearch包
yum install elasticsearch-7.17.9
5.下载配置文件
/etc/elasticsearch/elasticsearch.yml
如下:
curl -so /etc/elasticsearch/elasticsearch.yml https://packages.wazuh.com/4.5/tpl/elastic-basic/elasticsearch_all_in_one.yml
6.证书创建和部署
下载用于创建证书的配置文件:
curl -so /usr/share/elasticsearch/instances.yml https://packages.wazuh.com/4.5/tpl/elastic-basic/instances_aio.yml
在以下步骤中,将创建一个文件,其中包含以此处定义的实例命名的文件夹。该文件夹将包含使用 SSL 与 Elasticsearch 节点通信所需的证书和密钥。
可以使用elasticsearch-certutil工具创建证书:
/usr/share/elasticsearch/bin/elasticsearch-certutil cert ca --pem --in instances.yml --keep-ca-key --out ~/certs.zip
提取/usr/share/elasticsearch/certs.zip
上一步生成的文件。
unzip ~/certs.zip -d ~/certs
下一步是创建目录/etc/elasticsearch/certs
,然后将 CA 文件、证书和密钥复制到其中:
mkdir /etc/elasticsearch/certs/ca -p cp -R ~/certs/ca/ ~/certs/elasticsearch/* /etc/elasticsearch/certs/ chown -R elasticsearch: /etc/elasticsearch/certs chmod -R 500 /etc/elasticsearch/certs chmod 400 /etc/elasticsearch/certs/ca/ca.* /etc/elasticsearch/certs/elasticsearch.* rm -rf ~/certs/ ~/certs.zip
启用并启动 Elasticsearch 服务:
systemctl daemon-reload systemctl enable elasticsearch systemctl start elasticsearch
为所有 Elastic Stack 预构建角色和用户生成凭证:
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto
安装wazuh服务器
Wazuh 服务器收集并分析来自已部署代理的数据。它运行 Wazuh 管理器、Wazuh API 和 Filebeat。设置 Wazuh 的第一步是将 Wazuh 存储库添加到服务器。或者,可以直接下载 Wazuh 管理器包,并可以在此处检查兼容版本。
添加 Wazuh 存储库
1.导入 GPG 密匙
# rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH
2.添加存储库:
# cat > /etc/yum.repos.d/wazuh.repo << EOF
[wazuh]
gpgcheck=1
gpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH
enabled=1
name=EL-\$releasever - Wazuh
baseurl=https://packages.wazuh.com/4.x/yum/
protect=1
EOF
3.运行以下命令检查 Wazuh 管理器是否处于活动状态:
# systemctl status wazuh-manager
安装Filebeat
Filebeat 是 Wazuh 服务器上的工具,可将警报和存档事件安全地转发到 Elasticsearch。
Filebeat安装和配置
安装 Filebeat 包:
1.
百胜易于
# yum install filebeat-7.17.9
2.下载用于将 Wazuh 警报转发到 Elasticsearch 的预配置 Filebeat 配置文件:
# curl -so /etc/filebeat/filebeat.yml https://packages.wazuh.com/4.5/tpl/elastic-basic/filebeat_all_in_one.yml
3.下载 Elasticsearch 的警报模板:
# curl -so /etc/filebeat/wazuh-template.json https://raw.githubusercontent.com/wazuh/wazuh/4.5/extensions/elasticsearch/7.x/wazuh-template.json
# chmod go+r /etc/filebeat/wazuh-template.json
4.下载 Filebeat 的 Wazuh 模块:
# curl -s https://packages.wazuh.com/4.x/filebeat/wazuh-filebeat-0.2.tar.gz | tar -xvz -C /usr/share/filebeat/module
5.编辑该文件/etc/filebeat/filebeat.yml
并添加以下行:
output.elasticsearch.password: <elasticsearch_password>替换
elasticsearch_password
为之前为用户生成的密码elastic
。
6.将证书复制到/etc/filebeat/certs/
# cp -r /etc/elasticsearch/certs/ca/ /etc/filebeat/certs/
# cp /etc/elasticsearch/certs/elasticsearch.crt /etc/filebeat/certs/filebeat.crt
# cp /etc/elasticsearch/certs/elasticsearch.key /etc/filebeat/certs/filebeat.key
7.启用并启动Filebeat服务:
# systemctl daemon-reload
# systemctl enable kibana
# systemctl start kibana
为确保Filebeat已成功安装,请运行以下命令:
该命令应该有如下输出:
Output
elasticsearch: https://127.0.0.1:9200...
parse url... OK
connection...
parse host... OK
dns lookup... OK
addresses: 127.0.0.1
dial up... OK
TLS...
security: server's certificate chain verification is enabled
handshake... OK
TLS version: TLSv1.3
dial up... OK
talk to server... OK
version: 7.17.9
Kibana安装和配置
Kibana 是一个灵活直观的 Web 界面,用于挖掘和可视化存储在 Elasticsearch 中的事件和档案。
1.安装 Kibana 包:
百胜易于
# yum install kibana-7.17.9
2.将 Elasticsearch 证书复制到 Kibana 配置文件夹中:
# mkdir /etc/kibana/certs/ca -p
# cp -R /etc/elasticsearch/certs/ca/ /etc/kibana/certs/
# cp /etc/elasticsearch/certs/elasticsearch.key /etc/kibana/certs/kibana.key
# cp /etc/elasticsearch/certs/elasticsearch.crt /etc/kibana/certs/kibana.crt
# chown -R kibana:kibana /etc/kibana/
# chmod -R 500 /etc/kibana/certs
# chmod 440 /etc/kibana/certs/ca/ca.* /etc/kibana/certs/kibana.*
3.下载 Kibana 配置文件:
# curl -so /etc/kibana/kibana.yml https://packages.wazuh.com/4.5/tpl/elastic-basic/kibana_all_in_one.yml
编辑/etc/kibana/kibana.yml文件:
elasticsearch.password: <elasticsearch_password>
要替换的值:
<elasticsearch_password>:Elasticsearch安装和配置过程中为用户生成的密码elastic。
4.创建/usr/share/kibana/data
目录:
# mkdir /usr/share/kibana/data
# chown -R kibana:kibana /usr/share/kibana
5.安装 Wazuh Kibana 插件。插件的安装必须从 Kibana 主目录完成,如下所示:
# cd /usr/share/kibana
# sudo -u kibana /usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/4.x/ui/kibana/wazuh_kibana-4.5.0_7.17.9-1.zip
6.将 Kibana 的套接字链接到特权端口 443:
# setcap 'cap_net_bind_service=+ep' /usr/share/kibana/node/bin/node
7.启用并启动 Kibana 服务:
# systemctl daemon-reload
# systemctl enable kibana
# systemctl start kibana
8.使用Elasticsearch安装过程中生成的密码访问Web界面:
URL: https://<wazuh_server_ip>
user: elastic
password: <PASSWORD_elastic>首次访问 Kibana 时,浏览器会显示一条警告消息,指出证书不是由受信任的机构颁发的。可以在 Web 浏览器的高级选项中添加例外,或者为了提高安全性,
ca.crt
可以将先前生成的文件导入到浏览器的证书管理器中。或者,可以配置来自受信任机构的证书。
禁用存储库
本安装指南介绍了如何通过首先配置其存储库来安装和配置 Wazuh 和 Elastic Stack。
对于 Wazuh 或 Elastic Stack 的每个新版本,Wazuh 的开发团队都会彻底测试每个组件的兼容性,并在发布新的 Wazuh Kibana 插件之前进行必要的调整。
我们建议禁用存储库,以免无意中更新各个软件包,这可能会导致 Elastic Stack 版本尚未发布 Wazuh 集成。
百胜易于
要卸载多合一安装的所有组件,请访问卸载部分。
wazuh初体验
wazuh的主要配置文件的目录在/var/ossec/
配置完后可以直接访问wazuh
告警信息查看,在alerts.js中,里面可以看到促发的规则,登录IP,登录端口,登录时间以及登录成功或失败等
active-response 这个是当我们检测到攻击时的扫描脚本,里面放的都是一些脚本文件
/var/ossec/logs/aterts/alererts.json : json格式的预警信息,用于分析展示,这个是给计算机看的
/var/ossec/logs/aterts/alerts.log : 这个是给我们的技术人员看的,可以直接查看
接下来我们可以看一看wazuh的规则,规则可以在/var/ossec/ruleset/rules下查看
我们可以使用快捷方式查找我们的规则
然后进入到0085,找到我们需要找的规则5557,<if_sid>5556<if_Sid>告诉我们5557的父类规则是5556于是我们回到5556
我们可以看到它的解码器<decoded_as>unix_chkpwd</decoded_as>
接下来我们去寻找他的解码器
然后直接去0350就可以看到
深入分析LD_PRELOAD
编辑whoami.c文件,并且编写为c语言可执行文件
现在还是正常判断,因为还没有劫持strcmp函数
加下来开始准备劫持whoami.c中的strcmp函数,接下来写一个动态链接库,目标函数就为这里进行判断的strcmp函数。
建立动态链接的过程
此时我们已经生成了一个动态链接文件,此时我们还需要做一件事情,因为我们虽然已经生成了,但是并没有用LD_PROLOAD把他加载出来,还需要把它加载到环境变量里面。
所以执行以下代码,给他设置一个环境变量,在执行脚本时刚好里面有一个删除环境变量,所以现在把这个动态链接文件设置到环境变量里面去(临时的设置一个环境变量的方法)
总体分析:通过 LD_PRELOAD 劫持了函数,劫持后启动了一个新进程,若不在新进程启动前取消 LD_PRELOAD,则将陷入无限循环,所以必须得删除环境变量 LD_PRELOAD,最直接的就是调用 unsetenv("LD_PRELOAD")
。