xunfeng 巡風 原始碼解讀之vulscan

2021-10-01 05:37:16 字數 748 閱讀 7685

以前搭建過好幾次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...