banner
肥皂的小屋

肥皂的小屋

github
steam
bilibili
douban
tg_channel

社工庫的搭建--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這個環境變量了

image

基礎運行#

下載好ElasticsearchLogstash以及Kibana三個壓縮包後都解壓,

1. 在Elasticsearch文件夾的bin\目錄下打開cmd,輸入elasticsearch.bat:

image

瀏覽器裡打開:http://localhost:9200/

image

2. 在kibana文件夾裡打開config\kibana.yml,將末尾的

#i18n.locale: "en"

改為:

i18n.locale: "zh-CN"

保存後在kibana文件夾裡點擊bin\kibana.bat文件

image

瀏覽器打開:http://localhost:5601,首次打開界面如圖所示:

image

到到這裡基本就運行起來了。這裡還需要介紹幾個主要的配置文件文件及作用:

主節點配置文件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

數據導入#

先寫到這,明天繼續。

常用技巧#

參考文章:

本文完。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。