MENU

社工库的搭建--ELK

声明:作者初衷用于分享与普及网络安全知识,若读者因此作出任何危害网络安全行为后果自负,与作者及本网站无关

本人及本站自始至终未向任何人提供任何网站、企业和组织的任何信息和资料

起因

出于学习的目的,每一个像我这样的网络安全爱好者都会多多少少有一些网上流出的“裤子”

那么随着数据量的增多以及合法渗透测试中的信息收集需求,搭建一个本地的、查询迅速准确的社工库是很有必要的

那么搭建需要哪些环境呢?

目前网上已经搭建好的社工库,大部分是mysql+coreseek+php架构,coreseek基于sphinx,是一款优秀的全文搜索引擎,但缺点是比较轻量级,一旦数据量过数亿,就会有些力不从心,并且搭建集群做分布式性能并不理想,如果要考虑以后数据量越来越大的情况,还是得用其他方案

我这里使用一个叫做ELK的方式,原本是一个开源实时日志分析平台

本篇文章将介绍ELK环境的搭建以及常用的数据导入及查询方式

ELK介绍

ELK是什么东西?

ELK是三个开源软件的缩写,分别为:Elasticsearch 、 Logstash以及Kibana , 它们都是开源软件。不过现在还新增了一个Beats,它是一个轻量级的日志收集处理工具(Agent),Beats占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具,目前由于原本的ELK Stack成员中加入了 Beats 工具所以已改名为Elastic Stack。Elastic Stack包含:

Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。详细可参考Elasticsearch权威指南

Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。

Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

Beats在这里是一个轻量级日志采集器,其实Beats家族有6个成员,早期的ELK架构中使用Logstash收集、解析日志,但是Logstash对内存、cpu、io等资源消耗比较高。相比 Logstash,Beats所占系统的CPU和内存几乎可以忽略不计

ELK Stack (5.0版本之后)--> Elastic Stack == (ELK Stack + Beats)。目前Beats包含六种工具:

为什么用ELK?

传统的社工库通常用MySQL数据库来进行搭建,在相当大的数据下检索效率非常低下。在这种关系型数据库中进行查询需要明确指定列名。而在ES中可用全文 检索,并且在大数据的查询中的响应几乎都是毫秒级的,速度相当之快!ELK原本用在日志的大数据收集和分析,其可怕的速度作为社工库也是一种不错的选择。

ELK官网ELK三款软件下载ELK中文指南(需登录)

ELK环境搭建

java环境配置

ELK需要java环境的支持,并且配置JAVA_HOME环境变量

由于java各个版本的收费与不收费的混乱,我一直保持使用java8的版本,

祭出我一直使用的jdk环境:点我去下载,像burpsuite1.7也能直接在这个环境下使用

但是使用Elasticsearch已经提示即将不支持java8,请尽快升级到java11,这里顺便介绍下jrejdk

前者为Java Runtime Environment,即java运行环境,是运行java文件的最小环境,

后者为Java SE Development Kit,即java开发环境工具包,是对java编程的环境,

对于小白来说,建议直接安装jdkjdk是包含jre的,下载完记得手动添加安装位置到环境变量:

java默认安装路径:C:\Program Files\Java,里面同时有jrejdk

而且jdk文件夹里面还有一个jre文件夹,新建一个系统变量JAVA_HOME,值为jdk路径

然后PATH新建添加%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin,就配置好JAVA_HOME这个环境变量了

基础运行

下载好ElasticsearchLogstash以及Kibana三个压缩包后都解压,

1.在Elasticsearch文件夹的bin\目录下打开cmd,输入elasticsearch.bat:

浏览器里打开:http://localhost:9200/

2.在kibana文件夹里打开config\kibana.yml,将末尾的

#i18n.locale: "en"

改为:

i18n.locale: "zh-CN"

保存后在kibana文件夹里点击bin\kibana.bat文件

浏览器打开:http://localhost:5601,首次打开界面如图所示:

到到这里基本就运行起来了。这里还需要介绍几个主要的配置文件文件及作用:

主节点配置文件elasticsearch.yml,为什么叫做主节点,因为ELK本来就是为了分布式的架构的日志分析而设计的

位置在elasticsearch\config\elasticsearch.yml,一般不建议修改,默认的就可以。

#禁用虚拟内存,提高性能
bootstrap.memory_lock: true
#节点名称自定义:
cluster.name: elasticsearch
#数据通信端口:
http.port: 9200
#监听网卡ip
network.host: 192.168.1.1
#是否是数据节点:
node.data: true
#关闭即可:
node.ingest: true
#是否是主节点,不定义的话先启动的是主节点:
node.master: true
#最大存储节点:
node.max_local_storage_nodes: 1
#节点名字自定义:
node.name: Win-Master-1
#数据文件路径
path.data: D:\elk\elasticsearch\data
path.logs: D:\elk\elasticsearch\logs
#节点间通信端口:
transport.tcp.port: 9300
#节点ip,节点之间要允许ping和9300端口通信
discovery.zen.ping.unicast.hosts: ["192.168.1.1", "192.168.1.2"]
#head插件相关:
http.cors.enabled: true
http.cors.allow-origin: "*"
# 0.0.0.0 则开启外网访问
network.host=0.0.0.0

数据导入

先写到这,明天继续。

常用技巧

参考文章:

本文完。

添加新评论

已有 1 条评论
  1. 布丁 布丁

    没前端啊 有没有成品