Recon-NG(框架介紹)
Recon-NG 是由 Python 編寫的一個開源的 Web 偵查(資訊收集)框架,使用它可以自動的收集資訊和網路偵查。
使用說明
下面是一些有用的使用Recon-ng框架的塊。雖然並非涵蓋所有功能,但以下注釋將幫助理解幾個框架更有幫助和複雜的功能。
- 使用者可能建立和共享未合併到框架的主分支中的自定義模組。為了允許使用這些模組而不干擾安裝的包,該框架允許使用放置在使用者的“家”目錄中的自定義模組樹。為了利用此功能,必須在“.recon-ng”目錄下建立一個名為“modules”的目錄,即“〜/ .recon-ng / modules /”。新增到“〜/ .recon-ng / modules /”目錄中的自定義模組將在執行時載入到框架中。模組放置在“〜/ .recon-ng / modules /”目錄下不會影響功能,但是如果複製正確的模組目錄樹並且模組放置在正確的位置類別。
- 模組被組織以促進滲透測試的流程,並且在模組樹記憶體在用於每個方法步驟的單獨的模組分支。偵查,發現,利用和報告是Web應用程式滲透測試方法的步驟1,3,4和5。因此,每個步驟在模組樹中都有自己的分支。重要的是要了解偵察和發現之間的區別。偵察是使用開源獲取目標的資訊,通常被稱為“被動偵察”。發現,通常被稱為“主動偵察”,發生在明確傳送到目標網路以試圖“發現”漏洞的資料包。雖然Recon-ng是一個偵察框架,但是該方法其他步驟的元素將被作為一個方便的地方來利用Python的力量。
- 載入模組後,框架的上下文更改,並且一組新的命令和選項可用。這些命令和選項對模組是唯一的。使用“help”和“show”命令可以熟悉根(全域性)和模組上下文中的框架和可用命令和選項。
- “show”的“info”和“source”子命令(僅在模組上下文中可用)是特別有用的方法來發現框架的功能。“show info”命令將返回有關已載入模組的詳細資訊,“show source”命令將顯示其原始碼。花一些時間探索模組,使用“show info”和“show source”命令來了解資訊如何流過框架。
- “查詢”命令有助於管理和理解儲存在資料庫中的資料。使用者需要知道並理解結構化查詢語言(SQL),以便通過“查詢”命令與資料庫互動。“show schema”命令提供資料庫模式的圖形表示,以幫助構建SQL查詢。“show schema”命令動態建立圖形表示,以便資料庫的模式更改,因此命令的結果也會更改。
- 注意全域性選項,因為它們隨著時間的推移而發生變化,並對框架的效能產生巨大影響。許多關於重新安裝的線上教程已經過時,並且歪曲了現在全球選項的目的。全域性選項是在框架的根(全域性)上下文中可用的選項,並且對框架如何操作具有全域性影響。諸如“VERBOSE”和“PROXY”的全域性選項極大地改變了模組如何呈現反饋和提出Web請求。在深入瞭解模組之前,請先了解並瞭解全域性選項。
- 框架的模組化特性要求頻繁地在模組之間切換和每個模組獨有的設定選項。它可以成為稅務必須反覆設定模組選項作為資訊流通過框架。因此,框架內所有上下文的選項值都儲存在本地,並在每次載入上下文時動態載入。這為會話之間的框架配置提供永續性。
- 工作區可幫助使用者執行多個同步操作,而無需重複配置全域性選項或資料庫。每個工作區的所有資訊都儲存在“〜/ .recon-ng / workspaces /”資料夾下的自己的目錄中。每個工作空間包含其自己的Recon-ng資料庫例項,用於儲存配置選項的配置檔案,來自報告模組的報告以及從其他模組收集的任何戰利品。要建立一個新的工作區,使用“工作區”命令,workspaces add <name>。載入現有的工作空間也很容易,workspaces select <name>。要檢視可用工作區的列表,請參閱“工作區列表”命令或“顯示工作區”別名。要刪除一個工作區,使用“工作區刪除”命令,workspaces delete <name>。也可以通過執行偵察-NG時呼叫“-w <工作空間>”引數來建立或在執行時載入工作空間,./recon-ng -w bhis。
- “search”命令提供搜尋所有載入模組的名稱並向使用者顯示匹配的功能。“搜尋”命令可以非常有幫助地確定下一步做什麼與已經收穫的資訊,或識別需要什麼以獲得所需的資訊。該模組樹的“偵察”分支遵循以下路徑結構:recon/<input table>-<output table>/<module>。這提供了簡單性來確定什麼模組可用於使用者想要接下來採取的動作。要檢視所有接受域輸入模組,搜尋後跟一個破折號輸入表名“域”: search domains-。要檢視所有這些導致收穫主機模組,搜尋輸出表名的“主機”與前一個破折號:search -hosts。
- 整個框架配備有命令完成。無論是探索標準命令還是將引數傳遞給命令,請點選“選項卡”鍵幾次,以顯示該命令或引數的所有可用選項。
- 即使有命令完成,由於模組樹的目錄結構,模組載入可能是麻煩的。為了使模組載入更容易,該框架配備了智慧載入功能。此功能允許通過引用所需模組名稱唯一的關鍵字來載入模組。例如,use namechk因為它是一個包含字串“namechk”唯一的模組將載入“偵察/觸點,觸點/ namechk”模組,而不需要完整路徑。嘗試使用存在於多個模組名稱中的字串智慧載入將導致給定關鍵字的所有可能模組的列表。例如,有許多模組的名稱包含字串“pwned”。因此,該命令use pwned將不會載入模組,但完整的模組名稱為使用者返回的可能的模組列表參考一下。
- 儲存在重建資料庫中的每條資訊都是可以收集新資訊的潛在輸入“種子”。“add”命令允許使用者將初始記錄新增到資料庫,這將成為模組的輸入。模組獲取種子資料,將其轉換為其他資料型別,並將資料作為其他模組的潛在輸入儲存在資料庫中。每個模組都有一個“SOURCE”選項,用於確定種子資料。“SOURCE”選項提供了使用者可以提供給模組作為輸入的靈活性。“SOURCE”選項允許使用者選擇“default”,它是由模組開發人員確定的來自資料庫的種子資料,作為字串的單個條目,檔案的路徑或自定義SQL查詢。框架將檢測源並將其作為模組的輸入。更改模組的“SOURCE”選項不會影響模組如何處理生成的資訊。
- 而“shell”命令和“!” 別名使使用者能夠在框架內在本地機器上執行系統命令,這些命令都不是實現此功能所必需的。框架不理解為框架命令的任何輸入作為系統命令執行。因此,唯一的“shell”或“!” 是必需的,當期望的命令與框架命令共享相同的名稱。
- 所有活動的記錄會話對於許多滲透測試人員是至關重要的,但是內建的作業系統工具(如“tee”和“script”)會破壞所需的功能,如製表完成和輸出格式化。為了解決這個困境,框架配備了將所有活動暫停到檔案以保證安全的能力。“spool”命令使使用者能夠啟動和停止假離線,或檢查當前假離線狀態。為假離線資料的目標檔案被設定為“閥芯啟動”命令的引數,spool start <filename>。使用help spool上的“卷軸”命令的詳細資訊。
- 在偵察過程期間在重要點備份資料有助於防止由於意外的資源行為導致的資料丟失或損壞。“snapshots”命令使使用者能夠備份和恢復資料庫的快照。使用help snapshots的詳細資訊,在“快照”命令。
開啟 Recon-NG
你只需要在終端中輸入下面這條命令就可以開啟並看到它的介面
root@kali:~# recon-ng
手動忽略個性圖示
[76] Recon modules
[8] Reporting modules
[2] Import modules
[2] Exploitation modules
[2] Discovery modules
[recon-ng][default] >
如果你完全不知道應該進行的下一步操作,我想你需要檢視幫助
[recon-ng][default] > help
Commands (type [help|?] <topic>):
---------------------------------
add 將記錄新增到資料庫中
back 退出當前回話
delete 從資料庫中刪除記錄
exit 退出框架
help 顯示幫助
keys 管理框架API鍵
load 載入指定模組
pdb 開啟 Python 的 Debug 回話
query 查詢資料庫
record Records commands to a resource file
reload 重新載入所有模組
resource Executes commands from a resource file
search 搜尋可用的模組
set 設定模組的選擇
shell 執行shell命令
show 顯示各種框架專案
snapshots 管理工作區快照
spool Spools output to a file
unset 附件模組選擇
use 載入指定的模組
workspaces 管理工作區
接下來你應該需要了解你可以使用的模組有哪些
[recon-ng][default] > show modules
Discovery
---------
省略2個
Exploitation
------------
省略2個
Import
------
省略2個
Recon
-----
省略76個
Reporting
---------
省略2個
對了檢視一下 show 命令的選項,可能會更利於你掌握 Recon-NG
[recon-ng][default] > show
Shows various framework items
Usage: show [banner|companies|contacts|credentials|dashboard|domains|hosts|keys|leaks|locations|modules|netblocks|options|ports|profiles|pushpins|repositories|schema|vulnerabilities|workspaces]
那我們可以使用一個 bing_api
[recon-ng][default] > use recon/domains-hosts/bing_domain_api
[recon-ng][default][bing_domain_api] > show options
Name Current Value Required Description
------ ------------- -------- -----------
LIMIT 0 yes limit total number of api requests (0 = unlimited)
SOURCE default yes source of input (see 'show info' for details)
[recon-ng][default][bing_domain_api] > set SOURCE bing.com
SOURCE => bing.com
[recon-ng][default][bing_domain_api] > run
--------
BING.COM
--------
[!] FrameworkException: API key 'bing_api' not found. Add API keys with the 'keys add' command.
最後一排錯誤提示,很讓人出乎意料,可是在此之前你並未對該網站進行 api 的新增,這也是情理之中的,關於 api ,使用 keys 命令來進行操作。至於新增的內容,請檢視官方指南的 Acquiring API Keys(獲取 api 金鑰)
[recon-ng][default][bing_domain_api] > keys list
+---------------------------+
| Name | Value |
+---------------------------+
| bing_api | |
| builtwith_api | |
| facebook_api | |
| facebook_password | |
| facebook_secret | |
| facebook_username | |
| flickr_api | |
| fullcontact_api | |
| google_api | |
| google_cse | |
| instagram_api | |
| instagram_secret | |
| ipinfodb_api | |
| jigsaw_api | |
| jigsaw_password | |
| jigsaw_username | |
| linkedin_api | |
| linkedin_secret | |
| pwnedlist_api | |
| pwnedlist_iv | |
| pwnedlist_secret | |
| shodan_api | |
| twitter_api | |
| twitter_secret | |
+---------------------------+
[recon-ng][default][bing_domain_api] > keys add bing_api <你的api金鑰內容>
[*] Key 'bing_api' added.
更多精彩操作,靜待發覺。
相關文章
- TPHP框架介紹PHP框架
- .NET框架介紹框架
- KanaPHP框架介紹PHP框架
- Python 框架介紹Python框架
- JAVA SSH 框架介紹Java框架
- 搜尋引擎框架介紹框架
- spring框架的介紹Spring框架
- Gin框架介紹及使用框架
- Retrofit網路框架介紹框架
- java常用的框架介紹Java框架
- JAVA SSH 框架介紹(轉)Java框架
- Scrapy框架的使用之Scrapy框架介紹框架
- 瀏覽器fuzz框架介紹瀏覽器框架
- Scrapy 框架介紹之 Puppeteer 渲染框架
- MyBatis框架介紹及其實操MyBatis框架
- Android模組化框架介紹Android框架
- Net6 EFcore框架介紹框架
- spring框架結構介紹Spring框架
- EWeb4J框架介紹Web框架
- 【轉載】spring框架介紹Spring框架
- Prism:框架介紹與安裝框架
- Spring框架之IOC介紹Spring框架
- T框架介紹(自動化測試框架)框架
- MyBatis框架介紹及實戰操作MyBatis框架
- lms微服務框架主機介紹微服務框架
- Java常用的5大框架介紹!Java框架
- Android系統介紹與框架Android框架
- 手寫開源ORM框架介紹ORM框架
- RPC通訊框架——RCF介紹RPC框架
- 自動化測試框架介紹框架
- .NET開發框架(一)-框架介紹與視訊演示框架
- Flask框架(一):介紹與環境搭建Flask框架
- 小程式web開發框架-weweb介紹Web框架
- Android Transition框架介紹及使用教程Android框架
- Android系統Audio框架介紹Android框架
- 介紹一個QTP基礎框架 - SIFLQT框架
- Java 微服務框架 Redkale 入門介紹Java微服務框架
- 四.unittest介面自動化框架介紹框架