暴力破解
一、什么是暴力破解?
暴力破解是一種攻擊手段,使用大量的認(rèn)證信息在認(rèn)證接口嘗試登錄,直到得到正確的結(jié)果。
二、暴力破解弱口令實(shí)驗(yàn)
實(shí)驗(yàn)環(huán)境:DVWA
2.1標(biāo)題基于表單的暴力破解
2.1.1 第一步:打開burpsuite攔截
隨便輸入用戶名和密碼
2.1.2 第二步:將攔截到的包右擊發(fā)送到intruder模塊
(其中簡單介紹一下intruder模塊)
Target主要是設(shè)置暴力破解訪問的host地址和對應(yīng)的端口號。
2.1.3 第三步:選擇我們要破解的變量
這里假設(shè)用戶和密碼都不確定
Positions設(shè)置是選擇我們要暴力破解的位置。在默認(rèn)情況下,burp會自動將所有的變量都勾選上。選擇clear$,此時(shí)所有默認(rèn)的爆破點(diǎn)都已消失;選擇我們需要暴破的變量。
2.1.4 第四步:暴力破解時(shí)根據(jù)具體情況進(jìn)行選擇attract type
上面有兩個(gè)變量,選擇cluster bomb 逐項(xiàng)的去匹配變量
2.1.5 Attack Type 攻擊類型
Sniper
只需要指定一個(gè)payload set,無論position有幾個(gè)變量,都是一個(gè)payload set,但會針對每個(gè)變量逐項(xiàng)替換。
Battering ram
無論P(yáng)ositions中有幾個(gè)變數(shù),都是一個(gè)Payload Set。并且每個(gè)變量位置的值都會是一樣的
Pitchfork
不能只輸入一個(gè)字典,每個(gè)變量要有自己的字典文件,也就是說每個(gè)變量有一個(gè)屬于自己的Payload set,但是要注意的是每個(gè)Payload set里面的payload個(gè)數(shù)要一樣;采用一對一的匹配關(guān)系
多出來的那些payload不會被送出去而已
Cluster bomb
每個(gè)變量都要輸入字典,但是不會像Pitchfork是一對一的關(guān)系,而是每個(gè)都會去嘗試到,逐項(xiàng)地去嘗試一多對的方式。
Payloads 用來配置一個(gè)或多個(gè)有效負(fù)荷的集合
Payloads set 指定需要配置的變量
Simple list是最基本的,用法很簡單,可以直接輸入按Add,也可以上傳文檔。雖然這邊我們demo都是手動輸入,不過實(shí)際上要執(zhí)行暴力破解等動作,通常Payload一定會是很大量的,用手輸入可能會累死,所以實(shí)際上都是用選擇上傳文件的方式。(這里基本只用simple list,所以只介紹simple list)
2.1.6 第五步:設(shè)置兩個(gè)payload
前面我們添加了兩個(gè)變量,所以需要設(shè)置兩個(gè)payload
可以加載自己下載的字典,也可以手動輸入;一般情況下選擇load去加載字典進(jìn)行暴破,這里在下方ADD處手動添加
Payload Processing
可以對發(fā)出去的Payload進(jìn)行加工處理,例如可以加入前綴、后綴字符、只截取字符串的某一部分等;后綴常見的可能像是Email結(jié)尾的字符,比如@gmail.com之類的??梢岳胢atch替換,可以反轉(zhuǎn),可以編碼,很多方法可以選擇。
2.1.7 第六步:開始暴破
options 模塊選擇攻擊的線程等(多線程有助于加快破解速度),由于我添加的猜測數(shù)據(jù)較少,可以直接攻擊,點(diǎn)擊 start attack,得到最終的結(jié)果。我們可以根據(jù) status 和 length 兩個(gè)模塊來判斷是否成功。此處發(fā)現(xiàn)請求length與別的不同,重點(diǎn)關(guān)注4644的response可以看到暴破成功
2.2 暴力破解之繞過 token
2.2.1 token的原理和作用
token是用于驗(yàn)證身份的,在web系統(tǒng)中驗(yàn)證前端是否能夠訪問后端系統(tǒng)
是服務(wù)端生成的一串字符串,以作前端進(jìn)行請求的一個(gè)令牌,當(dāng)?shù)谝淮蔚卿浐螅?wù)器生成一個(gè)token并返回給前端,之后前端只需帶上這個(gè)token前來請求數(shù)據(jù)即可,無需再次帶上用戶名和密碼。
2.2.2 第一步 打開burpsuite攔截
在DVWA登錄頁面隨便輸入用戶名和密碼
2.2.3 第二步:將攔截到的包右擊發(fā)送到intruder模塊
2.2.3 第三步 選中需要破解的變量
(這里用戶名已知正確,選擇密碼和token)
2.2.4 第四步 根據(jù)具體情況進(jìn)行選擇attract type
將attract type改為pitchfork,pitchfork簡單理解就是你設(shè)置了幾個(gè)變量,他就能用幾個(gè)payload,我們設(shè)置了2個(gè)變量,就有2個(gè)payload,并且一一對應(yīng)。
2.2.5 第五步 設(shè)置跟隨重定向
在opotion模塊中redirections的follow redirections改為“always”
2.2.6 第六步 在grep-extract中點(diǎn)擊add,選擇refetch response
記住token的值,后面需要用。
2.2.7第七步 修改線程
payload1為單線程即可(因?yàn)?token 是一對一的關(guān)系,當(dāng)?shù)诙€(gè) token 產(chǎn)生,第一個(gè) token 就會消失,所以需要將線程調(diào)整至 1。)
如不修改線程,則會報(bào)錯(cuò),顯示多線程沖突
2.2.8 第八步 加載字典
payload type選擇recursive grep(遞歸查找)
將剛才復(fù)制的token粘貼到payload
2.2.9 第九步 開始爆破
根據(jù) status 和 length 兩個(gè)模塊來判斷是否成功。此處發(fā)現(xiàn)請求length與別的不同,重點(diǎn)關(guān)注4723的response可以看到暴破成功。
2.2.10 token防暴破的弊端
token值輸出在前端源碼中,容易被獲取,因此也就失去了防暴力破解的意義。
三、如何防御暴力破解攻擊?
人為層面:增強(qiáng)密碼安全性
提升密碼長度和復(fù)雜度
密碼應(yīng)由數(shù)字、大小寫字母和特殊符號混合組成,且密碼越長,破解密碼的時(shí)間就會成指數(shù)增加,一旦密碼超過了某個(gè)長度,基本上就不能用暴力破解了。例如,使用破解的服務(wù)器集群,每秒可以嘗試3500億次,這個(gè)速度破解6位密碼只需要4.08秒,7位密碼只需6.47分鐘,8位密碼需要10.24小時(shí),9位密碼需要40.53天,10位密碼就需要10.55年了。
在不同的地方使用不同的密碼
重復(fù)使用電子郵件、銀行和社交媒體帳戶的密碼更可能導(dǎo)致身份被盜用??梢詫⒕W(wǎng)站的縮寫作為密碼的后綴,例如登陸QQ的密碼是Hl9tysY.qq,登陸微博的密碼是Hl9tysY.wb,這樣每個(gè)網(wǎng)站都有獨(dú)立的密碼且不容易忘記。
避免使用字典單詞、數(shù)字組合、相鄰鍵盤組合、重復(fù)的字符串。例如 password 、12345678、asdfg 、aaaa 或 123abc。
避免使用名字或者非機(jī)密的個(gè)人信息(電話號碼、出生日期等)作為密碼。
定期修改密碼文章來源:http://www.zghlxwxcb.cn/news/detail-471675.html
系統(tǒng)層面:做好密碼防暴力破解設(shè)計(jì)
系統(tǒng)設(shè)計(jì)時(shí)考慮以下幾個(gè)方面:
鎖定策略:輸錯(cuò)密碼幾次就鎖定一段時(shí)間。
驗(yàn)證碼技術(shù):要求用戶完成簡單的任務(wù)才能登錄到系統(tǒng),用戶可以輕松完成,但暴力工具無法完成。例如圖形驗(yàn)證碼、短信等。
密碼復(fù)雜度限制:強(qiáng)制用戶設(shè)置長而復(fù)雜的密碼,并強(qiáng)制定期更改密碼。
雙因子認(rèn)證:結(jié)合兩種不同的認(rèn)證因素對用戶進(jìn)行認(rèn)證的方法。例如密碼、身份證、安全令牌、指紋、面部識別、地理信息等。文章來源地址http://www.zghlxwxcb.cn/news/detail-471675.html
到了這里,關(guān)于手把手教你暴力破解的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!