當前位置:
首頁 > 最新 > Harpoon:OSINT威脅情報工具

Harpoon:OSINT威脅情報工具

Harpoon是一款自動化的用於從各種公開資源中收集威脅情報的工具。它是由Python 3編寫的,並在其設計中體現了模塊化思想,每個平台和任務都會有一個插件。大家可以在Github上查看其源碼,並向作者提出建議或Pull Requests。

安裝和配置:

接著,我們通過查看harpoo的幫助模塊了解每個模塊的使用方法

Harpoon ?

在過去的一年半里,我一直忙於對多種惡意軟體的威脅情報收集和分析任務。威脅情報的主要來源,一方面是被動DNS/惡意軟體資料庫,另一方面是惡意活動資料庫。其目的是映射攻擊的基礎架構,並在可能的情況下將其與其他惡意活動相關聯。某些威脅情報平台是完全免費的,並且面向所有人開放(例如OTX 或 RobTex)。而有的則是完全商業化的,需要收取一定的費用才能使用(例如 VirusTotal 或 PassiveTotal)。最後不難發現這項任務的大部分時間,都花在了在不同平台尋找信息上。為此,許多人試圖創建一個平台來集中化收集這些信息。但在研究過程中,我們發現總有另一些平台要需要我們考慮。

新標準問題完全適用於威脅情報(xkcd 927)

公開資源情報計劃(OSINT)在另一方面則更加多樣化。我們的目標是,儘可能多的向互聯網上的個人或組織提供互聯網上可公開訪問的任何數據信息。當然,還有一些有趣的平台(如SpyOnWeb),它會從公開資源網站聚合信息,接著進行組織,方便用戶迅速和方便地搜索網站。

總而言之,大量任務需要我們手動完成,並且很糟糕。起初,我試圖創建一些Python腳本,來自動化的幫我完成一部分任務,但它很快就變得一團糟:腳本越來越多,有python 2中的也有python 3的,一些使用配置文件,還有一些在參數中獲取API密鑰…最終,我決定將這些腳本作為模塊組織成一個名為Harpoon的工具。用了幾個月後,我覺決定將這款工具開源,並希望能幫到大家。

關於此工具的一些說明:

Harpoon僅支持Python 3

許多OSINT工具都嘗試從域或電子郵件收集儘可能多的信息,而不關心其來源。Harpoon並不遵循這一理念。它主要允許你為每個命令實現單個任務。我認為在調查期間,了解信息的來源以及信息的可靠性非常重要。

我重寫了一些庫(如SpyOnWeb),因為我想明確地知道它做了什麼以及是如何做的。所以我重複造輪子了很多次,並且我感到很滿意。

Harpoon被組織成容易實現的子命令,這些命令依賴於內部或外部庫。這些命令使用單個配置文件,當需要API密鑰時需要我們手動完成。

該工具仍有許多不足之處需要改進,因此也歡迎大家提出建議或Pull Requests。

安裝

打包最大的挑戰就是我寫的大多數庫都託管在github而不是Pypi,所以應該在同一時間安裝它們。或者,你可以在克隆存儲庫(pip install -r requirements.txt)後安裝requirements.txt中的所有內容。

如果你想使用截圖模塊(網站截圖),你需要通過npm來安裝它:npm install -g phantomjs

現在我們已經安裝了Harpoon。接著,我們需要安裝Harpoon所需文件並對其進行配置。要安裝所需文件(目前,主要是 MaxMind GeoIP資料庫),只需運行harpoon config -u命令即可。最後,我們需要進行相關的配置,主要是提供你可以/想要使用的平台的API密鑰。我們只需運行harpoon config,它將複製空配置文件並使用vim打開它,以便你可以提供給定的密鑰。如果你沒有相關密鑰,留空即可。你可以使用harpoon config -c命令查看配置模塊列表。在我當前的系統上,顯示結果如下:

Harpoon所需的所有文件(包括配置文件)都安裝在~/.config/harpoon目錄中。

功能

在沒有列出模塊的情況下,我很難對這些功能進行描述,因為我幾乎為我需要自動執行的每項任務都創建了一個新命令。下面,我將通過實例來演示Harpoon的用法:

威脅情報平台:Virus Total, Passive Total, Hybrid Analysis, AlienVault OTX, Shodan, Censys, RobTex, ThreatGrid, GreyNoise, TotalHash, MISP, MalShare:

最重要的是,我已經實現了一些更高級的命令,來從所有這些平台上通過ip和域名收集信息。這些命令會從所有配置的插件中搜索相關信息:

網路信息:ip,dns和asn命令會提供相關IP,域或ASN碼(位置,DNS解析或ASN信息)的基本信息。

社交媒體:快速保存社交媒體賬戶中的所有內容是非常有必要的,網站截圖的功能在這就非常適用。目前僅Twitter和Telegram存在:

短網址服務:為了儘可能多的從API獲取數據,我也通過命令實現了bit.ly和goo.gl的短網址服務:

我還實現了其他一些命令,例如,有一個命令讓github在github repos中搜索,或者通過pgp來搜索密鑰。我特別喜歡的一個命令是,用於檢查不同緩存平台中是否存在網頁的cache命令。

最後,我們還可以通過help命令來查看其它命令的使用方法:

harpoontools

現在我只實現了ipinfo,asninfo和dns:

示例

我們以最近的Palo Alto關於Quasar RAT的報告和akamaicdn[.]ru域為例。

首先,我們來檢查下DNS情況:

沒有條目被配置,讓我們看看是否可以使用robtex,來獲取到其它以前使用的IP:

查看這些IP的所屬地區:

我們可以使用crt.sh檢查該域是否創建了證書:

顯然他們使用的是Cloudfare託管該域名。讓我們通過OTX看看,是否可以獲取到194.85.61.76這個IP地址的其它信息:

創建新命令

Harpoon是一款基於插件的工具,因此只需創建新插件就可以輕鬆添加新的功能。你只需在harpoon/commands中創建一個新文件,並實現一個類繼承Command類。假設我們想實現一個ping命令,我們可以創建下面的ping.py文件:

最後,歡迎大家隨時向我提出意見或建議,也可通過Twitter與我取得聯繫。在這裡我要特別感謝Starcat對博客文章的反饋!

*參考來源:randhome,FB小編 secist 編譯,轉載請註明來自FreeBuf.COM


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

打造一款屬於自己的遠程控制軟體(二)

TAG:FreeBuf |