:四種攻擊模式詳解與靶場演練)
1. 項目概述為什么Bruteforce_Test是Burpsuite入門的絕佳靶場如果你剛開始接觸Web安全測試或者想系統(tǒng)性地掌握Burpsuite這個“瑞士軍刀”的核心攻擊模塊那么Bruteforce_Test這個靶場絕對是你繞不開的經(jīng)典練手項目。它不像那些復(fù)雜的綜合靶場一上來就給你幾十個漏洞點讓人無從下手。Bruteforce_Test顧名思義就是專門為“暴力破解”攻擊設(shè)計的目標極其純粹一個登錄框。這恰恰是學(xué)習(xí)攻擊工具最理想的狀態(tài)——剝離復(fù)雜的業(yè)務(wù)邏輯和干擾項讓你能聚焦于工具本身的使用邏輯、參數(shù)配置和攻擊模式的選擇。我見過很多新手一拿到Burpsuite就直奔Intruder模塊看著四個攻擊模式Sniper, Battering ram, Pitchfork, Cluster bomb發(fā)懵隨便選一個就開始跑結(jié)果要么是請求亂發(fā)一通毫無效果要么就是字典配置不對跑出來的結(jié)果根本沒法看。這不僅打擊信心更糟糕的是形成了錯誤的使用習(xí)慣。Bruteforce_Test這個靶場就像駕校里的“倒車入庫”項目它把“暴力破解登錄”這個最常見的攻擊場景拆解成了最基礎(chǔ)的幾個考核點你能否正確抓包、能否精準定位攻擊參數(shù)、能否根據(jù)場景選擇合適的攻擊模式、以及能否配置高效可用的字典。這次我就以這個靶場為例帶你完整走一遍流程。我們不只講“怎么點”更要講清楚“為什么這么點”。我會詳細拆解四種攻擊模式各自的適用場景和底層邏輯并分享我多年來積累的、針對登錄爆破場景的字典配置心得包括如何避免觸發(fā)賬戶鎖定策略、如何提升爆破效率等實戰(zhàn)技巧。無論你是剛安裝好Burpsuite的新手還是想鞏固基礎(chǔ)的老手這篇手把手的指南都能讓你對Intruder模塊有一個透徹的理解。2. 環(huán)境準備與靶場搭建2.1 Burpsuite社區(qū)版與專業(yè)版的抉擇工欲善其事必先利其器。首先你得有個Burpsuite。很多教程一上來就讓你找破解版我強烈不建議這么做。一來有安全風(fēng)險二來不穩(wěn)定最重要的是PortSwigger官方提供的社區(qū)版Community Edition對于學(xué)習(xí)核心功能來說已經(jīng)完全夠用。Intruder模塊在社區(qū)版中功能完整只是速度上有限制每秒請求數(shù)受限但這對于學(xué)習(xí)Bruteforce_Test靶場恰恰是好事——它能讓你更清晰地觀察每個請求和響應(yīng)而不是“唰”一下全跑完了你還不知道發(fā)生了什么。去PortSwigger官網(wǎng)下載安裝包過程很簡單。安裝后首次運行它會讓你選擇臨時項目還是磁盤項目。對于練習(xí)選“Temporary project”就行。關(guān)鍵是配置瀏覽器代理。我習(xí)慣用Chrome安裝SwitchyOmega插件來管理代理是最清晰的方式。將代理設(shè)置為127.0.0.1:8080并確保Burpsuite的Proxy - Options里代理監(jiān)聽器Proxy Listeners是運行在8080端口的。注意首次啟動Burpsuite瀏覽器訪問網(wǎng)頁可能會提示證書錯誤。這是因為Burpsuite作為中間人需要生成自己的CA證書來解密HTTPS流量。你需要在瀏覽器中訪問http://burp下載CA證書并導(dǎo)入到瀏覽器的“證書管理機構(gòu)”中。這一步至關(guān)重要否則你抓不到HTTPS的包。2.2 Bruteforce_Test靶場部署實戰(zhàn)Bruteforce_Test靶場通常是一個簡單的PHP或Python Web應(yīng)用。網(wǎng)上有很多開源版本核心就是提供一個帶有用戶名和密碼輸入框的登錄頁面后端邏輯就是比對固定的幾組憑證。為了模擬最真實的學(xué)習(xí)環(huán)境我建議你在本地自己搭建。假設(shè)你使用PHP環(huán)境一個最簡單的靶場index.php代碼如下?php session_start(); $valid_users array(admin password123, test test123, user 123456); $username $_POST[username] ?? ; $password $_POST[password] ?? ; if (!empty($username) !empty($password)) { if (array_key_exists($username, $valid_users) $valid_users[$username] $password) { $_SESSION[loggedin] true; $_SESSION[username] $username; echo h1Login Successful! Welcome, $username./h1; } else { echo h1Login Failed! Invalid credentials./h1; } } ? form methodPOST Username: input typetext nameusernamebr Password: input typepassword namepasswordbr input typesubmit valueLogin /form將這段代碼保存放在你的PHP服務(wù)器根目錄比如XAMPP的htdocs或www目錄。訪問http://localhost/你的目錄/index.php就能看到登錄頁面。這個靶場預(yù)設(shè)了三組有效憑證admin/password123test/test123user/123456。我們的目標就是通過Burpsuite的Intruder嘗試用字典暴力破解出其中任意一組。實操心得自己搭建靶場的好處是你可以完全控制后端邏輯。例如你可以修改代碼添加登錄失敗次數(shù)限制、延遲響應(yīng)等機制來模擬更真實的防護場景從而練習(xí)更高級的繞過技巧。這是直接使用現(xiàn)成在線靶場無法獲得的靈活度。3. 攻擊流程核心四步解析3.1 第一步精準抓包與請求分析一切攻擊始于抓包。打開Burpsuite的Proxy - Intercept確保攔截是“Intercept is on”狀態(tài)。然后回到瀏覽器訪問你的本地靶場地址在登錄框中隨意輸入一個用戶名和密碼比如aaa和bbb點擊登錄。此時請求會被Burpsuite攔截。你會在Raw標簽頁看到類似如下的HTTP POST請求POST /bruteforce_test/index.php HTTP/1.1 Host: localhost Content-Type: application/x-www-form-urlencoded Content-Length: 25 usernameaaapasswordbbb這個原始的請求數(shù)據(jù)包就是我們后續(xù)所有攻擊的“模板”。關(guān)鍵動作來了右鍵點擊請求報文選擇“Send to Intruder”。這樣這個請求就被發(fā)送到了Intruder模塊等待我們配置攻擊。進入Intruder - Positions標簽頁。Burpsuite會自動用§符號標記一些它認為可能是參數(shù)的部位。但自動標記往往不準我們需要手動清除并重新定義。點擊右邊的“Clear §”按鈕然后手動選中aaa和bbb這兩個值分別點擊“Add §”按鈕。完成后你的請求應(yīng)該變成這樣username§aaa§password§bbb§這表示我們定義了兩個攻擊位置Payload Positionsusername和password。Intruder將會用我們提供的字典內(nèi)容替換這兩個§符號包裹的部分生成大量不同的請求進行測試。注意事項很多新手會忽略Content-Length頭。當你用不同長度的Payload替換原始值時Content-Length會自動變化嗎在Burpsuite的Intruder模塊中默認情況下“Update Content-Length”這個選項是勾選的它會自動重新計算并更新請求頭中的Content-Length值。這是一個非常貼心且重要的默認設(shè)置確保你的請求格式始終正確。除非你有特殊需要否則不要取消它。3.2 第二步攻擊模式深度解讀與選型這是本次實戰(zhàn)的核心也是很多人最困惑的地方。Intruder提供了四種攻擊模式它們決定了Payload如何被應(yīng)用到多個攻擊位置上。選對模式事半功倍選錯模式徒勞無功。#### 3.2.1 Sniper狙擊手模式這是最常用、最直觀的模式。它只有一個Payload集合Payload set。攻擊時它會用這個集合里的每一個Payload依次替換每一個攻擊位置而其他攻擊位置則保持你設(shè)置的原始值即aaa和bbb。適用場景當你只有一個不確定的變量時。比如你知道用戶名是admin但不知道密碼或者你知道密碼是123456但不知道用戶名。這時你只需要標記一個位置用戶名或密碼使用Sniper模式用一個字典去遍歷這個位置即可。在我們的靶場中如果我們假設(shè)用戶名是admin想爆破密碼那么就應(yīng)該只標記password參數(shù)使用Sniper模式和一個密碼字典。#### 3.2.2 Battering ram攻城錘模式這個模式也只有一個Payload集合。它的特點是用Payload集合里的同一個值同時替換所有被標記的攻擊位置。比如你標記了username和password兩個位置Payload集合是[‘a(chǎn)dmin’ ‘test’ ‘root’]。那么Battering ram模式會生成三個請求usernameadminpasswordadminusernametestpasswordtestusernamerootpasswordroot適用場景非常特定即測試“用戶名和密碼是否相同”的情況。在實戰(zhàn)中確實存在一些系統(tǒng)默認或用戶習(xí)慣設(shè)置用戶名密碼相同。但總體來說這個模式使用頻率較低。#### 3.2.3 Pitchfork草叉模式這是功能強大的模式。它為每一個攻擊位置分配一個獨立的Payload集合。攻擊時它會從每個Payload集合里按順序各取一個值組合成一個請求。假設(shè)我們標記了兩個位置為位置1username配置了Payload集A:[‘a(chǎn)dmin’ ‘test’]為位置2password配置了Payload集B:[‘123456’ ‘password’]。Pitchfork模式會生成兩個請求usernameadminpassword123456取A[1]和B[1]usernametestpasswordpassword取A[2]和B[2]適用場景當你擁有成對的、一一對應(yīng)的數(shù)據(jù)列表時。這是爆破登錄的“理想”模式。例如你通過信息收集得到了目標系統(tǒng)的一批用戶名并且通過社工庫或默認密碼規(guī)則為每個用戶名推測了一個最可能的密碼。這時你就可以使用Pitchfork模式將用戶名列表和對應(yīng)的密碼列表分別載入兩個Payload集進行精準的“撞庫”攻擊效率遠高于盲目組合。#### 3.2.4 Cluster bomb集束炸彈模式這是最“暴力”的模式用于測試所有可能的組合。它同樣為每個攻擊位置分配獨立的Payload集合。攻擊時它會進行笛卡爾積運算即用第一個Payload集的每一個值去搭配第二個Payload集的每一個值以此類推。沿用上面的例子集束炸彈模式會生成四個請求usernameadminpassword123456usernameadminpasswordpasswordusernametestpassword123456usernametestpasswordpassword適用場景當你沒有任何先驗信息需要對用戶名和密碼進行完全的交叉組合測試時。這是最經(jīng)典的“暴力破解”模式。但它的缺點是請求量會爆炸式增長乘積關(guān)系。如果用戶名字典有1000個密碼字典有10000個那么總請求量就是1000萬。因此在使用此模式前務(wù)必精簡你的字典。回到Bruteforce_Test靶場由于我們事先不知道任何有效憑證需要對用戶名和密碼進行全組合測試因此Cluster bomb模式是我們的首選。接下來我們就基于此模式進行配置。3.3 第三步Payloads字典配置的藝術(shù)選好Cluster bomb模式后切換到Intruder的Payloads標簽頁。你會看到Payload set的編號因為我們標記了兩個位置所以會有Payload set 1和Payload set 2。Burpsuite默認會將第一個標記的位置username對應(yīng)set 1第二個password對應(yīng)set 2。#### 3.3.1 用戶名字典配置Payload set 1在Payload set 1的下拉菜單中選擇“Simple list”。這里就是粘貼或加載用戶名字典的地方。對于靶場練習(xí)一個精簡的、常見的用戶名列表就足夠了。你可以手動輸入也可以從文件加載。一個基礎(chǔ)的靶場用用戶名字典示例admin administrator test user root guest manager點擊“Paste”粘貼進去或者點擊“Load...”從文本文件載入。關(guān)鍵技巧來了在實戰(zhàn)中用戶名字典的構(gòu)建依賴于信息收集。你可以從網(wǎng)站robots.txt、頁面源碼注釋、注冊頁面、甚至公司員工郵箱命名規(guī)則如姓名縮寫中收集潛在用戶名。對于Bruteforce_Test我們上面這個簡單列表已經(jīng)覆蓋了靶場預(yù)設(shè)的有效用戶。#### 3.3.2 密碼字典配置Payload set 2在Payload set 2中同樣選擇“Simple list”。密碼字典是暴力破解的核心其質(zhì)量直接決定成敗。一個針對靶場和弱口令測試的基礎(chǔ)密碼字典應(yīng)包括空密碼(空行)超弱口令password,123456,admin,test,12345678,qwerty,abc123與用戶名相同 這是一個Payload選項我們稍后配置。簡單變形password123,admin123,test123,123456789靶場預(yù)設(shè)密碼password123,test123,123456這是我們已知的答案用于驗證流程將以上密碼列表粘貼到Payload set 2中。#### 3.3.3 高級Payload處理巧用“密碼用戶名”規(guī)則很多系統(tǒng)存在用戶將密碼設(shè)為與用戶名相同的情況。在Cluster bomb模式下如果我們想測試這種組合不需要在密碼字典里為每個用戶名重復(fù)添加一次。Burpsuite提供了強大的“Payload Processing”功能。在Payload set 2密碼集的底部找到“Payload Processing”區(qū)域點擊“Add”。規(guī)則選擇Add prefix 前綴留空。再點擊“Add”添加第二條規(guī)則Fetch from request-User-defined location-Base64-encode? 不這里有個更直接的方法。更簡單的做法是使用“Recursive grep”功能但針對“密碼用戶名”這個需求最優(yōu)雅的配置其實在Payload set的類型里。我們可以為密碼集配置一個“Runtime file”類型的Payload然后在攻擊過程中動態(tài)生成密碼。但這對新手稍復(fù)雜。一個更直觀的“土辦法”是直接在你的密碼字典最前面添加一個特殊的占位符比如{USER}。然后在Payload Processing中添加一條規(guī)則Substitute 將{USER}替換為來自Payload set 1的當前用戶名。不過Burpsuite社區(qū)版的Payload Processing功能可能有限。對于靶場練習(xí)和大多數(shù)入門場景我建議采用一種更務(wù)實的方法將常見的用戶名也直接加入到密碼字典中。雖然這會讓密碼字典變大但在小規(guī)模測試中是可以接受的。你的密碼字典可以變成(空行) password 123456 admin test 12345678 qwerty abc123 password123 admin123 test123 123456789 # 直接把用戶名也當作密碼測試一遍 admin test user這樣當Cluster bomb運行時就會自然組合出usernameadmin, passwordadmin這樣的請求。實操心得字典管理是門學(xué)問。永遠不要用一個幾十MB的“萬能字典”開始爆破那會浪費大量時間并可能觸發(fā)防護。我的習(xí)慣是準備“三級字典”一級字典極精簡 10-20個最常用的用戶名和密碼用于快速試探目標是否存在極弱口令。二級字典場景化 根據(jù)目標類型OA系統(tǒng)、CMS、路由器整理的數(shù)百個針對性口令。三級字典綜合大字典 在確認目標無速率限制和鎖定策略后作為最后手段使用。 對Bruteforce_Test我們用一級字典就夠了。3.4 第四步發(fā)起攻擊與結(jié)果甄別所有配置完成后點擊Intruder界面右上角的“Start attack”按鈕。Burpsuite會彈出一個新窗口開始發(fā)送攻擊請求。攻擊窗口的表格會實時顯示每個請求的序號、Payload組合、狀態(tài)碼、響應(yīng)長度、響應(yīng)時間等信息。我們的核心任務(wù)就是從這海量的“失敗”請求中找出那個“成功”的請求。如何甄別主要看以下幾個列狀態(tài)碼Status 登錄成功和失敗返回的HTTP狀態(tài)碼可能不同。常見的是失敗返回200帶錯誤信息成功可能返回302重定向到后臺或者返回200但內(nèi)容不同。但這并非絕對很多應(yīng)用成功失敗都返回200。響應(yīng)長度Length這是最常用、最可靠的判斷指標。登錄失敗的頁面通常會顯示“用戶名或密碼錯誤”等固定文本因此響應(yīng)長度是固定的。而登錄成功的頁面可能會顯示用戶昵稱、跳轉(zhuǎn)鏈接或不同的歡迎語導(dǎo)致響應(yīng)長度與失敗頁面顯著不同。在攻擊結(jié)果表中點擊“Length”列進行排序長度與眾不同的那個請求極有可能就是成功的。響應(yīng)內(nèi)容 直接查看響應(yīng)Response的Raw數(shù)據(jù)搜索“歡迎”、“登錄成功”、“dashboard”等關(guān)鍵詞或者對比失敗響應(yīng)的HTML結(jié)構(gòu)。在我們的靶場攻擊中當你看到有一個請求的響應(yīng)長度與其他絕大多數(shù)請求明顯不同時點擊查看其響應(yīng)內(nèi)容你大概率會看到“Login Successful! Welcome, admin.”這樣的字樣。同時查看該請求的Payload列你會發(fā)現(xiàn)它使用的就是usernameadmin和passwordpassword123或其他有效組合。恭喜你至此你已經(jīng)成功使用Burpsuite的Cluster bomb模式完成了對Bruteforce_Test靶場的暴力破解。4. 四種攻擊模式在靶場上的對比實戰(zhàn)為了讓你徹底理解這四種模式的區(qū)別我們最好在同一個靶場上用不同的模式各操作一次對比其過程和結(jié)果。4.1 Sniper模式實戰(zhàn)已知用戶名的密碼爆破假設(shè)我們通過某種方式比如頁面提示、默認配置得知靶場的有效用戶名之一是admin。我們的目標就變成了爆破admin的密碼。抓包與標記 像之前一樣抓取登錄請求。但這次我們只標記password參數(shù)。即usernameadminpassword§bbb§。username參數(shù)保持為固定的admin不添加§符號。選擇模式 在Positions標簽頁攻擊模式選擇“Sniper”。配置Payload 切換到Payloads標簽頁現(xiàn)在你只有一個Payload set針對password位置。載入你的密碼字典可以比之前Cluster bomb用的密碼字典更大一些因為現(xiàn)在只需要遍歷密碼。發(fā)起攻擊 點擊Start attack。觀察結(jié)果通過響應(yīng)長度差異找到正確的密碼password123。這個過程中請求總數(shù)等于你的密碼字典的行數(shù)。效率比Cluster bomb高得多。4.2 Battering ram模式實戰(zhàn)測試用戶名密碼相同這個模式在靶場中可能無法直接成功因為我們的預(yù)設(shè)賬戶密碼并不相同。但我們可以用它來測試“用戶名密碼相同”這個假設(shè)。抓包與標記 同時標記username和password兩個參數(shù)。選擇模式 選擇“Battering ram”。配置Payload 只有一個Payload set。載入一個用戶名列表例如[‘a(chǎn)dmin’ ‘test’ ‘user’ ‘root’]。發(fā)起攻擊 系統(tǒng)會生成admin/admin,test/test,user/user,root/root四個請求。在我們的靶場中這些組合都會失敗響應(yīng)長度一致。這告訴我們靶場不存在用戶名密碼相同的賬戶。4.3 Pitchfork模式實戰(zhàn)使用成對憑證列表假設(shè)我們通過信息收集得到一份疑似有效的用戶名密碼對列表例如從其他泄露的類似系統(tǒng)中獲取admin:admin888 test:test999 user:pass2024 administrator:Password123抓包與標記 同時標記username和password。選擇模式 選擇“Pitchfork”。配置PayloadPayload set 1: 載入用戶名列表[‘a(chǎn)dmin’ ‘test’ ‘user’ ‘a(chǎn)dministrator’]Payload set 2: 載入密碼列表[‘a(chǎn)dmin888’ ‘test999’ ‘pass2024’ ‘Password123’]必須確保兩個列表的順序一一對應(yīng)發(fā)起攻擊 Burpsuite會生成四個請求admin/admin888,test/test999,user/pass2024,administrator/Password123。在我們的靶場中前三個都會失敗因為密碼不匹配。這個模式驗證了我們的“撞庫”列表對此靶場無效。4.4 Cluster bomb模式實戰(zhàn)完全未知的暴力破解這就是我們最開始詳細演練的模式。它不依賴任何先驗信息用用戶名字典和密碼字典進行全組合測試。請求總量 用戶名字典大小 × 密碼字典大小。在靶場的小字典下瞬間完成在實戰(zhàn)的大字典下可能需要極長時間并可能觸發(fā)警報。通過這四種模式的對比操作你應(yīng)該能深刻體會到選擇攻擊模式的本質(zhì)是基于你對目標了解多少信息。信息越多攻擊就可以越精準模式選擇就越具體。5. 高級技巧與實戰(zhàn)避坑指南掌握了基本操作我們來看看如何提升成功率和規(guī)避風(fēng)險。這些技巧在實戰(zhàn)中至關(guān)重要。5.1 利用Grep-Match和Grep-Extract自動化識別手動看長度和狀態(tài)碼畢竟效率低。Intruder提供了“Grep-Match”和“Grep-Extract”功能可以自動從響應(yīng)中提取信息并做標記。Grep-Match匹配關(guān)鍵詞在Intruder的Options標簽頁找到“Grep-Match”區(qū)域。點擊“Add”輸入登錄失敗頁面特有的字符串比如“Login Failed”、“Invalid”、“錯誤”。攻擊運行時如果響應(yīng)中包含這些字符串該請求對應(yīng)的“Grep-Match”列會被打勾。那么沒有打勾的請求就可能是成功的。這能幫你快速篩選。同樣你也可以添加成功的關(guān)鍵詞如“Welcome”、“Logout”、“管理后臺”來直接標記成功請求。Grep-Extract提取關(guān)鍵信息有時成功登錄后頁面會包含一些獨特信息比如用戶ID、會話令牌、郵箱片段。在“Grep-Extract”區(qū)域點擊“Add”Burpsuite會讓你選擇一個之前的響應(yīng)作為樣本。在樣本響應(yīng)中用鼠標選中你想提取的信息比如“Welcome,admin”中的adminBurpsuite會自動生成提取規(guī)則通?;谇昂蟮奈谋?。攻擊時它會嘗試從每個響應(yīng)中提取這個信息并顯示在結(jié)果表的“Grep-Extract”列。這對于批量測試時快速獲取成功憑證非常有用。5.2 應(yīng)對防護機制速率限制與賬戶鎖定真實的網(wǎng)站絕不會像靶場這樣“躺平”。常見的防護有速率限制Rate Limiting 單位時間內(nèi)來自同一IP的登錄請求過多會被暫時禁止或要求輸入驗證碼。賬戶鎖定Account Lockout 連續(xù)多次登錄失敗后該賬戶會被鎖定一段時間。應(yīng)對策略降低頻率 在Intruder的Options - “Request Engine”中可以設(shè)置請求間隔Throttle。例如設(shè)置為500毫秒即每0.5秒發(fā)一個請求這能有效繞過簡單的速率限制。使用代理池 在“Request Handling”中配置上游代理Upstream Proxy Servers將請求通過多個不同的代理IP發(fā)出分散請求來源?!暗吐佟惫?結(jié)合速率限制和超大字典將攻擊時間拉長到數(shù)小時甚至數(shù)天模擬正常用戶的零星失敗登錄。優(yōu)先測試弱口令 使用前面提到的“三級字典”策略先用極小的字典試探避免一上來就觸發(fā)鎖定策略。如果發(fā)現(xiàn)某個賬戶幾次失敗后就無法登錄響應(yīng)內(nèi)容變化則將其從字典中暫時移除標記為“可能被鎖定”。識別鎖定響應(yīng) 將“您的賬戶已被鎖定請30分鐘后重試”這類信息添加到Grep-Match中以便快速識別哪些賬戶觸發(fā)了鎖定從而調(diào)整策略。5.3 字典的優(yōu)化與生成字典是暴力破解的靈魂。除了從網(wǎng)上下載現(xiàn)成的字典自己生成針對性字典是高級玩家的必備技能?;谀繕说淖值渖晒久?產(chǎn)品名組合 如果目標是某公司系統(tǒng)將公司名、產(chǎn)品名、品牌名與常見數(shù)字后綴2024, 123, 888、簡單變形公司名首字母大寫后加!或組合。個人信息組合 通過社工收集到的目標員工姓名、生日、電話號碼、車牌號等進行組合變換。可以使用Crunch、Cewl等工具。Cewl是一個可以爬取指定網(wǎng)站并生成基于其內(nèi)容的關(guān)鍵詞列表的工具這些關(guān)鍵詞常被用作密碼。使用Hashcat規(guī)則進行變形你可以準備一個基礎(chǔ)密碼種子文件如passwordadmin然后使用Hashcat的規(guī)則功能對種子進行大量的變形大小寫轉(zhuǎn)換、前后加數(shù)字、符號替換等生成海量的變異密碼字典。雖然Burpsuite Intruder本身不支持規(guī)則但你可以先用其他工具生成最終字典再導(dǎo)入。字典去重與排序合并多個字典后一定要用sort -u命令Linux或相關(guān)工具去重。將最有可能成功的密碼如password123Admin2024放在字典文件的開頭以提高早期命中的概率。6. 完整實戰(zhàn)復(fù)盤與延伸思考讓我們回到Bruteforce_Test靶場進行一次完整的、帶有策略的復(fù)盤攻擊。攻擊假設(shè)我們對靶場一無所知。攻擊目標找出至少一對有效登錄憑證。策略選擇采用“低慢速”Cluster bomb攻擊先小后大。步驟一信息收集觀察登錄頁面無驗證碼無錯誤次數(shù)提示。初步判斷防護較弱。步驟二準備極精簡字典用戶名字典users.txt(5個):admin,test,user,administrator,root密碼字典pass_top50.txt(50個): 包含空密碼、123456、password、admin、test、12345678、qwerty以及它們的常見變形123、2024后綴等。步驟三配置攻擊抓包標記username和password。攻擊模式Cluster bomb。Payload set 1 載入users.txt。Payload set 2 載入pass_top50.txt。Options - Grep-Match添加“Login Failed” (假設(shè)失敗頁面包含此文本)。Options - Request Engine: Throttle 設(shè)置為1000毫秒1秒1次。步驟四執(zhí)行與觀察點擊攻擊??傉埱髷?shù) 5 * 50 250個以每秒1個的速度大約4分鐘跑完。 在攻擊結(jié)果表中我們很快發(fā)現(xiàn)有幾個請求的“Grep-Match”列是空的且長度不同。查看響應(yīng)確認找到了admin/password123和test/test123。步驟五攻擊延伸如果我們第一次沒有用Top50密碼字典成功下一步不是盲目擴大密碼字典。而是分析失敗響應(yīng) 是否所有賬戶的失敗響應(yīng)都一樣有沒有某個賬戶失敗提示不同如“密碼錯誤” vs “用戶不存在”這可以幫助我們篩選出存在的用戶。切換模式 如果通過響應(yīng)差異找到了一個存在的用戶例如admin則立即停止Cluster bomb改用Sniper模式針對admin用戶使用更大的密碼字典進行爆破。社會工程學(xué) 思考靶場可能使用的密碼。如果是教學(xué)靶場密碼很可能就是password123、test123這類。將其加入字典優(yōu)先級。通過這個完整的流程你將暴力破解從一個無腦的“跑字典”工具變成了一個需要觀察、分析、調(diào)整策略的智力活動。Burpsuite的Intruder模塊提供的四種攻擊模式和豐富的配置選項正是為了支持這種靈活的測試思路。最后記住一點所有這些技術(shù)和工具僅限用于你擁有明確書面授權(quán)測試的系統(tǒng)或像Bruteforce_Test這樣的本地學(xué)習(xí)靶場。未經(jīng)授權(quán)的攻擊是違法行為。將你的技能用于安全建設(shè)、漏洞挖掘和防護提升才是正確的道路。