以前搭建過好幾次xunfeng,也看過幾次他的原始碼,最近團隊準備做巡風的二次開發,就要再好好看下他的原始碼了,我們知道巡風主要有兩個功能,資產發現和漏洞掃瞄,我主要負責漏洞掃瞄這塊,就先簡單記錄下這塊的大致流程
看原始碼,第一步看他的啟動程式,可以看run.sh,巡風的啟動程式主要就五塊
mongodb啟動:這裡mongodb可以直接用二進位制檔案啟動,匯入匯出,預設啟動在本地的65521埠
web.py啟動:flask啟動網頁
nascan: 資產掃瞄
vulscan:漏洞掃瞄
aider:輔助模組,還不了解
就上個我看原始碼的時候畫的圖吧
總的來說,其實巡風原始碼還是很簡單的,過程看上圖就可以,就講下我自己對巡風的感覺
1: 巡風的資產掃瞄和漏洞掃瞄都是基於資料庫中特定欄位的改變,會有心跳執行緒,就是上面的monitor(),不斷的去檢查資料庫中欄位。使用者在頁面上的操作,都是先改變資料庫內容而已。所以比如開啟某個漏掃任務,可能沒法馬上開始
2: 從資料庫欄位中可以看到,原來團隊應該打算跟定時週期掃瞄資產一樣,做乙個定時週期掃瞄漏洞的功能,在頁面上沒有這個功能,接下來我這邊會加一下這個功能
想想好像原始碼也沒啥好說的。。還是比較簡單的
巡風xunfeng原始碼解讀
一 原始碼位址 二 網路解讀參考 vulscan 模組 多個模組解讀 aider.py 輔助驗證的指令碼。這個指令碼會監聽8088埠 以及dns監聽53埠。可以將所有請求的dns請求記錄下來輔助驗證某處是否存在漏洞。nascan.py 資產識別 資訊收集 的模組。view.py 展示模組。flask...
Qwt原始碼解讀之QwtInterval 類
qwtinterval 類表徵乙個區間,這個區間由兩個double型別的上限值max和下限值min所表示。它可以表示 min,max min,max min,max 和 min,max 等4種情況。分析 cpp view plain copy class qwt export qwtinterval...
metaq原始碼解讀之FetchManager
fetchmanager 請求管理器介面。既然是管理器,就需要知道管理的物件是什麼?fetchrequest 管理的是一次次的請求。既然是管理器,就需要給被管理者提供容所?fetchrequestqueue 請求delay queue。既然是管理器,就需要有管理實施者?fetchrequestrun...