** 聲明:作者初衷用於分享與普及網絡安全知識,若讀者因此作出任何危害網絡安全行為後果自負,與作者及本網站無關 **
** 本人及本站自始至終未向任何人提供任何網站、企業和組織的任何信息和資料 **
起因#
出於學習的目的,每一個像我這樣的網絡安全愛好者都會多多少少有一些網上流出的 “褲子”
那麼隨著數據量的增多以及合法滲透測試中的信息收集需求,搭建一個本地的、查詢迅速準確的社工庫是很有必要的
那麼搭建需要哪些環境呢?
目前網上已經搭建好的社工庫,大部分是 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
環境:點我去下載,像burpsuite
1.7 也能直接在這個環境下使用
但是使用Elasticsearch
已經提示即將不支持java
8,請儘快升級到java
11,這裡順便介紹下jre
和jdk
:
前者為Java Runtime Environment
,即java
運行環境,是運行java
文件的最小環境,
後者為Java SE Development Kit
,即java
開發環境工具包,是對java
編程的環境,
對於小白來說,建議直接安裝jdk
,jdk
是包含jre
的,下載完記得手動添加安裝位置到環境變量:
java
默認安裝路徑:C:\Program Files\Java
,裡面同時有jre
和jdk
,
而且jdk
文件夾裡面還有一個jre
文件夾,新建一個系統變量JAVA_HOME
,值為jdk
路徑
然後PATH
新建添加%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
,就配置好JAVA_HOME
這個環境變量了
基礎運行#
下載好Elasticsearch
、Logstash
以及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
數據導入#
先寫到這,明天繼續。
常用技巧#
參考文章:
本文完。