周星佑 王會


【摘要】使用Python中的requests,socket等庫,通過探測和分析HTTP(s)的返回包,實現對目標Web應用程序的IP,子域名還有敏感信息的探測,分析目標Web是否存在漏洞和安全隱患進而設計出一款較為全面的漏洞掃描器。
【關鍵詞】Python 漏洞掃描
1背景介紹
在產品測試人員的平時工作中,經驗需要用到掃描器對Wbe應用程序進行深度掃描。根據網絡漏洞的常見特征,對Web應用程序執行全面的安全檢查,以便在網站上線前發現并修復漏洞。
而安全人員在滲透Web應用程序中,第一步要做的便是信息收集。信息收集的目的是最大限度地收集與目標相關的信息,并找到所有可能的攻擊人口。而掃描器恰恰能提高滲透測試人員的效率。掃描器的開發往往是內部專業人員使用,所以在性能方面無需太大的追求,而Python性能雖然不及c,Java,C++等語言,但其快速上手和強大的第三方庫,大大受到了安全從業者的喜愛。
2掃描器的結構與流程
掃描器的結構如下:
掃描器能對單個URL進行深度的檢測;其中主要功能的為:(1)IP/端口檢測,安全從業人員將目標URL輸入掃描器中,掃描器將自動檢測其IP和開放端口;(2)端口爆破,當檢測到有敏感的端口對外開放時掃描器將對其進行爆破。比如21端口的ftp,3389端口的telnet;(3)子域名枚舉,掃描器會對按照給定的字典,對目標url進行子域名爆破。根據響應包判斷是否存在;(4)敏感信息/敏感目錄挖掘,掃描器會按照給定字典,在目標URL加對應目錄和敏感配置文件進行訪問,根據其響應包進行判斷是否存在
3基于python第三模塊的技術實現
當對URL進行IP檢測時,我們只需用到socket庫。
ipaddr=socket. getbyhostname( url)便可以得到對應的IP地址。
當python提取到對應的IP地址后,接著便進行端口掃描。
nmap是安全從業人員最喜歡的端口掃描工具。端口掃描在滲透測試過程中扮演著極其重要的角色,假設對方服務器開啟了危險端口而不自知的話,安全從業人員可以應用相應的端口漏洞直接提取服務器權限。
Python有和nmap對應的第三方庫,Libnmap和nmap。
以nmap為例,port_scan= nmap. PortScanner() result=port_scan.scan(hots,port)
當傳人IP地址和端口范圍,再加上Nmap需要的參數便可對目標IP進行端口掃描
端口爆破,當端口掃描到較為危險的函數的開放時,接著便要通過python對這些端口進行應用。如21端口,3389端口處于open狀態,測試人員可以嘗試對該服務進行賬號密碼的爆破。使用到的Python第三方庫為:ftplib,teInetlib
以ftp爆破為例核心代碼為:
import ftplib
f= ftplib. FTP() {.connect( ServerIP, PORT,timeout=10)
f.login( username, password)
print“Login sucess....”
#一個簡單的對ftp進行爆破的方式
接著寫一個函數向其傳人字典的username和password。
user_handler=open(userlist) pass_handler=open(passlist)#打開字典文件
username=user_handler.readlines()
password= pass_handler.readlines()#讀取字典
如果爆破成功屏幕會顯示Login sucess
子域名枚舉,我們可以使用谷歌黑客的方法,以百度為例,百度搜索:site:baidu.com,接著我們便可以看到搜索引擎出現大量的百度的子域名。或者我們可以借助Python第三方庫requests對目標url加子域名對回應包進行判斷。還可以通過向DNS服務器發送DNS Query,根據返回包的信息來判斷是否存在其他子域名,用到的第三方庫有dns.resolver和dns.rdatatype
敏感信息/目錄,挖掘敏感信息和目錄在滲透過程中扮演著重要的角色,由于開發人員的疏忽,部分藏有網站配置信息,管理員后臺,上傳文件地方,內部使用網頁等沒有及時設置權限或者隱藏,導致網站處于非常危險的地步。我們可以通過判斷requests的返回包的status_code來判斷是否存在。來百度為例,正常訪問的status_code是200
安全從業者可以打開一個字典文件(如list. txt)構造http://baidu.com/pathl,然后進行訪問,通過response的狀態碼進行判斷該目錄是否存在。接著將存在的目錄輸出。
If response.status_code==200: print url+“200”
當掃描器所有的流程都完成后,便是安全從業人員對掃描后的結果進行篩選
提取有益的信息更加高效的對目標進行滲透
4結束語
隨著2017年信息安全法的頒布,web安全逐漸走進人們的視野。各大網頁開發人員,管理人員開始重視用戶的隱私。而導致發生信息泄露的往往是開發人員和管理員的疏忽。讓黑客有了可取之機。而一個全面搜集信息的掃描器可以大大規避這樣的風險。
參考文獻:
[1]陳春玲,張凡,余瀚.Web應用程序漏洞檢測系統設計[J].計算機技術與發展,2017.
[2]高瑞,周彩蘭,朱榮,網絡應用程序漏洞挖掘技術研究[J].現代電子技術,2018.
[3]王大偉,基于Python的Web API自動化測試方法研究[J].電子科學技術,2015.