巡風代碼架構簡介以及Flask的項目文件結構簡介


一、巡風:

  巡風是一款什么東西,想必安全同行都不陌生吧。用它作為內網漏洞掃描管理架構是一種很好的選擇,掃描快,開源,還可自己編寫符合規則的POC直接放入相應目錄來擴展。今天下午趁着有點時間捋了一下巡風的代碼框架,順便學習下Flask的項目文件結構。在這里,還是鳴謝一下同程應急響應中心(YSRC),開源這款產品。

 

二、巡風的基本架構:

  巡風是一款使用Python Flask框架編寫的網絡安全漏掃工具,BS架構。數據庫使用MongoDB,掃描器使用號稱五分鍾掃遍互聯網的masscan(當然真是情況沒有那么快)。漏掃使用編寫好的POC,POC全部開源在源碼目錄下的/vulscan/vuldb下面。其他輔助功能還有啟動一個DNS服務器(UDP 53端口),和一個web服務器,輔助檢測類似於Jenkins反序列化遠程命令執行(cve-2017-1000353)這種無回顯的漏洞。掃描任務的建立是根據用戶輸入添加到MongoDB數據庫中。另一個進程漏洞的一個腳本,會周期性檢查數據庫,取出任務隊列,執行任務。

 

三、巡風的漏掃POC原理:

1、有回顯的直接根據回顯判斷。

2、無回顯的,會生成一條訪問上文提到的web服務器的增加一個隨機字符串的payload。然后POC掃描腳本去請求這個服務器中有沒有這個隨機字符串,有就判定有漏洞,反之則沒有漏洞。

 

四、巡風的文間結構:

最外層:xunfeng(folder)

  1、folder:

  1.1 -> aider =>aider.py 該文件中會以socket起一個webserver 堅聽在8088端口(使用TCP協議)以及一個DNS監聽UDP 53端口的socket。

  1.2 -> db =>大量json和bson文件,沒搞清楚具體用途。

  1.3 -> dockerconf => mongoauth 用來創建mongodb的用戶,配置口令。start.sh是一個shell文件用來起docker話的啟動服務。

  1.4 -> docs -> install => 大量markdown文件 用來講解各種OS下以及使用Docker如何安裝巡風。

  1.5 -> install:

    1.5.1 ->files => xunfeng 配置日志文件、pid文件等路徑,並啟動巡風的shell文件/xunfeng.conf巡風的配置文件。

    1.5.2 => config.sh 配置shell腳本 install.sh 安裝shell腳本 uninstall.sh 卸載的shell腳本。

  1.6 -> masscan linux和windows環境下的masscan程序執行文件。

  1.7 -> nascan:

    1.7.1 -> lib => 大量的自定義lib庫python文件,包含超類路由的cidr.py文件,icmp.py ping功能文件,mongo.py和mongodb數據了交互的文件,log.py日志功能文件以及start.py和scan.py等等。

    1.7.2 -> plugin => masscan.py 調用masscan的文件。

    1.7.3 => NAscan.py 啟動scan部分功能的py文件。

  1.8 -> views:

    1.8.1-> lib => AntiCSRF.py 防止csrf攻擊的自定義lib庫,以及其他自定義lib庫conn.py 連接功能模塊,createexcel創建excel結果表的模塊,登錄模塊login.py,搜索查詢模塊querylogic。

    1.8.2 -> static 靜態文件庫 :包含css文件庫、js文件庫、圖片文件庫等等。

    1.8.3 -> templates 模板文件庫:html文件模板。

    1.8.4 -> __init__.py 創建app和數據庫對象的文件。

    1.8.5 -> Views.py 路由函數文件。

  1.9 -> vulscan:

    1.9.1 ->vuldb POC文件庫。

    1.9.2 => vulscan.py 漏掃進程主模塊文件。

  2、files:

    2.1 => Config.py 配置文件:web的用戶名、口令以及數據庫的用戶名、口令配置。明文硬編碼的。

    2.2 => Dockerfile Docker文件 用來創建啟動運行Docker。

    2.3 => LICENSE。

    2.4 => README.md。

    2.5 => requirements.txt Python的以來的庫都寫在該文本文件內。

    2.6 => Run.py 文件 app啟動文件、可修改監聽的IP和端口。

    2.7 => Run 啟動文件(linux下.sh文件;win下.bat文件)。

五、總結Flask項目文件結構:

    1、總目錄:WWW(使用Project Name 做folder的名字也可以)

      1.1 配置文件config.py。

      1.2 啟動文件 manage.py 或者run.py。

      1.3 License文件(文本文件)。

      1.4 readme文件(markdown格式)。

      1.5 requirements.txt(依賴庫說明文件)。

      1.6 lib-floder 自定義插件或其他進程庫文件夾。

      1.7 views 主程序文件夾:

        1.7.1 lib 主程序依賴的庫文件package。

        1.7.2 static 靜態文件庫。

        1.7.3 templates 模板文件庫。

        1.7.4 __init__.py app對象創建以及數據庫初始化的python文件。

        1.7.5 views.py 路由函數定義文件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM