信息收集系列之—重量級信息收集工具!

本文原創作者:野驢

內容來源:i春秋社區

歡迎關注i春秋公眾號(微信搜索:icqedu)了解更多技術乾貨,未經許可禁止轉載。

==============================================

文章難易度 【

文章知識點: python,郵箱收集

0x01 前言

白駒過隙,2016年似乎就這樣呼嘯而過了,在過去的這一年你有哪些收穫呢?記得年關將近的時候,支付寶掀起了新一輪「集福」熱潮,加入了VR新元素,掃福得福卡,這年頭,誰有「敬業」誰就是高富帥(為什麼是敬業而不是其它呢?)

集福的同時,也不得不感嘆因技術給我們生活帶來的變革,我想世界上任何一個國家的移動支付發展都無法做到中國這樣在短時間內改變人們的支付理念,這讓我想到一個段子,一個海歸回國在一個三線城市的小飯店吃完飯發現沒帶現金,正在手足無措要給哥們打電話時,老闆說可以微信支付,支付寶也行。聽完這話,這海歸瞠目結舌,給哥們打電話說,中國發展好快啊!!!哥們說「你個土包子」。

這就是後發優勢吧,沒有國外發展已久的信用卡體系,使得移動支付可以快速為用戶接受。哎呀,扯遠了,無論如何我們還是要不斷學習,更新知識體系,不被人工智慧打敗。今天給大家帶來的是一款重量級的信息收集工具————SpiderFoot.

?

0x02 安裝

主頁地址:SpiderFoot – Open Source Intelligence Automation.

項目地址:smicallef/spiderfoot: SpiderFoot, the open source footprinting and intelligence-gathering tool.

這款工具支持linux安裝和windows安裝,這裡主要講linux下的安裝,因為要作為一項經常使用的服務性工具,個人認為還是裝在linux伺服器上好一些,最新版本為2.7.1。

首先,在合適的目錄

安裝依賴

運行服務

如果你只在本地運行,則

Python sf.py 127.0.0.1:5001

如果你想對外提供服務,則

現在你可以在訪問伺服器所在IP:5001,如果出現以下界面澤表示安裝成功

0x03 配置及設置項

0x031 配置項

首先添加新掃描,填寫掃描名稱和目標網址,

滑鼠懸停於相應位置都會有氣泡提示,界面很友好,再選擇掃描方式,可以通過三種不同的形式選擇掃描方式

1、使用情況,相當於三個級別,我稱之為「全掃」、「中掃」、「簡掃」根據你對目標網站的了解程度選 擇。

2、根據所請求的數據選擇

3、根據所使用的模塊選

部分模塊相應功能為

這裡需要注意!掃描名稱不能用中文,否則會報錯(大坑,有待改進)。

0x032 設置項

該工具因為功能強大而全(所以才重量級嗎),因此設置項比較多,我們就說幾個重點的,其他,同學們自行摸索

Global設置,百聞不如一見,看圖

這裡要說下代理設置,因為spiderfoot中很多模塊需要扶牆,如google等,所以我們就要通過代理的方式實現科學上網,以便更好的發揮工具性能。具體shadow-sockes配置看我之前的帖子或自行學習。

Shodan是指API設置

以前的帖子說過,shodan是黑客界的google,被很多工具集成,spiderfoot也不例外,同樣需要設置APIkey

0x03 狀態及報告

在「scans」選項中可以看到有哪些掃描任務以及各自狀態,點擊相應掃描名稱就可以查看當前狀態報告,報告支持導出為多種格式。

以及可瀏覽項,支持搜索功能且支持導出報告為csv格式

還有圖表,繪製出各域名間的聯繫,支持保存為圖片及數據格式。

設置項為該掃描的所有設置項瀏覽,以及日誌。

0x04 模塊編寫

SpiderFoot是用Python(2.7)編寫的,具有模塊化的所有數據收集。 當模塊發現數據時,該數據被發送到在該數據類型中相關的所有其他模塊進行處理。這些模塊將對該數據片段進行操作以識別新數據,並且依次為可能相關的其他模塊生成新事件。例如, sfp_dns可以標識與目標相關聯的IP地址,通知所有相關的模塊。其中一個相關的模塊是sfp_ir模塊,它將採用該IP地址並識別它是BGP ASN的一部分。

同時,隨著每個事件被生成到模塊,它也被記錄在SpiderFoot資料庫中,用於在UI中報告和查看。

那麼問題來了,都有哪些數據元素呢?

數據元素是以下類型之一:

1、實體,如IP地址,互聯網名稱(主機名,子域,域),

2、子實體,如埠號,URL和軟體安裝,

3、 這些實體的描述符(惡意,物理位置信息,...)或

4、數據 ,大部分是非結構化數據(網頁內容,埠橫幅,原始DNS記錄,...)

所有可用的數據元素都已內置到SpiderFoot:

一個SpiderFoot模塊,可以先看sfp_template.py文件,這是官方給出的一個模板。

1、重命名sfp_template.py,盡量使命名有意義,因為SpiderFoot在UI中使用類的注釋來對模塊進行分類,所以最好命名很重要,這樣就可以一目了然其功能,具體可以參考其他模塊命名方式。

2、基於以上提到的數據元素表,相應地設置watchedEvents()和producedEvents()的事件。

3、將模塊的邏輯放在handleEvent()。 每次調用handleEvent()都提供了一個SpiderFootEvent對象。 此對象中最重要的值是:

eventType :數據元素ID( IP_ADDRESS , WEBSERVER_BANNER等)

data :實際數據,例如IP地址或Web伺服器橫幅等。

module :生成事件的模塊的名稱( sfp_dns等)

4、當需要生成事件時,創建一個SpiderFootEvent的實例:

注意:作為最後一個變數傳遞的事件是您的模塊接收的事件。這是建立SpiderFoot資料庫的數據元素之間的關係。

5、通知所有可能相關的模塊:

其實編寫模塊並沒有那麼難,這裡給大家留個提供一個思路,可以通過修改sf_shodan.py來編寫sf_zoomeye.py模塊,使得spiderfoot更加得心應手了,編寫完可以通過只載入sf_zoomeye模塊,查看log和seting來驗證是否生效,有問題歡迎私信交流。

0x05 結語

昨天看了阮一峰前輩開了10多年的博客(阮一峰的網路日誌),他對未來的思考值得我們借鑒,AlphaGo已經戰勝人類,在不久的將來很多工作都會被人工智慧替代,我們只有不斷學習,才能成為未來的倖存者。

推薦閱讀:

Python基本語法的學習
Spark SQL你不得不知道的那些事兒
PyCUDA 文檔中文翻譯-Tutorial 中文版
windows系統下,首行# !/usr/bin/env python是不是沒有用?
我不想用for循環

TAG:信息收集 | Python | Linux |