使用ELK搭建社工庫
來自: https://www.t00ls.net/articles-32593.html
0x01 ELK是什么東西?
ELK是ElasticSearch、Logstash、Kibana三個應用的縮寫。 ElasticSearch簡稱ES,主要用來存儲和檢索數據。Logstash主要用來往ES中寫入數據。Kibana主要用來展示數據。
0x02 為什么用ELK?
傳統的社工庫通常用MySQL數據庫來進行搭建,在相當大的數據下檢索效率非常低下。在這種關系型數據庫中進行查詢需要明確指定列名。而在ES中可用全文檢索,并且在大數據的查詢中的響應幾乎都是毫秒級的,速度相當之快!ELK原本用在日志的大數據收集和分析,其可怕的速度作為社工庫也是一種不錯的選擇。
0x03 安裝和配置
前提你需要一個很大的硬盤,大約社工庫容量2.5倍的硬盤(ES會創建相關索引)。
你需要安裝java至少7以上的版本。并且配置JAVA_HOME環境變量.
因為安裝非常簡單,只需要下載相應的壓縮文件,解壓即可。在此不再贅述。
我此次演示的環境在Windows8.1上,ES在Linux中不能使用root權限運行。
ES 2.0.0 Logstash 2.0.0 Kibana 4.2.0
修改配置文件:
ES/config/elasticsearch.yml
cluster.name: esdemo (集群的描述信息)
node.name: 63 (節點名稱)
network.host: 192.168.1.5 (綁定的IP地址)
http.port: 9200 (端口號 默認9200)
一些Linux環境需要修改 ES/bin/elasticsearch 文件 增加
export JAVA_HOME=JDK路徑
啟動 ES/bin/elasticsearch或者elasticsearch.bat 即可啟動
然后訪問 http://localhost/IP:9200 可查看是否正常運行
Kibana/config/kibana.yml
elasticsearch.url: "http://192.168.1.5:9200" 指定ES地址
執行Kibana/bin/kibana 或者 kibana.bat啟動
查看 http://localhost:5601 是否正常啟動
ElasticSearch 天生就很好的支持分布式,如果環境允許可以多使用幾臺負載。
為了方便理解 把ES中的一些概念和MySQL進行對比
ES index(索引) type(類型) document(文檔) field(字段)
MySQL database table row column
0x04 社工庫搭建
以上工作準備完成之后,就該進入搭建的階段了.首先確定有哪些列名存在ES中,我自己存了10列,給大家做個參考.
nickname(昵稱)、password(密碼)、email(郵箱)、qq(QQ號)、telno(手機號碼)、idno(身份證號碼)、realname(真實姓名)、address(家庭住址)、salt(鹽值)、from(數據來源)。相對來說我這樣劃分的還是蠻詳細的。但是在用Logstash寫入ES的過程當中就比較費時了。其實如果想偷懶,完全可以把現有的數據只作為一個field寫入,也是可以查詢出來的。但是這樣會比較亂,看著很不舒服。
我現在的主要做法是對一些現有的CSV文件,使用腳本進行清洗,洗成我規定的這些字段的格式。如果是.sql文件,則直接丟進mysql,然后再導出csv文件。也就是說不同的網站數據庫最終全部是csv文件,并且是格式相同的csv。有字段不存在的則使用空字符替代。這樣的話,可以在不更改logstash配置文件的情況下直接導入ES,也方便進行遷移。
配置logstash 文件(test.conf)
</div>
然后在logstash bin目錄下面執行
Logstash.bat -f test.conf
就可以看到如下圖:
正在往ES中寫入數據。
在重復測試時,請注意要刪除home目錄下的sincedb文件。我提供了一段python代碼來進行這些操作。
以上代碼主要是用來刪除創建的索引中的數據并且刪除一些臨時文件.
數據寫完之后可以查看
http://ip地址:9200/_cat/indices?v
來查看索引的信息
登錄 Kibana
http://localhost:5601/
點擊settings --- index patterns Add new --輸入你創建的index名稱,點擊create完成.
然后可以在Discover中進行搜索。
也可以指定字段名進行搜索 例如:telno:13588888888.該語法為lucene 語法.
Have fun!!!
PS:
1、如果一億條數據,本機測試也是毫秒級的查詢,目前3億條數據,速度也是很快。
2、這三款軟件全部開源。可以在ES的官方下載,下載之后,簡單的配置即可使用。
</div>