黑客你好,請使用Python編寫一個滲透測試探測器
本篇將會涉及:
- 資源探測
- 一個有用的字典資源
- 第一個暴力探測器
資源探測
在滲透測試中,資源探測屬於一個非常必要的階段,其主要功能包括資源映射和收集信息等,通常來講會有三種主要類型:
- 字典攻擊
- 暴力破解
- 模糊測試
字典攻擊是指黑客在工作過程中,通過預先設置好的字典文件來進行密碼或者密鑰的破解工作,這個過程通常不是漫無目的的,而是需要針對性的對於字典文件里的一切可能組合進行嘗試。
暴力破解也即所謂窮舉法,通過預先設定的好的組合方式,依次進行列舉,將所有可能的密碼挨個嘗試,直到發現可用的口令位置。
模糊測試與前兩項有較大差別,並非為了密碼或口令的破解工作,通常情況下是通過某些規則之外的輸入來迫使目標程序發生異常來找到目標系統漏洞的方法。
資源探測的作用
通過資源探測,我們可以在目標系統中發現文件、目錄、活動、服務還有相關的參數,為下一步的行動提供信息參考。
一個開源的模糊測試資料庫
https://github.com/fuzzdb-project/fuzzdb 是一個開源的漏洞注入和資源發現的原語字典。其提供了攻擊、資源發現和響應分析的資源。
第一個暴力探測器
接下來,我們需要把上面介紹的資料庫現在下來以便後續使用,你可以自行選擇下載方式:
這個資料庫將會在我們之後的工作中擔任「字典」的工作,來輔助我們完成對網站的探測。現在我們需要新建一個 .py 文件,在這個文件中編寫探測器。
首先,引入相關的模塊:
- requests用於請求目標站點;
- threading用於啟用多線程;
- sys用於解析命令行參數;
- getopt用於處理命令行參數;
然後,定義一個程序的橫幅:
這個橫幅用於在程序啟動的時候顯示出來,除了讓程序個性一點之外,也沒啥用。
再定義一個函數,用來顯示程序的用法:
我們的程序因為是在命令行下運行的,所以需要設置一些參數,在這裡,我們用:
- -w來指定網址
- -t 來指定線程數
- -f來指定字典文件
這三個參數缺一不可。
這兩個函數創建好後,運行程序便會出現如下界面:
看上去是不是有那麼點意思。
接著,我們創建一個繼承於Thread的類request_performer(),用於創建線程並向目標站點發起請求以及獲取響應:
在request_performer()類的run()方法裡面,我們利用requests對URL進行請求並將響應的狀態碼列印出來。而這,就是我們這個探測器的最主要功能了。
再創建一個啟動request_performer()類的函數launcher_thread(),用於遍歷字典文件中的關鍵字組合成URL並生成新的線程。
繼續創建一個函數start(),用於接收命令行中的參數將其傳遞給launcher_thread()函數:
最後,當然是在主程序中運行了:
這個程序到底有什麼用呢?
在這裡,我們不得不再提一下上面提及過的FUZZDB資料庫。fuzzdb是一個用於模糊測試的資料庫,類似於一個龐大的字典。而這些字典的內容呢,都是安全大神們維護的、在實踐中發現很有可能會是攻擊點的目錄或路徑。
我們可以打開資料庫中的一個txt文件看看:
這是一個針對wordpress博客系統插件的一個字典,這裡面都是插件的路徑和目錄。
測試暴力探測器
還記得在滲透測試環境搭建那篇文章介紹的虛擬機環境嗎?
裡面有一個充滿漏洞的Web應用http://www.scruffybank.com/,我們可以使用我們剛剛編寫好的暴力探測器對這個網站進行一下探測。
字典文件我們先採用一個簡單的字典:
我們在命令行運行命令:
得到結果:
common.txt字典中有三個是成功的響應,我們打開其中一個http://www.scruffybank.com/robots.txt看看:
包含了三個禁止搜索引擎爬取的鏈接,看字面意思,其中一個還是後台地址admin,但是在結果頁我們知道/admin是404錯誤,但是有一個/Admin,我們打開看看:
彈出了認證登錄框,但是我們沒有用戶名和密碼,目前來說只能作罷。
我們再使用FUZZDB資料庫里的字典測試一下。選擇fuzzdb-master/discovery/predictable-filepaths/php目錄下的PHP.fuzz.txt:
同樣在終端命令行運行命令:
得到結果:
雖然有很多404,但是我們還是發現了一些成功的響應:
比如info.php,打開原來是PHP的info界面:login.php為登錄頁面:
phpmyadmin是mysql資料庫的web管理入口:
在數據探測收集階段,我們通過我們自己編寫的暴力探測器,獲得了這些頁面的信息,對分析伺服器和web應用的漏洞並進行針對性的滲透有很大的幫助。
作者:州的先生
來源:http://zmister.com/archives/180.html
你想更深入了解學習Python知識體系,你可以看一下我們花費了一個多月整理了上百小時的幾百個知識點體系內容:
【超全整理】《Python自動化全能開發從入門到精通》筆記全放送
本文轉自:馬哥linux運維(微信號:magedu-Linux)
為了方便大家學習,我建立了一個馬哥Python交流群,目前群內已經有2000多個小夥伴,學習寂寞的小夥伴不妨一起來玩~群號:515237230
推薦閱讀: