131-横向移动-Kerberos攻击SPN扫描WinRMWinRSRDP

news2025/1/11 1:56:00

1、RDP协议

        Remote Desktop Protocol 远程桌面协议通常开放3389 ,Windows上面使用mstsc就可以弹出最常见的远程桌面连接方式,一般都是使用明文进行连接其实还可以使用hash进行

        在内网中使用RDP协议一般是需要进行代理转发或者建立节点的

端口扫描

  • shell命令

        tasklist /svc | find "TermService" # 找到对应服务进程的PID

        netstat -ano | find "PID值" # 找到进程对应的端口号

  • 或者使用cs自带的进行扫描

明文连接:

        mstsc /console /v:192.168.3.32 /admin

hash:

        mimikatz privilege::debug (这一步结果是OK才可以)

        mimikatz sekurlsa::pth /user:administrator /domain:192.168.3.32 /ntlm:518b98ad4178a53695dc997aa02d455c "/run:mstsc.exe /restrictedadmin" #mimikatz使用HASH连接

        使用hash就需要用到这个mimikatz,但是我用自己的宿主机去运行mimikatz好像有点问题,只用用虚拟机win7去运行执行命令连接虚拟靶机,可能是mimikatz的版本不匹配吧。

        另外同时想要使用hash值连接远程桌面,不单单是本地要支持Restricted Admin Mode,对端也要支持Restricted Admin Mode。

        想要知道支不支持这个hash连接,可以使用命令来进行测试,如果当前系统支持Restricted Admin mode,那么可以直接弹出远程桌面,如果不支持则会弹出远程桌面的参数说明。(命令: mstsc.exe /restrictedadmin)

        然后特别注意,我之前没怎么玩过mimikatz,这个东西很注意空格,复制进去一定要注意空格再执行,我试了几遍出错发现是空格的原因。。。

我这里运行出来老是爆一个警告,好像是命令输错了一样。。。

2、WinRM&WinRS

        WinRM 是一个基于Web服务管理(WS-Management)标准的远程管理框架,它允许管理员从远程位置执行管理任务。WinRS 是WinRM的一个组件,它提供了一个基于PowerShell的远程命令行界面。        

        WinRS 允许用户通过PowerShell脚本或命令行工具远程执行命令和脚本。WinRS 是PowerShell的一个扩展,它使得PowerShell的远程功能更加强大和灵活。

        WinRM 和 WinRS 通常一起使用,WinRS 提供了WinRM的一个用户友好的界面。要使用这些工具,你需要在目标系统上启用WinRM服务,并且可能需要配置防火墙规则以允许远程连接。在Windows 10和Windows Server 2016及更高版本中,WinRM 默认是启用的。在旧版本的Windows中,你可能需要手动安装和配置WinRM。

        如果想要利用WinRM服务,并且让winrm命令行工具执行操作,那么通信双方必须同时安装并配置好Windows远程管理。

        同时winrs适用于Windows server 2008及Windows 7 以后的操作系统上并自动与操作系统一同安装,但是只有在Windows server 2008以上的操作系统winrs服务才会自启动,其它的都是需要手动开启的。

        不过通过验证Windows 2008以上版本都是自动开启默认状态,Windows 7则必须手动开启,同时Windows server 2012之后的版本默认开启同时运行远程任意主机来管理。

  • 查看WinRM监听器配置情况

Address:表示监听器所监听的地址。

Transport:用于指定用于发送和接收 WS-Management 协议请求和响应的传输类型,如 HTTP 或 HTTPS,其默认值为 HTTP。

Port:表示监听器所监听 TCP 端口。

Hostname:正在运行 WinRM 服务的计算机的主机名。该值必须是完全限定的域名、IPv4 或 IPv6 文本字符串或通配符。

Enabled:表示是启用还是禁用侦听器,其默认值为 True,表示启用。

URLPrefix:用于指定要在其上接受 HTTP 或 HTTPS 请求的 URL 前缀。例如,如果计算机名称为 SampleMachine,则 WinRM 客户端将在目标地址中指定 https://SampleMachine/。默认 URL 前缀为 "wsman"。

CertificateThumbprint:用于指定服务证书的指纹。

ListeningOn:用于指定侦听器使用的 IPv4 和 IPv6 地址。

命令:

winrm e winrm/config/listener 或 winrm enumerate winrm/config/listener

winrm get winrm/config #查看具体配置

我这个是winerver2012

使用winrm quickconfig 启动WinRM服务

其他的配置命令

使用 PowerShell 查询 WinRM 状态:Get-WmiObject-Class win32_service | Where-Object{$_.name -like "WinRM"}
开启 WinRM 远程管理:Enable-PSRemoting–force
设置 WinRM 自启动:Set-ServiceWinRM-StartModeAutomatic
对 WinRM 服务进行快速配置,包括开启 WinRM 和开启防火墙异常检测, HTTPS传输, 5986端口:winrm quickconfig -transport:https    
为 WinRM 服务配置认证:winrm set winrm/config/service/auth @{Basic="true"}
修改 WinRM 默认端口:winrm set winrm/config/client/DefaultPorts @{HTTPS="8888"}
为 WinRM 服务配置加密方式为允许非加密:winrm set winrm/config/service @{AllowUnencrypted="true"}
设置只允许指定 IP 远程连接:winrm set winrm/config/Client @{TrustedHosts="192.168.10.*"}
设置允许所有 IP 远程连接:winrm set winrm/config/Client @{TrustedHosts="*"}

如果遇到拒绝访问就是权限的问题,换成管理员的账号就好了,如果提示需要将网络由公用改为域或专用,直接在网络设置中找到以太网将公用改为专用即可(我的Windows7 就遇到了这个问题,然后我没搞成功,我也不知道什么原因实在我是设置了专有网络了可能是我设置的不正确吧。。。不过winserver2012是默认开启的)

默认情况下winrm使用5985端口,所以可以先扫描端口开放情况确认是否开启(本机和靶机都要开启)

然后输入

winrm quickconfig

winrm set winrm/config/Client @{TrustedHosts="*"}

winrs -r:[ip] -u:[username] -p:[password]

还可以获取交互式shell

能执行命令了上线cs无疑简单了许多

3、SPN&kerberos

SPN:

        服务主体名称(SPN)是Kerberos客户端用于唯一标识给特定Kerberos目标计算机的服务实例名称。Kerberos身份验证使用SPN将服务实例与服务登录帐户相关联。如果在整个林中的计算机上安装多个服务实例,则每个实例都必须具有自己的SPN。如果客户端可能使用多个名称进行身份验证,则给定的服务实例可以具有多个SPN。例如,SPN总是包含运行服务实例的主机名称,所以服务实例可以为其主机的每个名称或别名注册一个SPN。

spn扫描:

        spn扫描也可以叫扫描Kerberos服务实例名称,在Active Directory环境中发现服务的最佳方法是通过“SPN扫描”。通过请求特定SPN类型的服务主体名称来查找服务,SPN扫描攻击者通过网络端口扫描的主要好处是SPN扫描不需要连接到网络上的每个IP来检查服务端口。SPN扫描通过LDAP查询向域控制器执行服务发现。由于SPN查询是普通Kerberos票据的一部分,因此如果不能被查询,但可以用网络端口扫描来确认。

        在活动目录中发现服务的最佳方法就是SPN扫描。SPN扫描通过请求特定SPN类型的服务主体名称来查找服务。与网络端口扫描相比,SPN扫描的主要特点是不需要通过连接网络中的每个IP地址来检查服务端口(不会因为触发内网中的IPS、IDS等设备的规则而产生大量的警告日志)。因为SPN查询是Kerberos票据行为的一部分,所以检测难度很大。

        由于SPN扫描是基于LDAP协议向域控制器进行查询的,所以,攻击者只需要获得一个普通的域用户权限,就可以进行SPN扫描。

        在域环境中,发现服务的最好办法就是通过”SPN扫描”。通过请求特定SPN类型服务主体名称来查找服务。

SPN格式:

SPN = serviceclass “/” hostname [“:”port] [“/” servicename]

serviceclass:标识服务类的字符串,例如Web服务的www

hostname:一个字符串,是系统的名称。这应该是全限定域名(FQDN)

port:一个数字,是该服务的端口号

servicename:一个字符串,它是服务的专有名称(DN),objectGuid,Internet主机名或全限定域名(FQDN)

注意: 服务类和主机是必需参数,但 端口和服务名是可选的,主机和端口之间的冒号只有当端口存在时才需要。

setspn -T niganm.hhh -q */* 扫描全部服务

CN=Computers那就是主机,CN=Users那就是在域用户下注册 CN=DC就是域控机

通过这个可以收集到哪些主机上开放了哪些服务的信息,但是这里显示的只有一些Windows相关的服务,第三方服务不会显示

Kerberos攻击:

Kerberos的加密类型

win+R 输入Secpol.msc在安全选项里可以找到

如果是RC4加密方式就可以逆向

此方式使用建立在没有获取到任何明文密码以及hash值的一种思路

工具GitHub - GhostPack/Rubeus: Trying to tame the three-headed dog.

不过这个工具没有编译只发行了源代码。。。我也不会编译C#语言的代码然后去网上看看怎么编译的

还好我之前下的有vs,用vs生成一下就可以了,使用那个Rubeus.csproj 作为入口

这个3请求的目的就是得到票据,因为只有发生了请求才会有票据的产生才可以判断是否采用的RC4加密还是其他的加密方式(这是手工判断的方式)

为了方便可以直接使用2用工具检测

我这里没有对应的环境。。。所以检测不出来和RC4加密有关的服务

如果有就使用mimikatz导出票据

mimikatz kerberos::list /export

然后将对应的RC4加密的服务票据找到,使用脚本进行(工具地址 GitHub - nidem/kerberoast)

python tgsrepcrack.py 字典.txt路径 票据文件名

能否成功看字典能不能跑出来密码,这里跑出来的就是明文密码

总结来说比较看运气是大部分横向移动都失效的情况下的一个办法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2065187.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实现AOP机制 + Spring总结

文章目录 1.目录2.SmartAnimal.java 接口(JDK代理必须有接口)3.SmartDog.java4.SmartAnimalAspect.java5.SunSpringApplicationContext.java1.在Bean的后置处理器之后使用动态代理2.完整代码 6.测试1.AppMain.java 调用被代理的类的方法2.结果 7.Spring底…

维特——六九轴陀螺仪传感器代码的移植方法

使用的是如图所示的这款陀螺仪,相比MPU6050,它可以做到Z轴不漂的效果。 官方给的代码是使用两个串口,一个用来和上位机通信,一个用来于该模块通信。在实际使用中,我们只需要单片机和该模块通信即可,所以我…

Centos安装Jenkins教程详解版(JDK8+Jenkins2.346.1)

本教程基于 JDK8 和 Jenkins2.346.1 JDK安装 下载OpenJDK8文件 wget https://mirrors.tuna.tsinghua.edu.cn/Adoptium/8/jdk/x64/linux/OpenJDK8U-jdk_x64_linux_hotspot_8u422b05.tar.gz解压到指定目录 # 创建目录 mkdir -p /usr/local/software# 解压文件到指定目录&#…

uniapp点击预览图片,两种效果

背景&#xff1a; 在使用uniapp框架中&#xff0c;我们对图片的展示需要点击放大展示(单张)&#xff1b;如果是多张图片&#xff0c;要支持左右滑动查看多张图片(多张)。 官网链接&#xff1a;点击跳转官网 一、单张&#xff0c;点击放大 代码&#xff1a; <template> …

Spring模块详解Ⅲ(Spring Expression Language (SPEL)和Spring JDBC)

目录 Spring Expression Language&#xff08;SpEL&#xff09;Spring Context 模块详解1. 什么是 Spring Context?2. ApplicationContext 的主要实现3. 国际化支持国际化消息文件使用 MessageSourceXML 配置&#xff1a;Java 配置&#xff1a; 使用国际化消息&#xff1a; 4.…

SwapPrompt(论文解读): Test-Time Prompt Adaptation for Vision-Language Models

2023(Neural IPS) 摘要 测试自适应 &#xff08;TTA&#xff09; 是无监督域自适应&#xff08;UDA&#xff09;中一种特殊且实用的设置&#xff0c;它允许源域中的预训练模型去适应另一个目标域中的未标记测试数据。为了避免计算密集型的骨干网络微调过程&#xff0c;因此利…

【技巧】-DNSlog外带文件

❤️博客主页&#xff1a; iknow181 &#x1f525;系列专栏&#xff1a; 网络安全、 Python、JavaSE、JavaWeb、CCNP &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐评论✍ 1.什么是DNSlog 我们都知道DNS就是将域名解析为ip&#xff0c;用户在浏览器上输入一个域名A.com&#x…

实现Nginx四层负载均衡

Nginx在1.9.0版本开始支持tcp模式的负载均衡&#xff0c;在1.9.13版本开始支持udp协议的负载&#xff0c;udp主要用于 DNS的域名解析&#xff0c;其配置方式和指令和http 代理类似&#xff0c;其基于ngx_stream_proxy_module模块实现tcp 负载&#xff0c;另外基于模块ngx_strea…

vue2版本空目录下创建新项目的方法2024

vue2版本空目录下创建新项目的方法2024 node -v npm -v vue -V 安装vue-cli 2.9版本的命令 npm install vue-cli -g 卸载vue2.x方法&#xff1a; npm uninstall vue-cli -g 设置 NPM 镜像 npm config set registry https://registry.npmmirror.com vue -V 报错时需设置环…

多进程和多线程基础概念LINUX

进程和程序的区别 程序是静态的&#xff0c;它是保存在磁盘上的指令的有序集合&#xff0c;没有任何执行的概念进程是一个动态的概念&#xff0c;它是程序执行的过程&#xff0c;包括了动态创建、调度和销毁的整个过程 并行&#xff1a;在 cpu 多核的支持下&#xff0c;实现物…

Git 的基本使用

1.创建 Git 本地仓库 仓库是进⾏版本控制的⼀个⽂件⽬录。我们要想对⽂件进⾏版本控制&#xff0c;就必须先创建⼀个仓库出来&#xff0c;例如下面代码创建了gitcode_linux的文件夹&#xff0c;之后再对其进行初始化。创建⼀个 Git 本地仓库对应的命令为 git init &#xff0c…

视频项目开发,EasyCVR视频融合平台为何成为关键驱动力

智慧类视频项目是基于多个系统融合&#xff0c;旨在实现更广泛联动功能&#xff0c;以满足智能化应用需求为基石的信息化项目。当前&#xff0c;智慧社区、智慧园区、智慧工厂乃至智慧城市等应用场景的需求日益增长。这些智慧项目的整合进程中&#xff0c;视频融合能力扮演着不…

ASP.NET Core 入门教程一 创建最小 API

构建最小 API&#xff0c;以创建具有最小依赖项的 HTTP API。 它们非常适合需要在 ASP.NET Core 中仅包括最少文件、功能和依赖项的微服务和应用。 本教程介绍使用 ASP.NET Core 生成最小 API 的基础知识。 启动 Visual Studio 2022 并选择“创建新项目”。 在“创建新项目”…

RabbitMQ 最新版 安装,配置,java接入使用(详细教程)

一 RabbitMQ下载 RabbitMQ 官网最新版下载&#xff1a; RabbitMQ: One broker to queue them all | RabbitMQ RabbitMQ依赖erlang-26.2.5.2-1.el7.x86_64.rpm下载&#xff1a; https://github.com/rabbitmq/erlang-rpm/releases/download/v26.2.5.2/erlang-26.2.5.2-1.el7.…

Information Processing Technician

信息处理技术员试题 🔥SeptemberZone 1.信息是一种() A.资源 B.物质 C.能量 D.载体 2.以下关于信息的表达中,不正确的选项是() A.一切数据都能产生信息 B.信息的产生、处理和传递依靠于物质和能量 C.同一信息在不同的时间可能具有不同的价值 D.信息的屡次使用不会使信息…

MD编辑器学习笔记

MD编辑器学习笔记 目录标题文本样式列表图片链接代码片数学公式表格部分总结 目录 目录是使用“[TOC](目录&#xff09;”&#xff0c;记住别忘了加上&#xff08;&#xff09;标题 使用#来确定标题&#xff0c;几个#就是几级标题。记住#后面要加上空格文本样式 tips: 在写正…

什么是制造业项目管理软件?适合制造企业的项目管理软件具备哪些特征

当前&#xff0c;我国的制造业呈现出稳步增长与风险并存的现象。经济构建以国内大循环为主体&#xff0c;国产替代的浪潮正在席卷国内制造业&#xff0c;越来越多的制造领域企业开始启动数字化变革来支撑企业的迅猛发展&#xff0c;进一步优化项目管理流程&#xff0c;促进研发…

Docker的概述及如何启动docker的镜像、远程管理宿主机的docker进程

一、概述&#xff1a; 1、Docker 是什么&#xff1f; Docker 是⼀个开源的应⽤容器引擎&#xff0c;可以实现虚拟化&#xff0c;完全采用“沙盒”机制&#xff0c;容器之间不会存在任何接口。 2、Docker 和虚拟机的区别&#xff1a; 1&#xff09;启动速度&#xff1a;Dock…

使用 Visual Studio 编辑器作为 DailyNotes 的 markdown 编辑器

DailyNotes 是我使用过的最优秀的日常笔记管理工具&#xff0c;为它配置一个好的 markdown 编辑器&#xff0c;可以大幅提升效率。 除了使用 Typora 作为 markdown 编辑器&#xff0c;Visual Studio Code 也是一个非常不错的选择&#xff0c;令人惊喜的是&#xff0c;它也支持…

React学习笔记(二)——react基础

目录 1. 受控表单绑定 2. React中获取DOM 3. 案例&#xff1a;B站评论 — 发表评论 3.1 B站评论案例 —— 核心功能实现 3.2 B站评论案例 — id处理和时间处理 3.3 B站评论案例 — 清空内容并重新聚焦 4. 组件通信 4.1 理解组件通信 4.2 父传子-基础实现 4.3 父传子-…