票据传递攻击(Pass the Ticket,PtT)】的更多相关文章

目录 黄金票据 生成票据并导入 查看票据 验证是否成功 黄金票据和白银票据的不同 票据传递攻击(PtT)是一种使用Kerberos票据代替明文密码或NTLM哈希的方法.PtT最常见的用途可能是使用黄金票据和白银票据,通过PtT访问主机相当简单. 关于Kerberos认证:Kerberos认证方式 现在我们有下面这种情况,域成员A获得了域中的 krbtgt 用户的 sid 值和哈希值,现在域成员A想利用票据传递攻击,访问域控服务器. 黄金票据 在认证过程中,客户端与KAS的通信会得到TGT认购权证…
票据传递攻击(PtT)是一种使用Kerberos票据代替明文密码或NTLM哈希的方法.PtT最常见的用途可能是使用黄金票据和白银票据,通过PtT访问主机相当简单. 1.ptt攻击的部分 就不是简单的NTLM认证了,它是利用Kerberos协议进行攻击的 之前介绍了Kerberos协议具体工作方法:Kerberos认证方式,在域中,简要介绍一下: 客户机将明文密码进行NTLM哈希,然后和时间戳一起加密(使用krbtgt密码hash作为密钥),发送给kdc(域控),kdc对用户进行检测,成功之后创建…
总结下PtH具体形式(wmicexec.powershell.msf等) 0x01 PtH攻击原理 && 黄金白银票据 PtH攻击原理 wiki  https://en.wikipedia.org/wiki/Pass_the_hash 写的也很清楚    其中重要的是windows使用系统API(LsaLogonUser)生成hash进行认证,而不是用明文,所以利用hash即可模拟用户登录进行操作.还有的是如果密码长度大于15就不存在LM Hash,从windows2008开始微软默认禁用…
最近又复习了一下内网的相关知识,把以前的整理了一下发出来做个记录. 0x01 哈希传递攻击概念 有一点内网渗透经验的都应该听说过哈希传递攻击,通过找到相应账户相关的密码散列值(LM Hash,NTLM Hash)来进行未授权登陆. 可参考Wikipedia的介绍,地址如下:https://en.wikipedia.org/wiki/Pass_the_hash 在域环境中,用户登录计算机时使用的大都是域账号,大量计算机在安装时会使用相同的本地管理员账号和密码,因此,如果计算机的本地管理员账号和密码…
背景知识 Windows 横向渗透的两种方式 1.hash传递攻击,通过传递NTLM-Hash,登录机器,简称PtH: 2.ticket传递攻击,通过传递kerberos的ticket,登录机器,简称PtT: 以上两种都是常见的域内或者叫做内网渗透的横向移动的常见手段. NTLM协议机制简述 在hash传递攻击中.传递的就是NTLMhash值,这里我们就要简述一下NTLM的过程. NTLM的诞生 早期SMB协议在网络上传递是明文的username和password,后来出现了简称为LM的局域网管…
Hash(Key) 获取 工具: Mimikatz 用法: .\mimikatz.exe privilege::debug #查看权限 sekurlsa::logonpasswords #获取hash和明文密码(如果可以的话) sekurlsa::ekeys #获取kerberos加密凭证 Hash(Key)传递 Mimikatz sekurlsa::pth /user:xxxxxxx /domain:xxxxxxx /ntlm:xxxxxxxxxxxx #hash传递 sekurlsa::pt…
所有的编程语言,都会讨论值传递问题. 通过一个js示例直观认识 //理解按值传递(pass by value)和按引用传递(pass by reference) //pass by value var a = 1; var b = a; //把a赋值给b a = 2;//修改a值 console.log(a,b)//返回 2 1 //pass by reference var a = {name:"小明"}; var b = a; a.name = "nike";…
Kerberos协议传送门:https://www.cnblogs.com/zpchcbd/p/11707302.html 1.黄金票据 2.白银票据…
MS14-068是密钥分发中心(KDC)服务中的Windows漏洞.它允许经过身份验证的用户在其Kerberos票证(TGT)中插入任意PAC(表示所有用户权限的结构).该漏洞位于kdcsvc.dll域控制器的密钥分发中心(KDC)中.用户可以通过呈现具有改变的PAC的Kerberos TGT来获得票证.. 利用过程:wmic qfe get hotfixid域控上查看补丁情况 发现没有安装补丁 使用whoami获得普通域成员用户的sid ms14-068.exe -u 域成员名@域名 -s 域…
目录 Windows认证方式 Windows本地认证 NTLM认证方式(工作组环境中) wiresharek抓包NTLMv2,使用Hashcat爆破 NTLM认证方式(域环境中) Kerberos认证方式 认证的应用 哈希传递攻击(PtH) 票据传递攻击(PtT) 在这之前,我们先了解几个基本的概念 SSPI (Security Service Provider Interface 或 Security Support Provider Interface) 安全服务提供接口,这是 Window…
mimikatz mimikatz是法国人Gentil Kiwi编写的一款Windows平台下的神器,它具备很多功能,其中最主要的功能是直接从 lsass.exe 进程里获取处于active状态账号的明文密码.mimikatz的功能不仅如此,它还可以提升进程权限,注入进程,读取进程内存等等,mimikatz包含了很多本地模块,更像是一个轻量级的调试器.作者主页:http://blog.gentilkiwi.com/ mimikatz 模块的使用需要提权,也就是需要本地的 administrato…
一.前言 横向渗透攻击技术是复杂网络攻击中广泛使用的一种技术,特别是在高级持续威胁(Advanced Persistent Threats,APT)中更加热衷于使用这种攻击方法.攻击者可以利用这些技术,以被攻陷的系统为跳板,访问其他主机,获取包括邮箱.共享文件夹或者凭证信息在内的敏感资源.攻击者可以利用这些敏感信息,进一步控制其他系统.提升权限或窃取更多有价值的凭证.借助此类攻击,攻击者最终可能获取域控的访问权限,完全控制基于Windows系统的基础设施或与业务相关的关键账户. 在这份白皮书中,…
---------------------------------------------- 本文参考自三好学生-域渗透系列文章 内网渗透之PTH&PTT&PTK PTH(pass-the-hash) pass-the-hash在内网渗透中是一种很经典的攻击方式,原理就是攻击者可以直接通过LM Hash和NTLM Hash访问远程主机或服务,而不用提供明文密码. pass the hash原理: 在Windows系统中,通常会使用NTLM身份认证 NTLM认证不使用明文口令,而是使用口令加…
0x01.Kerberos认证原理 Kerberos是一种认证机制.目的是通过密钥系统为客户端/服务器应用程序提供强大的可信任的第三方认证服务: 保护服务器防止错误的用户使用,同时保护它的用户使用正确的服务器,即支持双向验证.kerberos最初由MIT 麻省理工开发,微软从Windows 2000开始支持Kerberos认证机制,将kerberos作为域环境下的主要身份认证 机制,理解kerberos是域渗透的基础. 0x02. kerberos认证框架 kerberos机制中主要包含三个角色…
0x01 漏洞起源 说到ms14-068,不得不说silver ticket,也就是银票.银票是一张tgs,也就是一张服务票据.服务票据是客户端直接发送给服务器,并请求服务资源的.如果服务器没有向域控dc验证pac的话,那么客户端可以伪造域管的权限来访问服务器.所以ms14-068的来源和银票是息息相关的. 在mimikatz作者的ppt里面是这样描述的: 所以说这真的是一个大漏洞,允许域内任何一个普通用户,将自己提升至域管权限.微软给出的补丁是kb3011780.在server 2000以上的…
最近还是重新补一下cs的东西 0x01 Beacon命令 Beacon Commands =============== Command Description ------- ----------- argue Spoof arguments for matching processes blockdlls Block non-Microsoft DLLs in child processes browserpivot Setup a browser pivot session bypassu…
0x00 简介 Mimikatz 是一款功能强大的轻量级调试神器,通过它你可以提升进程权限注入进程读取进程内存,当然他最大的亮点就是他可以直接从 lsass.exe 进程中获取当前登录系统用户名的密码, lsass是微软Windows系统的安全机制它主要用于本地安全和登陆策略,通常我们在登陆系统时输入密码之后,密码便会储存在 lsass内存中,经过其 wdigest 和 tspkg 两个模块调用后,对其使用可逆的算法进行加密并存储在内存之中, 而 mimikatz 正是通过对lsass逆算获取到…
​文章首发于公众号<Z2O安全攻防>​ 直接公众号文章复制过来的,排版可能有点乱, 可以去公众号看. https://mp.weixin.qq.com/s/WMGkQoMnQdyG8UmSyrAGIg 前言 Windows认证一般包括本地认证(NTLM HASH)和域认证(kerberos). 认证的原理网上有很多文章.如果喜欢听视频课程的话,这里推荐倾旋师傅的分享课 https://www.bilibili.com/video/BV1S4411e7hr?spm_id_from=333.788…
0.背景 聆听了n1nty大佬(90后黑客代表)的谆谆指导,学习了n1nty大佬的基本操作,决定总结一下,做一个简要的读书笔记,也把之前自己记录的关于Windows的安全的一些博客能够串联起来.所以首先鸣谢:90后黑客代表n1nty大佬. 1.Kerberos的基本认证 1.1.NTLM的挑战认证 不啰嗦,直接说要点,server接到client的请求认证后,会回复16字节随机数据,也就是挑战.client使用自己生成的账号的NTLM的hash值对挑战数据进行某种加密运算,发送到server,s…
通过上一篇文章我们初步了解了Kerberos协议的工作过程,解决的两个问题 第一个问题:如何证明你本人是XXX用户的问题   由Authentication Server负责 第二个问题:提供服务的服务器如何知道你有权限访问它提供的服务.当一个Client去访问Server服务器上的某服务时,Server如何判断Client是否有权限来访问自己主机上的服务. 由Ticket Granting Server负责 针对Kerberos协议需要解决的第一个问题:如何证明你本人是XXX用户的问题.攻击者…
域委派 就是指将域内用户的权限委派给服务账号,使得服务账号能以用户的权限在域内展开活动. 在域中一般只有主机账号和服务账号才具有委派属性 主机账号:主机账号就是AD(活动目录)中Computers中的计算机账号 服务账号:一般都是起啥服务所用到的账号,啥apache iis sqlserver 很常见,也可以将域用户通过注册SPN成为服务账号 域委派一般分为:非约束委派(Unconstrained delegation) 和 约束委派(Constrained delegation) 非约束委派(…
0x00 前言 早在2018年3月前,我就开始了一场毫无意义的争论,以证明TrustedToAuthForDelegation属性是无意义的,并且可以在没有该属性的情况下实现“协议转换”.我相信,只要一旦启用约束委派(msDS-AllowedToDelegateTo不为空),它是否配置为使用“仅Kerberos”或“任何身份验证协议”并起作用. 我在Benjamin Delpy(@gentilkiwi)的帮助下开始了这段研究过程,他帮助修改了kekekeo以支持一种特定的攻击,这种攻击涉及在没有…
0x01.前言 NTLM使用在Windows NT和Windows 2000 Server或者之后的工作组环境中(Kerberos用在域模式下).在AD域环境中,如果需要认证Windows NT系统,也必须采用NTLM.较之Kerberos,基于NTLM的认证过程要简单很多.NTLM采用一种质询/应答(Challenge/Response)消息交换模式 0x02.LM hash & NTLM hash 假设我的密码是admin,那么操作系统会将admin转换为十六进制,经过Unicode转换后,…
Hash窃取与传递 NTHASH(NTLM) 在 Windows中, 存储的密码Hash就叫做 NTHash,也叫做 NTLM,其中NTLM 全称是 "NT LAN Manager",NTHash 是通过对密码明文进行十六进制和unicode转换,然后md4算法运算后得到(算法表示为MD4(UTF-16-LE(password)) ).这个 NTHash 就是存在 SAM 数据库里,能够直接被 mimikatz 抓取的 hash,也存在域控的 NTDS 文件中,使用这个 hash 可以…
1. 按值传递参数会有效率问题 默认情况下,C++向函数传入或者从函数传出对象都是按值传递(pass by value)(从C继承过来的典型特性).除非你指定其他方式,函数参数会用实际参数值的拷贝进行初始化,函数调用者会获得函数返回值的一份拷贝.这些拷贝由对象的拷贝构造函数生成.这使得按值传递(pass-by-value)变成一项昂贵的操作.举个例子,考虑下面的类继承体系(Item 7): class Person { public: Person(); // parameters omitte…
这是根据Hollis的直面java内容习得(有兴趣的可以加他微信公众号) 对于初学者来说,要理解java中的值传递很难理解,为什么说java只有值传递?那引用传递呢? java中的错误理解: 错误理解一:值传递和引用传递,区分的条件是传递的内容,如果是个值,就是值传递.如果是个引用,就是引用传递. 错误理解二:Java是引用传递. 错误理解三:传递的参数如果是普通类型,那就是值传递,如果是对象,那就是引用传递. 实参与形参 我们都知道,在Java中定义方法的时候是可以定义参数的.比如Java中的…
本文转载自公众号 Hollis 对于初学者来说,要想把这个问题回答正确,是比较难的.在第二天整理答案的时候,我发现我竟然无法通过简单的语言把这个事情描述的很容易理解,遗憾的是,我也没有在网上找到哪篇文章可以把这个事情讲解的通俗易懂.所以,就有了我写这篇文章的初衷.这篇文章中,我从什么是方法的实际参数和形式参数开始,给你讲解为什么说Java中只有值传递. 辟谣时间 关于这个问题,在StackOverflow上也引发过广泛的讨论,看来很多程序员对于这个问题的理解都不尽相同,甚至很多人理解的是错误的.…
出处:https://www.hollischuang.com/archives/2275 关于这个问题,在StackOverflow上也引发过广泛的讨论,看来很多程序员对于这个问题的理解都不尽相同,甚至很多人理解的是错误的.还有的人可能知道Java中的参数传递是值传递,但是说不出来为什么. 在开始深入讲解之前,有必要纠正一下大家以前的那些错误看法了.如果你有以下想法,那么你有必要好好阅读本文. 错误理解一:值传递和引用传递,区分的条件是传递的内容,如果是个值,就是值传递.如果是个引用,就是引用…
值传递 (pass by value),指针传递(pass by pointer),当发生函数调用时,需要给形参分配存储单元.当传递是对象时,要调用拷贝构造函数.而且指针最后析构时,要处理内存释放问题. 引用传递(pass by refenrence),在内存中没有产生形参.效率大大提高!也不用处理指针的析构问题. 通过以上分析,我们设计程序时应该尽量使用引用,少利用指针. 头文件声明 private: Ui::MainWindow *ui; void ReadArray(const char*…
转自:http://url.cn/5tL9F5D 值传递和引用传递 值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数. 引用传递(pass by reference)是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数,形参和实参总是指向同一个地址,形参指向哪里实参就会指向哪里. java中的基本数据类型和引用数据类型 java中的基本数据类型: 4种整数类型:b…