内网渗透-RDP&SPN
RDP连接
RDP通俗来说就是大家所熟知的3389端口
RDP使用明文密码连接:
windows:mstsc
mstsc.exe /console /v:IP /admin
linux:rdesktop IP:3389
RDP密文HASH连接
什么是SPN
Windows域环境是基于微软的活动目录服务工作的,它在网络系统环境中将物理位置分散、所属部门不同的用户进行分组,集中资源,有效地对资源访问控制权限进行细粒度的分配,提高了网络环境的安全性及网络资源统一分配管理的便利性。在域环境中运行的大量应用包含了多种资源,为资源的合理分组、分类和再分配提供了便利。微软给域内的每种资源分配了不同的服务主体名称(Service Principal Name, SPN)。
在使用Kerberos协议进行身份验证的网络中,必须在内置账号(NetworkService、LocalSystem)或者用户账号下为服务器注册SPN。对于内置账号,SPN将自动进行注册。但是,如果在域用户下运行服务,则必须为要使用的账号手动注册SPN。因为域环境中的每台服务器都需要在Kerberos身份验证服务中注册SPN,所以攻击者会直接向域控制器发送查询请求,获取其需要的服务的SPN,从而知晓其需要使用的服务资源在哪台机器上。
总之,若想使用Kerberos协议来认证服务,则必须正确配置SPN。
SPN的分类
SPN分为两种:一种注册在AD上机器帐户(Computers)下,也就是上面提到的内置账号,另一种注册在域用户帐户(Users)下
- 当一个服务的权限为Local System或Network Service,则SPN注册在机器帐户(Computers)下。
- 当一个服务的权限为一个域用户,则SPN注册在域用户帐户(Users)下。
利用SPN扫描发现域内服务的好处是,利用SPN扫描不需要连接到网络中的每个IP来检查服务端口,与服务所在的机器没有直接联系,隐蔽性高。SPN扫描通过域控制器的LDAP进行服务查询,由于这是Kerberos票据行为的一部分,所以很难被检测到。
SPN利用
探针
如果要查找特定服务可以使用
setspn */* | findstr "mysql"
请求
使用minikatz导出
爆破密码