成为一名专业Web渗透工程师难吗?
如今,Web 技術繁榮發展的同時,也帶來了前所未有的安全挑戰。有數據統計,所有黑客入侵事件中,85% 以上都是針對 Web 應用漏洞發起的攻擊。
不知攻焉知之防
本教程《Web安全》是Kali大神講師【苑房弘】的新課,隸屬于『Kali Linux工具大全』技術系列的第三部分。向你解密所有Web攻擊技術,是你掌握對黑客攻擊進行提前檢測、提前防御的能力,避免你所服務的機構再次遭受此類威脅。
通過學習本課程,為你揭開Web黑客技術的神秘面紗,成為一名專業的Web滲透測試工程師。
理論講解是本課程的獨特亮點,也是本課程不同于其他同類課程的最大差別,通過本課的理論講解,你將深刻理解每個工具背后的技術原理,從此摘掉“腳本小子”的帽子。
Web安全測試工具介紹
nikto
向目標發送探測數據包,并根據回包來判斷其運行狀況和處理方式的做法,稱之為掃描。WEB掃描器的本質也不外如此。衡量WEB掃描器優劣的兩個關鍵指標,是爬網能力和漏洞檢測能力。nikto這款開源WEB掃描工具,在爬網能力上有獨特的亮點,同時可以檢測大部分常見漏洞類型,以及因配置管理不當造成的安全漏洞。更具有插件擴展、躲避檢測等多種能力,稱得上是一款非常不錯的掃描軟件。
slowhttptest
多數人心目中的拒絕服務攻擊,總是伴隨著大流量、高并發等具體表向。但事實上某些針對應用層協議的拒絕服務攻擊,完全不會造成明顯的流量和連接數量的激增。slowhttptest即是針對HTTP協議實現慢速拒絕服務攻擊的代表,它提供四種方法實現對目標連接池的耗盡,使得服務器完全無法接收新的訪問請求。在被KALI收錄之前的很多年里,它一直是我無堅不摧的秘密武器,并曾在多次產品測試過程中,打穿眾多大牌廠商的防護設備。
apache-user
用戶枚舉屬于滲透測試初期階段的任務之一。其最常見的手段無外乎基于字典的爆破,但這種方法耗時耗力的同時又很容易引起目標的察覺,實在算不上一種巧妙的方法。apache-user并非普遍適用的工具,它只針對特殊場景,從另類的角度實現高效的用戶枚舉。雖然功能單一,但卻充分體現了作者的巧思,而且提供了足夠的定制能力。arachni因前兩年國外一次著名的黑客攻擊事件,arachni走進了大多數人的視線。這是一個功能全面,且明確為了大型網絡分布式部署而設計的WEB掃描軟件。不過Kali官方的作法卻令我非常費解,它并未包含arachni的完整功能,因此我每次要使用時都不得不從官網下載完整版的軟件包。arachni采用了一種self-contained的發行方式,因此可以完美實現跨平臺、免安裝和開箱即用。至于掃描能力,arachni曾在強手如林的同類產品測評比賽中名列前某。
bbqsql
如同本工具的作者所說,SQL注入漏洞就如同BBQ一樣美味,因此他為本工具取了這樣一個充滿食欲的名字。bbqsql是一個半自動化的SQL盲注工具,曾登上過第20屆DEFCON大會的講臺。不同于常見的自動化SQL注入工具,要想正常發揮bbqsql的功能,你必須具備手動挖掘SQL注入漏洞的能力。本課內容包含基本的SQL注入原理,純手工的SQL盲注手法。如果你已經注入了很多年,但卻依然無法體會SQL注入的美味,也許這就是你需要補上的一課。
BlindElephant
與以往相比,現在的程序員已經越來越輕松。大量現成的框架和庫,使得WEB開發越來越像是一種搭積木的游戲。更有大量開源的CMS系統,使得即使完全不懂程序開發的外行也可以輕松搭建自己的WEB應用。這樣做的好處主要體現于其效率優勢,但由于部署量巨大,任何一個CMS系統自身的漏洞被曝光,其實際的受影響范圍都可能非常巨大。BlindElephant基于對靜態文件的HASH比對,快速識別目標基于的開源CMS版本,進而判斷其可能存在的已知漏洞。
cadaver / davtest
WEBDAV是基于HTTP 1.1的擴展協議,其支持使用PUT方法上傳文件,基于這個特性可以實現功能強大的內容或配置管理系統。但豐富的功能特性總是會帶來安全方面的更多隱患。davtest是一個文件上傳漏洞的檢測和驗證工具,而cadaver作為一個命令行形式的WEBDAV客戶端程序,可以對相應服務器進行任何操作。本課我結合以上兩個工具,分別向服務器上傳正向、反向WEBSHELL,從而最終實現對目標服務器的遠程控制。
cutycapt
這應該算不上是一個安全工具,但Kali Linux還是堅持吸納了這個成員。cutycapt的主要功能是將目標WEB頁面抓取并保存成為一張圖片。我認為其合理的使用場景,應該是作為一個功能組件,在企業自建的安全監控和報告系統中,被直接調用生成頁面的截圖照片。cutycapt可以識別并執行客戶端腳本語言,以及忽略SSL證書相關的錯誤提示。同時其可以自動識別有效的頁面元素,在保證抓取信息完整的前提下,確保圖片文件的體積最小。
whatweb
whatweb是一個功能簡單的WEB掃描工具,其主要功能并非發現WEB應用程序的常見漏洞,而是對其進行指紋信息的收集。具體包括服務器軟件版本、開發框架、語言環境、IP地址、javascript庫等信息。其內建的約1000個功能插件,可針對不同類型的系統信息進行收集。而且whatweb支持批量掃描,定制請求前綴和后綴,同時還支持代理功能,通常是WEB滲透信息收集階段使用的第一個工具。
uniscan / uniscan-gui
這是一個外表低調內心狂放的WEB掃描器,其功能卻遠不僅限于WEB一域。除了常規WEB掃描器該有的所有功能全部具備之外,uniscan還提供了『01-信息收集』類工具的很多功能,例如網絡層路徑追蹤、端口發現、指紋探測、漏洞掃描等主動信息收集功能,以及DNS域名解析、搜索引擎信息收集等被動信息收集能力。甚至它還可以作為壓力測試工具用來評估服務器的性能極限。uniscan-gui是它的圖形化界面版本,功能與命令行界面的uniscan完全一致。
burpsuite
如果上天只允許我選擇一個WEB安全檢查工具的話,我相信自己會選擇Burpsuite。這個高效的模塊化工具,幾乎適用于所有WEB安全測試的場景。它的所有模塊之間信息均可互通,同時還擁有大量的擴展插件,即使在面對極度詭異的場景,它總能不辱使命,成為滲透測試者最有利的幫手。整整一年前,我曾講過一次這個工具。本次課程我在提煉總結了原有內容基礎之上,又填加了一些新增功能的介紹,他們個個特色突出,也許日后會有突破性的發展。
ua-tester / grabber
ua-tester是個小工具,其唯一功能是基于字典探測什么樣的UA不會被服務器拒絕。grabber則是一個面向小型WEB應用的漏洞掃描工具,雖然它支持不少常見漏洞類型的檢測,但僅就不支持身份驗證這一點,就已經扎實的把它限定在小型WEB掃描器的領域無法逾越了。之所以要一次課程講這兩個工具,沒有什么技術性的內在原因,只是因為它們都很小。
dirb / dirb-gendict / dirbuster
衡量WEB掃描器優劣的兩大指標分別是爬網能力和漏洞檢測能力。爬網爬的越全面,發現漏洞的可能性就越大;漏洞驗證能力越強,漏洞檢測結果就越精準。兩者缺一不可。dirb是一個基于字典對目標WEB應用程序路徑進行爆破的命令行工具;當現有字典無發滿足需求的時候,dirb-gendict可以按指定字符類型和長度生成字典;如果你不喜歡字符界面也沒關系,dirbuster提供了圖形操作界面,而且功能上涵蓋了前兩者之和。
Gobuster
衡量WEB掃描器優劣的兩大指標分別是爬網能力和漏洞檢測能力。爬網爬的越全面,發現漏洞的可能性就越大;漏洞驗證能力越強,漏洞檢測結果就越精準,兩者缺一不可。Gobuster由Go語言編寫,其一方面是基于字典的WEB路徑暴破工具,這一點和dirb非常相似。另一方面Gobuster是一個基于字典的子域名暴破工具(這種工具在『信息收集』類工具中我曾介紹過很多),在滲透測試者面對主站一籌莫展的時候,可以幫助我們發現旁路的滲透渠道。
fimap
當WEB應用程序將文件路徑作為參數賦值,而服務器端對用戶輸入并未嚴格過濾的時候,就有可能存在文件包含漏洞。如果被包含的文件非程序代碼,則內容會被直接返回給客戶端瀏覽器,造成信息泄露;如果被包含的文件中包含程序代碼,則會在服務器端被解析執行。本課我介紹了多種方法實現代碼的植入,和對服務器的控制。
fimap
作為文件包含漏洞的檢測、審計、利用工具,同時具備爬網和調用搜索引擎的能力,可極大簡化滲透測試者的工作。vegaKali Linux中絕大部分工具都是命令行工具,大家的學習使用成本都比較高。vega是一個由java語言編寫的圖形化WEB掃描器,即使是初學者也可以快速學會并上手使用。它不但基于截斷代理實現手動爬網,同時也具備主動爬網和自動掃描的能力,對大多數常見漏洞類型進行檢測發現。身份認證方面vega支持全面,不但提供HTTP和Cookie認證方式,而且還具備登錄過程重放功能,大大簡化了WEB應用因身份認證給滲透測試者造成的繁瑣。
jboss-autopwn
jboss AS是一個開源的J2EE應用程序服務器,由于其靈活性而受到眾多程序員的喜愛。但靈活和易用似乎永遠對安全都不夠友好,jboos曾經被發現存在默認配置漏洞,而jboss-autopwn就是該漏洞的利用工具。它是個純shell腳本,因此其連接建立、上傳布署、獲得shell等功能,都注定必須依賴其他工具來完成,其中metasploit就是最重要的一個。由于metasploit自身的快速迭代,已經造成jboss-autopwn的使用失效,本課我會向你介紹修正的方法。commixcommix是個All-in-One的命令注入漏洞檢測、利用工具。它的出現彌補了命令注入漏洞長期以來文獻匱乏的現狀,它嚴格精細的對各種命令注入漏洞進行了細分,并通過代碼實現了過程的自動化。本工具考慮到命令注入漏洞的各種場景,包括shellshock命令注入場景。由于其優秀的功能和高度準確的檢測結果,在開發測試階段其就曾發現多個安全產品的0day漏洞,并于2015年登上了黑帽大會的講臺。本課我從手動到自動完整向你展示命令注入漏洞。
joomscan / wpscan / plecost從促進行業發展的角度出發,軟件開發工作需要不斷逼近應用層面,這是必要的趨勢。因此要求程序的基本功能不斷被整合、打包、固化,成為新的軟件開發的基礎設施,只有這樣程序員才能拿出更多的時間和精力來考慮現實層面問題的解決方案。CMS系統本省已經提供了一個完善的WEB應用,基于這個已經完工的產品,我們可以快速修改生成自己的WEB應用。本講的三個工具都是對常見CMS系統進行漏洞檢測的最優掃描工具。
skipfish
skipfish是谷歌開發的一款命令行WEB掃描工具。我們常見的開源掃描工具,大多都使用python、perl等腳本語言進行開發,以提高開發效率降低開發難度。這一點skipfish的做法略有不同,它使用了C語言進行開發。但也正因為如此,它的運行速度要明顯優于其他同類掃描器軟件。同時其具備的啟發式掃描功能,使得其掃描結果的誤報率相對較低。具體功能方面,skipfish也表現不凡,爬網、掃描、身份驗證等功能一應俱全。
wapiti
wapiti是個黑盒WEB掃描器,爬網、掃描、報告等基本功能完備。它使用了一種模塊化的工作方式,使用者可以按照自己的需要選擇特定漏洞類型和HTTP方法進行掃描。為進一步完善自身能力,wapiti調用了nikto對可疑文件進行發現和檢測。作為配套工具,wapiti還提供了wapiti-cookie、wapiti-getcookie兩個小程序,用于從目標WEB服務器自動獲取并生成json格式的cookie文件,以便應對需要身份認證的掃描場景。
jsql
Linux最不友好的方面大概要算缺乏優秀的圖形界面了,但jsql在這方面讓我們刮目相看。這款由JAVA編寫的SQL注入漏洞利用工具,具有非常友好的圖形界面,甚至讓我們有一種回到了windows的感覺。這款工具支持多種HTTP方法,和幾乎所有你聽過沒聽過的數據庫。檢測手段上它幾乎做到了全覆蓋,基于標注、報錯、時間、忙注等漏洞檢測方法全有。同時還包含WEB Shell、SQL Shell、后臺爆破、密碼爆破等多種功能,可謂是個一站式的安全產品。
paros
作為一名安全技術人員,想必你一定知道Burpsuite、OWASP ZAP等基于截斷代理方式工作的安全檢查工具。但你知道嗎?以上說到的這些工具最初都是模仿paros開發出來的。作為截斷代理型WEB安全檢查工具的先行者,十幾年前它就已經具備了今天Burpsuite最核心的幾個模塊的功能(包括掃描)。所以如果你已經用過了Burp,那么當你再使用paros的時候,一定會有一種莫名的親切感。
funkload
Funkload是一個由Python編寫的WEB項目測試工具套件。為了簡化測試人員的工作,Funkload提供了基于代理的自動代碼生成功能,使得測試人員在只需要很少量編碼的情況下,即可以快速生成測試代碼。利用Funkload,我們可以自動實現回歸測試、性能測試、負載測試、壓力測試,并自動生成圖文并茂的測試報告,更可以對多份報告進行比對和趨勢分析。為了方便大家使用,我在本課中給出了大量例子代碼。
owasp-zap
OWASP-ZAP是由OWASP組織開發維護的綜合型WEB安全檢查工具。由于其全面的功能和強大的擴展能力,使我堅信這是除BurpSuite之外,另一個必須被WEB安全人員掌握的強大工具。ZAP不但可以作為自動WEB掃描器使用,同樣也提供截斷代理的能力,我們可以利用這一個工具,全部完成自動和手動的WEB漏洞挖掘工作。同時豐富可定制的Fuzz能力,更可以極大提高滲透測試人員的工作效率。另有API接口,可供開發人員編寫自己的掃描器。
padbuster
阿里有位道哥,在他寫的《白帽子講WEB安全》一書中,曾介紹一種稱之為Padding Oracle Attack的漏洞利用方式。這是一種針對加密算法,通過邊信道攻擊實現對加密數據進行解密的攻擊方式。道哥書中的理論部分完全來自于該漏洞首位復現者的博文,不過道哥只引用了文章前半部分的內容。本課我將向大家完整介紹此文章的全部內容,以及如何利用padbuster工具自動實現漏洞利用的方法。
httrack
在對目標WEB站點進行偵察的階段,我們需要多次反復的瀏覽目標站點的結構。但頻繁且無意義的訪問行為容易引起目標站點的警覺,此時比較穩妥且隱蔽的做法是,先將站點全部結構鏡像下載到本地,然后進行離線慢慢觀察和瀏覽。httrack就是這樣一個全站下載工具,它功能全面參數巨多,可以滿足不同場景的需要。同時它支持多種身份驗證機制,因此對要求授權用戶才能訪問的地址頁面也可以一并下載。
deblaze
在很多使用Flash的網站上,都使用了Adobe的Flex編程方法。從效率方面來看,這種基于AMF協議封裝序列化二進制數據包的通信方式,比我們通常使用的基于文本的傳輸方式要快10倍以上。但取得高效便利的同時,Flex App也引入了新的攻擊面,使其更加容易受到黑客的攻擊。deblaze分析和枚舉Flex服務器端地址和服務方法名稱,并利用pyamf模塊偽造AMF協議報文,進行漏洞檢測和驗證。
owasp-mantra-ff
你是否聽說過某些“大牛”說,自己只憑解一個瀏覽器他就可以黑掉整個世界的網站。是吹牛還是真牛我不得而知,但owasp-mantra-ff確實是一個完全基于FireFox瀏覽器打造的WEB安全工具,通過集成大量安全相關的瀏覽器插件,mantra不但具備類似于BurpSuite截斷代理的功能,在某些條件下甚至還可以當作一個自動掃描器來使用。但mantra的作者表示:僅依賴瀏覽器是無法完成所有WEB漏洞挖掘的。
webscarab
webscarab是一個由JAVA語言開發的截斷代理型的WEB安全檢測工具,曾經是由OWASP組織開發并維護的。我們課程的同學可能還記得,ZAP也是由OWASP組織開發的同類型WEB安全工具。隨著ZAP功能的不斷強大和豐富,最終OWASP組織在Kali Linux誕生之前就已經停止了webscarab項目,但Kali還是收錄了這款工具。
websploit
自從MSF誕生之后,很多人都嘗試模仿它來打造自己的漏洞利用框架,websploit就是其中之一。因此其命令格式和操作界面都與MSF非常相似,甚至有些漏洞利用模塊也是直接調用MSF的。websploit基于python語言開發,面向的漏洞類型并不僅限于WEB方向,但本質上其并未全新實現任何漏洞利用功能,更多是調用已有開源工具。由于缺乏及時維護,其某些模塊已失效。
sqlmap
看過很多介紹sqlmap的技術文章和教程,但似乎并沒有誰能將其所有功能和參數全部清晰呈現,因此本課我試圖彌補這一空白。sqlmap是一個由python語言編寫的SQL注入漏洞檢測工具,它強大的檢測引擎和豐富的功能特性,幾乎適合所有SQL注入漏洞的檢測場經。除漏洞檢測之外,sqlmap還包含對漏洞的利用驗證能力,脫褲、文件訪問、系統指令執行等無一不包,這些都使其成為了該領域必知必會必備的工具。
wfuzz
Fuzz即模糊測試,其原理是向應用程序發送各種隨機、半隨機的數據,并根據程序對隨機數據的處理結果來判斷程序是否漏洞,其中用于大量發送隨機數據的工具稱為Fuzzer。wfuzz是一個專門針對WEB服務的Fuzzer程序,它功能全、速度快、可擴展、靈活性高、使用簡單,它可以向WEB服務的任何數據入口提交數據。雖然在結果數據的過濾上wfuzz存在一定瑕疵,但它仍然是該領域最優秀的工具。
xsser
與其他威脅服務器安全的漏洞類型不同,XSS漏洞攻擊的對象不是服務器端,而是網站的最終用戶。由于攻擊者發動攻擊所利用的漏洞讓然存在于服務器上,所以我們稱之為跨站;另外,由于攻擊是通過客戶端腳本語言最終實現的,所以XSS被稱為跨站腳本。xsser是一個XSS漏洞的檢測和利用框架,它支持命令行和GUI兩種方式,并且內建多種WAF的繞過技術,免去了手動bypass的繁瑣。
beef
Browser Exploitation Framework簡稱BeEF,是一個由ruby語言編寫的瀏覽器攻擊框架。它適用于多種應用場景,具體包括結合XSS漏洞、中間人、社會工程學、鏈路劫持等手段實現攻擊。BeEF首先通過注入的hook腳本與受害者瀏覽器建立連接,并以此作為進一步攻擊客戶端的灘頭陣地,不斷向瀏覽器植入新的攻擊向量,甚至可以最終實現對客戶端計算機的完全控制。
總結
以上是生活随笔為你收集整理的成为一名专业Web渗透工程师难吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CAD高版本窗体阵列LISP_AutoC
- 下一篇: SOUI GDI+渲染引擎下的字体特效,