轉載來源:http://www.hetianlab.com/expc.do?ce=16461e1c-6f03-4497-be29-87df36d40cef
通過該實驗掌握burp的配置方法和相關模塊的使用方法,對一個虛擬網站使用burp進行暴力破解來使網站建設者從攻擊者的角度去分析和避免問題,以此加強網站安全。
1.Burp的工作模式:
在沒有burp之前,客戶端使用瀏覽器直接與服務器進行通信。有了burp之后,burp在客戶端與服務器之間充當代理。這樣,瀏覽器發送給服務器的請求就會被burp進行捕獲,而burp和wireshark這種審計類工具相比,其強大之處在於不僅可以做審計工作,更可以對數據包進行修改並發送出去。使用了burp的結構如下圖所示。
2.暴力破解:
一般使用暴力破解都有兩種原因:
1.對這個漏洞的測試,人是可以完成的,即可窮舉。
2.人可以完成,但是代價太大,或者太浪費時間。
正是出於這樣的問題,一些軟件的出現幫助人完成了這些測試,這就是暴力破解的真正好處。在業界曾經有這樣的一種看法,對於暴力破解的使用都不屑一顧,因為大家覺得技術含量太低。但是,從實際的情況來看,因為用戶使用弱口令情況太普遍,導致很多漏洞使用暴力破解都可以輕松拿下。
暴力破解,最有價值的地方是在對字典的構造上,這是一門技術,需要長期的經驗積累。
實驗目的
通過該實驗掌握burp的配置方法和相關模塊的使用方法,對一個虛擬網站使用burp進行暴力破解來使網站建設者從攻擊者的角度去分析和避免問題,以此加強網站安全。在此鄭重聲明,本教程只做教學目的,嚴禁使用本教程對線上網站進行破壞攻擊。
實驗環境
服務器:windows xp sp3 ip地址:10.1.1.163
測試者:windows xp sp3 ip地址隨機
實驗步驟一
Burp是個非常強大的web分析工具。burp在瀏覽器和服務器之間充當了一個雙向代理。這樣,就可以把用戶或者服務器通信過程中產生的數據包給截獲下來,讓專業人員去分析。Burp以友好的界面和強大的功能獲得了安全界一致好評。
本次實驗,需要小伙伴們完成的任務有:
1.配置burp和瀏覽器代理,使burp能夠正常運行。
2.學會使用burp中的compare模塊
3.學會使用burp中的 repeat模塊
4.學會使用burp中的intruder模塊
5.為了使小伙伴們更好的get這些技能,我們提供了一個存在暴力破解隱患的網站,會指導小伙伴們完成此項試驗。
配置burp和設置ie代理
在預備知識中我們了解到,burp在瀏覽器(客戶端)是以代理的方式存在。因此,如果想要我們發送的包被burp截斷,就需要雙方協商好一個監聽端口。
首先,雙擊打開桌面的burp進入主界面。
1.設置burp監聽端口:
選擇proxy(代理),進入之后選擇options。我們看到在Proxy listeners處burp為我們默認添加了一個本地8080端口處的監聽項。
當然,你完全可以自擬一個新的監聽端口,在左側點擊ADD即可設置
2.接下來我們需要配置瀏覽器的代理項。
這里以系統自帶的ie為例(chrome和firefox用戶可以使用代理插件進行設置)
使用win+R鍵打開命令窗口,輸入inetcpl.cpl進入ie設置。
在連接選項卡中,選擇局域網設置
輸入我們為burp指定的監聽端口號
這時候,我們就建立了基本配置。
3.我們來測試一下:
在burp中打開intercept is on.
用瀏覽器訪問:10.1.1.163/crack,我們會在burp中看到
這表明我們已經成功的截獲了來自瀏覽器的請求。
點擊forward就可以把這個請求發送給服務器,服務器會將結果返回給瀏覽器中,並將響應在burp中記錄下來。Drop會將這個包丟掉,即不會發送到服務器端。
實驗步驟二
熟悉comparer,repeater,intruder模塊。
1.compare模塊
compare模塊可以將不同的數據包(無論是請求包還是響應包)進行比較。
首先,我們添加一條請求到compare模塊去。
在已經截取的數據包上面右鍵,選擇send to comparer
這時候,我們會看到在comparer模塊,上下兩個界面中同時多出來了一條記錄。
使用同樣的方法,我們在為comparer模塊添加另外的一條記錄。
我們打算使用1和2進行對比,在兩個視圖中選擇1和2(順序無所謂),然后點擊右下角的compare word(bytes是指文件按照字節流來進行比對)。
從圖中我們可以看到,窗口標題提示了我們兩個文件有多少處不同。左下角的圖例告訴了我們右側和左側相比,哪些是添加的,哪些是修改的,哪些是刪除的。非常直觀。
2.repeater模塊
有時候我們需要向服務器發送多次相同的請求來測試服務器的響應。這里,我們只需要將burp截取到的請求通過右鍵send to repeater就可以在repeater中進行操作了。
進入到repeater之后,點擊go按鈕,右側就會返回服務器的響應。
Go的次數沒有限制,點擊多少次go,burp就會把當前的請求頁向服務器發送多少次。
使用repeater的目的是進行重放攻擊測試,看服務器是否會對重放測試做出反應。
3.intruder模塊
這個模塊是burp非常強勢的地方,也正是我們這節課中說到的暴力破解主要使用的模塊。
1)同樣的,在已經截獲的請求頁上右鍵,選擇send to intruder。
進入intruder模塊。我們會看到四個選項卡,分別是target,positions,payloads,options.
Target主要是設置暴力破解訪問的host地址和對應的端口號
Positions設置是選擇我們要暴力破解的位置。在默認情況下,burp會自動將所有的變量都勾選上。實際操作中,我們往往是針對單一點,選擇clear$,此時所有默認的爆破點都已消失。
2)用鼠標選中需要暴力破解的變量的值。然后右側選擇add$,這樣我們就添加了一個爆破點,這個爆破點的payload位置是在兩個$之間的部分。
Payloads設置
選擇怎樣的字典或者payload,是這個模塊要做的事情。Payload type 下拉列表框為我們提供了常用的payload 類型,視情況選擇即可。
如果你有合適的字典,在選擇了payload type為simple list后,接下來你就可以在payload options中選擇你要加載的字典文件,點擊load即可。
有時候我們需要對payload進行二次處理,比如md5加密啊,base64加密啊之類的,burp當然也考慮到了這一點。在payload processing中集成了一些常見的算法。
點擊add,在彈出的窗口中就可以根據需要選擇了。
Options中有關於其他細節的設置,比如攻擊時使用的線程數,關於攻擊的一些存儲設置之類。這里就不再贅述。
實驗步驟三
粗心的hetian很喜歡在合天教學系統進行演練,但是他只記得自己的用戶名是hetian,卻忘掉了自己的密碼,唯一記得的是密碼是50-100之間的某個數。你能幫他找到密碼嗎?
1.訪問http://10.1.1.163/crack/,這是一個登錄界面。
2.使用hetian登錄,密碼任意。完成表單后提交。這時候burp會截取我們的請求。
3.在該請求頁上右鍵選擇send to repeater.我們來進行重放測試。點擊go,右側返回服務器的響應。多次go之后發現,服務器返回的長度和內容都沒有發生變化,都會提示sorry
也就是說,服務器對多次測試並沒有加以限制,因此我們可以使用暴力破解了。
為了再次驗證,我們在登陸界面再次輸入一個不同的密碼。在我們將兩次請求的響應使用comparer去比對一下。(在proxy中選擇子選項卡HTTP History,選擇方法為post的兩個歷史記錄,點擊每一條post記錄,下方會看到不同的post數據時,這應該就是我們的兩次不同密碼的請求記錄,右鍵選擇send to comparer(response))
從圖中我們可以發現,經過對兩次不同的請求返回結果進行對比,burp為我們在左上角標出了2項不同,但都是體現在時間上,其余都相同。所以可以使用暴力破解。
4.進入到intruder之后,先點擊clear,然后選中我們剛才填寫的pas字段值,點擊add。這樣,就確定了爆破點是pas位置。
5.打開payload選項卡,payload type選擇數字。
6.選擇數字之后,我們填寫數字范圍。因為是已經暗示了密碼范圍,所以我們選擇50到100.順序生成,每步加1(step設置)
7.開始攻擊。
8.這時候我們看到了攻擊測試界面。我們重點關注payload和length,這里的length表示的是服務器的響應長度。
從理論上來分析,登陸成功和登陸失敗,返回的長度應該不同,這能方便我們找出正確密碼。右下角的進度條顯示了我們的進度。
9.一段時間過后,我們測試結束(請大家耐心等待,實際上在實體機上測試非常快)。這時候在length上雙擊,可以對length排序。
我們發現,在測試的50個payload中,payload為69的返回值不同與其他payload返回值。我們懷疑69就是答案。我們來觀察一下。
在payload為69的request上雙擊,進入后選擇response。
瀏覽response,直到發現
Yes,you catch the flag.