本文目錄一覽:
- 1、如何選擇一款web漏洞掃描器
- 2、如何選擇掃描工具並進行安全漏洞掃描
- 3、網站漏洞掃描工具推薦,其中兩款開源免費軟體你知道嗎?
- 4、打造自己的滲透測試框架—溯光
- 5、有誰可以介紹java源代碼漏洞掃描工具不?小弟急用。、、、、
- 6、求一個CGI漏洞掃描或者FTP弱口令掃描的Java程序
如何選擇一款web漏洞掃描器
隨著網站業務所承載內容的日益增多且重要性日益增強,網站本身的價值也越來越大,隨之由網站漏洞帶來的安全性問題也愈發嚴峻。新開通網站、新增專欄的准入質量評估,網站系統日常運行狀況的檢查預防和風險掌控,這些已成為各行業每年安全大檢查中的關鍵要素。作為具體落實定期檢查工作的安全人員,也急需選擇一款優秀的網站掃描產品進行高效徹底的Web脆弱性評估檢查,而如何選擇一款真正實用的產品成為一個比較糾結的難題。
常見Web掃描方案的優劣勢
目前常見的支持Web掃描解決方案的產品有很多,大家比較熟悉的有集成Web掃描模塊的多合一系統掃描器,網上可免費下載的開源掃描器軟體以及近幾年剛嶄露頭角的獨立Web掃描器產品等,都可以進行一定程度的Web安全掃描和漏洞發現。那麼面對如此琳琅滿目的選擇時,大家如何細緻區分辨識其差異,就需嚴格立足於實際需要,最終做出最佳的判斷。
多合一的系統掃描器,通常會集主機掃描、配置核查、Web掃描及弱口令掃描於一身,是一款強大全面的多功能產品。但多合一的高度封裝導致其在進行安全掃描時,除不能分配全部計算資源在Web掃描方面,掃描引擎自身還要兼顧到全方位的權衡與調優。反觀目標Web應用呈現的種類多樣性、規模龐大性和運行特殊性,在面對動輒上萬、十萬甚至百萬級別網頁數量的網站時,這種多合一產品就表現得差強人意,使用起來有種牛拉火車的感覺;同時,高效執行掃描評估就必須具備高並發的網頁鏈接爬蟲識別和Web插件交互邏輯判斷能力,這一現實的衝突導致多合一掃描器在Web掃描及性能體驗方面效果平平,優勢不突出。
網上開源的Web掃描器軟體,儘管完全免費並可以發現一些基本的漏洞信息,但其在第一時間發現新爆Web漏洞和漏洞趨勢跟蹤分析、修補方面,完全不具備後期支撐能力。而且在人性化設計及低學習門檻方面也存在太多先天的不足,其性能與穩定性更是與商業軟體相差甚遠。
面對綜上同類產品,困惑於Web掃描場景需求種種局限的我們,很欣喜地看到了近幾年聲名鵲起的Web掃描器產品。它作為一款自動化評估類工具,依據制定的策略對Web應用系統進行URL深度發現並全面掃描,尋找出Web應用真實存在的安全漏洞,如跨站點腳本、SQL注入,命令執行、目錄遍歷和不安全的伺服器配置。Web掃描器產品可以通過主動生成統計分析報告來幫助我們正確了解Web應用漏洞的詳細分布、數量和風險優先順序,並對發現的安全漏洞提出相應有力的改進意見供後續修補參考,是幫助我們高效徹底地進行Web脆弱性評估檢查的堅實利器。
Web掃描器的三個誤區
針對現有市面上諸多品牌的Web掃描器,大家在評價它們孰優孰劣時時常過於片面極端,主要表現為三個認識誤區。
誤區1:多就是好!
認為漏洞庫條目多,檢查出來的漏洞多就是好。Web掃描器面對龐大繁多、千差萬別的應用系統,為提升檢測性能,多採用高效率的Web通用插件,以一掃多,其不再局限於某個專門應用系統,深層次聚合歸併,儘可能多地發現多種應用系統的同類漏洞。同時,對於掃描出來的非誤報漏洞,若同屬某一頁面不同參數所致的相同漏洞,歸納整理,讓最終呈現的漏洞報表簡約而不簡單,避免數量冗餘、雜亂無章。故若以毫無插件歸併能力,僅靠大量專門Web系統插件、羅列各類漏洞列表數量多來博取讚許的Web掃描器,其本質存在太多的不專業性。
誤區2:快就是好!
認為掃描速度快耗時短的就是好。網站規模日趨複雜,日常檢查時我們期待Web掃描器能有更高效率地完成掃描任務,這點無可厚非,但檢查的本質是要最大限度地提前發現足夠多的漏洞,並第一時間制定後續相應的修補計劃。故在面對同一目標站點時,Web掃描器若能在單位時間內檢測出來的有效存在漏洞數越多,這個快才是真的好。
誤區3:小就是好!
認為掃描過程中對目標業務影響小就是好!這句話本身也沒有問題,只要Web掃描器在執行掃描過程中,對目標系統負載響應和網路鏈路帶寬佔用,影響足夠小,也就是我們常說的「無損掃描」,它就具備了一款優秀Web掃描器應有的先決條件。但是,這必須是在能最大限度發現Web漏洞的前提下才能考慮的關鍵因素,脫離這個產品本質,就本末倒置了。
五個基本評優標準
那麼,評優一款Web掃描器,我們該從何處著手?具體的判斷標準有哪些呢?
全——識別種類繁多的Web應用,集成最全的Web通用插件,通過全面識別網站結構和內容,逐一判斷每一種漏洞可能性,換句話說,漏洞掃描的檢測率一定要高,漏報率務必低,最終才能輸出全面詳盡的掃描報告。這就要求其在Web應用識別方面,支持各類Web語言類型(php、asp、.net、html)、應用系統類型(門戶網站、電子政務、論壇、博客、網上銀行)、應用程序類型(IIS、Apache、Tomcat)、第三方組件類型(Struts2、WebLogic、WordPress)等;插件集成方面,支持國際標準漏洞分類OWASP TOP 10和WASC插件分類模板,允許自定義掃描插件模板,第一時間插件更新速度等。
准——較高的漏洞準確性是Web掃描器權威的象徵,可視化分析可助用戶準確定位漏洞、分析漏洞。而誤報是掃描類產品不能迴避的話題。Web掃描器通過通用插件與目標站點任一URL頁面進行邏輯交互,通過可視化的漏洞跟蹤技術,精準判斷和定位漏洞,並提供易讀易懂的詳細整改分析報告。除此之外,一款好的Web掃描器還要更具人性化,在漏洞發現後,允許掃描者進行手工、自動的漏洞批量驗證,進而雙重保障較高的準確性結果。
快——快速的掃描速度,才能在面對越來越大的網站規模,越發頻繁的網站檢查時遊刃有餘,進度保障。一款快速的Web掃描器除了有強勁馬力的掃描引擎,高達百萬/天的掃描速度,還要具備彈性靈活的集群掃描能力,任意增添掃描節點,輕鬆應對可能苛刻的掃描周期時間要求。
穩——穩定可靠的運行過程,對目標環境近乎零影響的Web掃描器,才能在諸行業大面積投入使用,特別是一些對業務影響要求苛刻的行業會更受青睞,畢竟沒有人能夠接受一款評估類產品,會對目標造成額外的損傷。市面上現在已有一些Web掃描器產品,其通過周期探尋目標系統,網路鏈路,自身性能負載等機制,依據目標環境的負載動態變化而自動調節掃描參數,從而保障掃描過程的足夠穩定和幾乎零影響。此外,隨著網站規模,檢查範圍的不斷擴大,保證持續穩定的掃描執行和統計評估,盡量避免掃描進度的半途而廢,也提出了較高的可靠性運行要求。
易——人性化的界面配置,低成本的報表學習和強指導性修補建議。尤其是漏洞分布詳情和場景重現方面,市面上大多數Web掃描器的報表都需要專業安全人員的二次解讀後,普通的安全運維檢查人員才能看懂,才知道長達百頁報表給出的重要建議和下一步的具體修補措施,這無疑給使用者造成了較高的技術門檻,那麼如何解決此易讀、易用問題,就成為評定其優劣與否的一個重要指標。
總之,一款優秀的Web掃描器產品,它需要嚴格恪守五字核心方針,全、准、快、穩、易,做到全方位均衡,這樣才能做到基本優秀。同時,隨著網站檢查訴求的日益多元化,它若能附帶一些差異化特性,滿足大家不同場景的網站安全運維掃描要求,如網站基本信息搜集,漏洞全過程時間軸跟蹤,逐步可視化的漏洞驗證和場景重現,自動修補直通車等,定會大大增加該款掃描器的評優力度。
如何選擇掃描工具並進行安全漏洞掃描
建議設置開啟自動修復漏洞功能,開啟後,騰訊電腦管家可以在發現高危漏洞(僅包括高危漏洞,不包括其它漏洞)時,第一時間自動進行修復,最大程度保證用戶電腦安全。開啟方式如下:進入騰訊電腦管家「修復漏洞」模塊—「設置」,點擊開啟自動修復漏洞即可。
網站漏洞掃描工具推薦,其中兩款開源免費軟體你知道嗎?
在如今互聯網的時代,互聯網的安危真真切切的影響到了我們的生活,在網路上,一直隱藏著許許多多的黑客,破壞網站的安防,挖漏洞來來找下一個金主,而網站則是不斷的使用著網站漏洞掃描工具檢查網站之中可能存在的隱患,防止有心人得逞,或者是造成網站的癱瘓,下面我們來介紹一下比較出名的網站漏洞掃描工具,在個人生活之中也可以使用的到。
一、Wireshark
Wireshark是一個網路包封包的分析軟體,可以截獲網路之中的網路封包,查詢其中的資料,不同人的使用範圍也是不同的,有人拿它來進行網路的檢測,有人來進行網路協議的學習,別有用心的人拿它來觸碰網路中的敏感信息,它本身是開源免費的,所以使用人數眾多,貓狗蛇鼠一窩的情況也會發生。這款軟體主要的作用還是對網路的一個截獲分析和了解,並不會對網路之中的異常行為警醒,但是能清晰明了的看出流量的變化,和包內的內容,全靠維護者自己保護電腦的安全。
二、Acunetix
這是全世界範圍內領先的網站漏洞掃描工具,也是一種網路安全設備,可以針對來自web黑客的攻擊,儘管是穿過了防火牆,偽裝的再好,也會被他分析檢測到,在它1997年誕生的時候,就是針對網路安全技術的一種革新,網路應用安全掃描技術就是Acunetix所研發出來了。他的工作主要是通過檢查SQL注入、跨站點腳本和其他的漏洞來審核Web程序的安全性,會掃描你瀏覽的所有Web頁面,找到問題,並提供強大的解決方案。他本身還是一種高級的爬蟲,只要是文件,它幾乎都可以找到。
三、Nikto
這是一款開源的Web伺服器掃描工具,對網頁進行檢測,其中有著3300種潛在威脅檢測文件,包含625種伺服器的版本號,230中的伺服器問題的檢測,不過這個軟體的作者更新速度不穩定,對於新的網站的威脅可能檢測不到。不過本身的功能還是很強大的,針對危險的檢測和反偵測行為,躲避危險,並且隱藏自身的參數,將自己與危險隔離開來,並且檢測訪問的網站的問題。
打造自己的滲透測試框架—溯光
TrackRay簡介
溯光,英文名「TrackRay」,意為逆光而行,追溯光源。同時致敬安全圈前輩開發的「溯雪」,「流光」。
溯光是一個開源的插件化滲透測試框架,框架自身實現了漏洞掃描功能,集成了知名安全工具:Metasploit、Nmap、Sqlmap、AWVS等。
溯光使用 Java 編寫,SpringBoot 作為基礎框架,JPA + HSQLDB嵌入式資料庫做持久化,Maven 管理依賴,Jython 實現 Python 插件調用,quartz 做任務調度,freemarker + thymeleaf 做視圖層,Websocket 實現命令行式插件交互。
框架可擴展性高,支持 Java、Python、JSON 等方式編寫插件,有「漏洞掃描插件」、「爬蟲插件」、「MVC插件」、「內部插件」、「無交互插件」和「可交互插件」 等插件類型。
功能展示
主頁
登錄
任務創建
任務列表
任務詳情
無交互介面插件調用
MVC插件示例
互動式插件控制台
MSF 控制台
依賴環境
JDK 1.8
Python 2.7
Maven
Git
Metasploit
Nmap(建議安裝)
SQLMAP(建議安裝)
AWVS
**加粗為必須環境,沒有安裝程序則無法正常編譯運行
不論是 Windows 還是 linux 一定需要先安裝 JDK1.8 和 Maven。安裝過程這裡不做演示。保證 JDK 和 Maven 都在系統環境變數,能執行java -version 和 mvn –version即可。
安裝過程
第一步
手動啟動 AWVS 服務
登錄後台,生成一個API密匙。
複製密匙和 AWVS 的地址。
找到web/src/main/resources/application.properties配置文件。
修改如下部分
第二步
找到你 python 的第三方庫目錄。
Windows 的一般在 python 安裝目錄下的/Lib/site-packages
Linux 下可以通過輸出 sys.path 來找第三方包路徑
我的是 D:/Python2/Lib/site-packages
同樣找到web/src/main/resources/application.properties配置文件。
修改python.package.path參數
第三步
安裝 Maven 後找到倉庫位置。
如果沒有在 settings.xml 里配置指定倉庫目錄,默認會在當前用戶目錄中生成一個 .m2的目錄
找到倉庫目錄後修改 application.properties 的 maven.repository.path參數
第四步
這個是 DNSLOG 回顯檢測漏洞時需要的。
去 ceye.io 註冊一個賬號,拿到給你分配的域名和 TOKEN。
修改配置文件
第五步
啟動 msf 和 sqlmapapi。
如果你是 kali 操作系統,可以直接運行startdep.sh。
如果是其他系統,則要找到 metasploit 和 sqlmap 的目錄分別執行
啟動成功後修改配置文件
第六步
編譯打包程序
等待依賴下載完成和編譯完成,如果以上操作都沒有出現問題則會提示 BUILD SUCCESS
編譯成功後會在當前目錄打包一個trackray.jar就是溯光的主程序。
然後直接執行startup.bat或startup.sh溯光就會啟動服務。
沒有拋出異常或ERROR日誌,訪問 8080 埠正常。
服務啟動正常後,登錄 iZone 社區賬號。
**開發插件建議使用 Intellij IDEA IDE,需要安裝 lombok 插件。
目錄結構
插件
AbstractPlugin
這是互動式插件和非互動式插件的父類。
BASE常量
其中的靜態常量 BASE 是 /resources/include/ 的所在目錄。
如果你的插件需要額外的靜態資源,那麼你可以在 /resources/include 目錄里創建一個和插件 KEY 相同的文件夾,便於識別,如果沒有在 @Plugin 註解中設置 value 則默認的插件 KEY 就是當前類名首字母小寫。
如 Typecho001 = typecho001
check(Map param)
這是用於檢驗是否合規的方法,需要被強制重寫,當返回 true 時才會調用 start() 方法
param 參數是從前台傳過來的參數鍵值對。
常被用於檢驗參數格式是否正確或漏洞是否存在。
after()
在 start() 方法之前調用
before()
在 start() 方法之後調用
start()
這是一個抽象方法,所有繼承了該類的子類都需要重寫這個方法。
在 check 方法 通過後會調用 start() 方法
start() 方法返回值最終會會當做插件結果,響應給前台。
shell()
調用當前系統 shell 來輔助完成插件功能。
executor()
插件執行的主方法
crawlerPage
http請求對象(不推薦使用)
fetcher
執行 http 請求對象(不推薦使用)
errorMsg
當校驗不通過時,返回給前台的信息。
param
前台傳過來的參數鍵值對
requests
HTTP 發包工具(推薦使用)
hackKit
hack 常用工具包
無交互插件
無交互插件需要你填寫好所有要填寫的參數,直接請求介面來執行插件。
默認需要去繼承 CommonPlugin類。
這是一個抽象類,繼承了 AbstractPlugin
主要多出來兩個屬性:request 和 response。
繼承了 CommonPlugin 的類可以通過調用這兩個屬性來控制請求和響應內容。
無交互插件同時也需要使用 @Rule 和 @Plugin 插件,這兩個註解後面會講到。
在 ,找到相應的插件填寫好參數提交即可完成調用。
或直接調用介面。
互動式插件
互動式插件一般在命令行控制台中調用,可以允許你通過命令行交互來完成插件的調用。
互動式插件由 Websocket 實現,想要寫一個互動式插件,首先要繼承 WebSocketPlugin 類。
同時設置 @Rule 註解的 websocket 參數為 true ,如果需要非同步交互需要將 sync 也設置為 true。
內部插件
內部插件是不可以通過外部去調用的,需要繼承 InnerPlugin 並使用 @Plugin 註解,通常在漏洞掃描時時會調用。
例如 「網頁爬蟲」,「指紋識別」,「埠掃描」 等,都是通過調用內部插件實現的。
還有用於檢測 SSRF 等漏洞用的 FuckCeye 插件也屬於內部插件。
通過 spring 的自動注入,來注入內部插件到當前對象。
例子可參考 WebLogicWLSRCE.java
爬蟲插件
爬蟲插件會在掃描任務被勾選「網頁爬蟲」時調用,每爬取一條請求就會調用一次爬蟲插件。
爬蟲插件需要繼承 CrawlerPlugin,繼承該類必須重寫 check 和 process 方法。
check 方法用於檢驗請求是否符合插件規則,以免產生多餘請求。
當 check 方法 返回為 true 時會調用 process 方法。
process 方法里寫插件主要檢測代碼。
addVulnerable()
當插件檢測出漏洞時,可以通過調用 addVulnerable() 方法來向資料庫插入一條漏洞。
requests
requests 屬性為請求工具包,處理 https 和 http 都很方便。
response
response 屬性為當前爬蟲得到的 HTTP 響應。
task
task 屬性為當前任務對象,如果你的爬蟲插件不是檢測漏洞而希望是檢測一些敏感信息的話可以修改 task.getResult() 里的屬性。
參考 FingerProbe.java 或 InfoProbe.java。
target
爬蟲爬取到的 URL 對象。
fetcher crawlerPage
http 請求對象(不建議使用)。
漏洞掃描插件
漏洞掃描插件會在,掃描任務中勾選「漏洞攻擊模塊」時調用。
漏洞掃描插件分為三種
1.獨立插件
獨立的漏洞掃描插件需要繼承 AbstractExploit 並使用 @Plugin 或 @Exploit
AbstractExploit 中有以下需要了解的方法和屬性。
requests
http / https 發包工具
target 當前掃描任務的地址。
task
當前掃描任務對象。
check()
check 是一個抽象方法,需要被子類強制重寫。
該方法一般用於檢驗是否符合當前漏洞掃描插件的規則,以免產生多與請求。
attack()
attack 也是一個抽象方法,需要被子類強制重寫。
該方法是檢測漏洞的主方法。
before()
在 attack 方法前執行
after()
在 attack 方法後執行
addVulnerable()
當插件檢測出漏洞時,可以通過調用 addVulnerable() 方法來向資料庫插入一條漏洞。
fetcher crawlerPage
http 請求對象(不建議使用)。
2.漏洞規則
位於
實際上這是一個「內部插件」,會在勾選漏洞模塊攻擊時調用。
有一些漏洞檢測方法很簡單,只通過簡單的判斷響應體就能識別出來,也就沒有必要再去寫一個獨立的插件而佔用空間了。
在 doSwitch() 方法中會先去根據當前任務的指紋識別結果走一遍 switch 流程。
swtich 的每一個 case 都是 WEB 指紋的枚舉對象。
當 switch 找到當前任務 WEB 指紋對應的 case 後,case 內的代碼會通過構建一個漏洞規則添加到 loaders 集合里。
如果規則是通用的,可以寫在 switch 的外面。
3.kunpeng JSON插件
kunpeng 是一個 go 語言編寫的 poc 測試框架,這裡我對 kunpeng 的 JSON 插件做了一個支持。
只需要按照 kunpeng json 插件的格式規範創建一個 json 文件到 /resources/json 目錄。
在掃描任務勾選「漏洞攻擊模塊」時會被調用,或通過 MVC 插件調用 。
MVC 插件
位於
MVC 插件的特點在於,他可以像是在寫一個功能一樣,而非簡單的介面式調用。
MVC 插件需要繼承 MVCPlugin 類,並使用 @Rule,@Plugin 註解。
MVCPlugin 內置了一個 ModelAndView 對象, 是 SpringMVC 提供的。
可以通過 setViewName() 來指定視圖層的網頁模板。
通過 addObject(key,value) 向視圖層網頁模板注入參數。
這裡的視圖層是使用 thymeleaf 實現的,需要懂 thymeleaf 的語法。
例子可以參考:com.trackray.module.inner.JSONPlugin
繼承 MVCPlugin 必須要重寫一個 index 方法,這是插件的入口。
如果需要寫其他的功能,就得再創建一個 public 返回值為 void 的無參方法。
並且要在該方法上使用 @Function 註解,該註解的 value 參數如果不填寫的話則默認的 requestMapping 地址為方法名。
例如
最後還需要在 /module/src/main/resources/templates 創建一個目錄名為插件 KEY 的目錄。
裡面存放擴展名為 .html 的模板文件。
Python 插件
python 插件有兩種實現方式。
1.通過命令行實現
這種方式最為簡單,通過在 include 里寫一個 python 腳本。
然後在插件里調用 shell() 方法來執行系統命令。
案例可參考 com.trackray.module.plugin.windows.smb.MS17010
但這樣還需要再寫 java 的代碼,對於沒有學過 java 的人來說很不友好。
2.通過jython實現
jython 是一個 Python 語言在 Java 中的完全實現。
我將它的調用過程寫成了一個互動式插件。
你可以通過在 /resources/python/ 目錄下安裝如下規範去創建一個 python 文件。
在這個 python 文件中需要寫兩個方法。
關於註解
@Rule
一般用在「可交互插件」和「無交互插件」類上。
@Plugin
WEB指紋
這裡順便再說一下如何添加指紋庫。
指紋庫位於 base 模塊,是一個枚舉類。
可以在首部或尾部添加一條新的枚舉,盡量使用 $ 開頭。
第一個參數是 指紋的名稱,如果第二個參數是 String 類型則是該指紋的說明。
FingerBean 類是指紋匹配對象。
有誰可以介紹java源代碼漏洞掃描工具不?小弟急用。、、、、
源代碼漏洞掃描???
怎麼可能有這種定西。。。就算有也不是一般人能有的。。。
要不然 軟體測試的那幫人 幹嘛去
求一個CGI漏洞掃描或者FTP弱口令掃描的Java程序
X-Scan V3.2 簡體中文版
採用多線程方式對指定IP地址段(或單機)進行安全漏洞檢測,支持插件功能,提供了圖形界面和命令行兩種操作方式,掃描內容包括:遠程操作系統類型及版本,標準埠狀態及埠BANNER信息,CGI漏洞,IIS漏洞,RPC漏洞,SQL-SERVER、FTP-SERVER、SMTP-SERVER、POP3-SERVER、NT-SERVER弱口令用戶,NT伺服器NETBIOS信息等。掃描結果保存在/log/目錄中,index_*.htm為掃描結果索引文件。對於一些已知漏洞,我們給出了相應的漏洞描述、利用程序及解決方案,其它漏洞資料正在進一步整理完善中,您也可以通過作者網站的”安全文獻”和”漏洞引擎”欄目查閱相關說明。
下載地址:
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/151920.html