构建cn域并对zhimajihua.cn域进行委派 在cn域(CN Domain)DNS主机上编辑主配置文件 [root@cnDNS ~]# vim /etc/named.conf options {...memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; #cn域旗下有千万以上的被委派域...3H ) ; minimum NS dns1 zhimajihua NS zmjhdns #注意,必须添加被委派域的...NS记录及A记录,如果被委派的目标域有从服务器也需要添加相应的NS记录和A记录 zhimajihua NS zmjhdns2 dns1 A 192.168.1.20...3H ) ; minimum NS dns1 cn NS cndns #记录委派的
委派是域中的一种安全设置,可以允许某个机器上的服务代表某个用户去执行某个操作,主要分为三种: 1、非约束性委派 2、约束性委派 3、基于资源的约束性委派 这篇文章主要对这三种委派方式相关的攻击进行详解...约束委派(Constrained Delegation)即 Kerberos 的扩展协议 S4U2Proxy,服务账号只能获取某用户的 TGS ,从而只能模拟用户访问特定的服务,这也相对应非约束委派更安全一些...,对 Kerberos 协议进行拓展,引入了 S4U (S4U2Self / S4U2proxy), 运行服务代表用户向 KDC 请求票据。...基于资源的约束委派攻击利用 通过利用基于资源的约束委派攻击,我们能够使普通域用户以域管理员身份访问远程计算机 CIFS 等服务,实现本地权限提升。...至于为什么是机器账户,而不能是普通用户的账户,因为攻击的时候会利用到 S4U2Self 协议,而它只适用于具有 SPN 的账户,普通账户是没有 SPN 的,而机器账户是有的。
委派是域中的一种安全设置,可以允许某个机器上的服务代表某个用户去执行某个操作,在域中只有机器帐户何服务帐户拥有委派属性,也就是说只有这两类帐户可以配置域委派,分为三种: 非约束委派 约束委派 基于资源的约束性委派...MS-RPRN(Print System Remote Protocol,打印系统远程协议)中RpcRemoteFindFirstPrinterChangeNotification(Ex)方法可以强制任何运行了...但是,Service 1 没有来自用户的可转发 TGT ,因此不能通过非约束委派中转发 TGT 的方式执行委派。...设置约束委派 设置域机器WIN7-PC约束委派,设置对DC的CIFS服务进行委派 设置委派的机器用户或者服务用户的userAccountControl属性会设置TRUSTED_TO_AUTH_FOR_DELEGATION...,msDS-AllowedToDelegateTo属性会设置成委派的服务(如cifs) 通过Adfind.exe查询域中配置约束委派的账户 # 查询域中配置约束委派的机器账户 AdFind.exe
目录 一、前言 二、双亲委派 2.1、为什么需要双亲委派 2.2、双亲委派的实现 三、破坏双亲委派 3.1、为什么需要破坏双亲委派?...前段时间,笔者同事提出了一个关于类加载器破坏双亲委派的问题,以我们常见到的数据库驱动Driver为例,为什么要实现破坏双亲委派,下面一起来重温一下。...附上三者的关系: 图片 2.2、双亲委派的实现 双亲委派的实现其实并不复杂,其实就是一个递归,我们一起来看一下ClassLoader里的代码: protected Class实现是由服务商提供的,由系统类加载器加载,这个时候就需要启动类加载器来委托子类来加载Driver实现,从而破坏了双亲委派,这里仅仅是举了破坏双亲委派的其中一个情况。...3.2、破坏双亲委派的实现 我们结合Driver来看一下在spi(Service Provider Inteface)中如何实现破坏双亲委派。
前段时间,笔者同事提出了一个关于类加载器破坏双亲委派的问题,以我们常见到的数据库驱动Driver为例,为什么要实现破坏双亲委派,下面一起来重温一下。...2.2、双亲委派的实现 双亲委派的实现其实并不复杂,其实就是一个递归,我们一起来看一下ClassLoader里的代码: protected Class<?...null) { long t0 = System.nanoTime(); try { // 递归,双亲委派的实现...下文件,而其实现是由服务商提供的,由系统类加载器加载,这个时候就需要启动类加载器来委托子类来加载Driver实现,从而破坏了双亲委派,这里仅仅是举了破坏双亲委派的其中一个情况。...3.2、破坏双亲委派的实现 我们结合Driver来看一下在spi(Service Provider Inteface)中如何实现破坏双亲委派。
Launcher启动类 本文是双亲委派机制的源码分析部分,类加载机制中的双亲委派模型对于jvm的稳定运行是非常重要的 不过源码其实比较简单,接下来简单介绍一下 我们先从启动类说起 有一个Launcher...而且,他们也都是ClassLoader的实现类 ? 看下ExtClassLoader的创建中的关键几步 ? 也在看下AppClassLoader的创建中的关键几步 ?...ps:启动 类加载器 是虚拟机的一部分,可能c/c++/java实现的,所以不是java语言的一部分 所以对于java本身来说,可以说他是不存在的,但是JVM是知道他的 所以说,此处为null...显然这就完成了一整个的双亲委派的类加载模式 ?...每个层级都会向上传递类加载请求,只有上层 父 类加载器调用失败,才会自己尝试加载 双亲委派机制的意义重大,带来了更高的安全性等优点 不过他的实现逻辑却是的确很简单 一个loadClass
配置父域服务器 在父域服务器其上,仅需配置区域解析库文件,添加对应解析记录即可 [root@Centos6 ~]# vim /var/named/zhimaji...
redteam.red 靶场 委派攻击分类: 1、非约束性委派 2、约束性委派 3、基于资源的约束性委派 关于约束委派与非约束委派 委派(Delegation)是指将用户或计算机帐户的权限授予其他用户或计算机帐户...其中,Windows中的委派分为两种类型:非约束委派和约束委派。...这意味着该帐户无法将委派权限向下传递给其他服务,因此更加安全。 总的来说,如果需要在Windows环境中使用委派功能,建议使用约束委派而不是非约束委派,以提高系统和数据的安全性。...横向移动-原理利用-约束委派&非约束委派 非约束委派 原理: 机器A(域控)访问具有非约束委派权限的机器B的服务,会把当前认证用户(域管用户)的的TGT放在ST票据中, 一起发送给机器B,机器B会把...约束委派(不需要与与域控建立连接) 原理: 由于非约束委派的不安全性,微软在windows server 2003中引入了约束委派,对Kerberos协议进行了拓展, 引入了SService for
约束委派 接上述的非约束委派,由于非约束委派的不安全性,微软在windows2003中发布了约束委派的功能。...这里包括一组名为S4U2Self(Service for User to Self)和S4U2Proxy(Service for User to Proxy)的Kerberos协议扩展。...同时注意forwardable字段,有forwardable标记为可转发的是能够通过S4U2Proxy扩展协议进行转发的,如果没有标记则不能进行转发。...为win2016用户配置约束委派,做win2 019机器的cifs服务的委派 图片 图片 此时应用设置后,已在域中完成了win2016用户对win2019机器的cifs服务的委派 发现约束委派...,委派了win2019机器的cifs服务 攻击利用: 域用户存在约束委派: kekeo.exe结合存在约束委派的域用户明文密码申请可转发的TGT票据 kekeo # tgt::ask /user:win2016
双亲委派模型(Parents Delegation Model) 类加载器 启动类加载器 拓展类加载器 应用程序类加载器 注意: 不是用继承,而是用组合去实现 参考 详谈双亲委派机制
继续再次加载Application ClassLoader 应用类加载器,即系统即在此,加载当前应用下的类 最后再次加载ClassLoader类 双亲委派模型 该模型是先检查指定名称的类是否已经加载过,
类加载器双亲委派模型图 双亲委派模型构成 启动类加载器 扩展类加载器 应用程序类加载器 自定义类加载器 双亲委派模型工作过程是 如果一个类加载器收到类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器完成...为什么需要双亲委派模型?...如果没有双亲委派,那么用户是不是可以自己定义一个java.lang.Object的同名类、java.lang.String的同名类,等等,并把它放到ClassPath中,那么类之间的比较结果及类的唯一性将无法保证...因此,双亲委派模型可以防止内存中出现多份同样的字节码。
双亲委派 ClassLoader 传递性 使用调用者 Class 对象的ClassLoader加载。
本节我们使用代码实现HTTP的POST协议流程。任何HTTP服务器都会支持客户端将文件上传,该功能的实现往往要走POST协议流程。...为了使用代码实现该协议,首先需要一个目的HTTP服务器,我选择iPhone版本的福昕pdf阅读器,它支持通过POST协议将文件从电脑上传到手机,在打开其上传功能后,在电脑输入相应网址就能看到如下画面:...点击”选择文件“按钮,然后选择要上传的文件,最后点击”upload”按钮,那么浏览器就会执行POST协议实现数据上传。...我们先通过抓包的方式了解POST协议数据包的结构,在执行文件上传并抓包后,wireshark抓到的数据包如下: ?...接下来我们看看如何使用代码实现简单的POST功能,首先要实现的是MIME这部分数据的封装: package Application; import java.util.Arrays; public
最初看到这个“双亲委派”四个字的时候,我是接受的。当时也没什么多余想法,看到名词就感觉这大概就是最权威的。 但,最近我开始怀疑这样的翻译了。...双亲委派?你委派给谁?双亲?双亲又是什么?...“双亲委派”这个词估计也不是咱自己生造的,肯定也是从洋文中翻译来的。 让我们去找找洋文中一般是怎么叫这种机制的吧。...这个显然无法翻译成“双亲”啊,即使翻译也应该是 “父委托模型” 或 “父委派模型”。...还不如叫“啃老模型”,如果要正式一点,那建议是:“父委托模型”或“父委派模型”。
为什么要搞双亲委派?...—— 主要是为了安全问题双亲委派模型源码,java.lang.ClassLoader 的核心方法 loadClass() 的实现:public abstract class ClassLoader {...> findLoadedClass0(String name); // 本地类}1.1、魔术.note委派机制的流程图:
实现这个动作的代码模块称为“类加载器”。...,这些类加载器都由 Java语言实现,独立于虚拟机外部,并且全部继承自 java.lang.ClassLoader。...双亲委派模型对于保证 Java程序的稳定运作很重要,但它的实现非常简单,实现双亲委派代码都集中在 java.lang.ClassLoader 的 loadClass() 方法中,如下,逻辑简单清晰,先检查是否已经被加载过...双亲委派模型并不是一个强制性的约束模型,而是 Java设计者推荐给开发者的类加载器实现方式。...目前为止,双亲委派的具体逻辑就实现在 loadClass方法之中。
Tomcat通过自定义类加载器WebAppClassLoader打破双亲委派,即重写了JVM的类加载器ClassLoader的findClass方法和loadClass方法,以优先加载Web应用目录下的类...双亲委派机制的各子加载器都能通过父加载器去加载类,于是考虑把需共享的类放到父加载器的加载路径。 应用程序即是通过该方式共享JRE核心类。...线程上下文加载器不仅仅可以用在Tomcat和Spring类加载的场景里,核心框架类需要加载具体实现类时都可以用到它,比如我们熟悉的JDBC就是通过上下文类加载器来加载不同的数据库驱动的。
简介 委派 在域中如果出现A使用Kerberos身份验证访问域中的服务B,而B再利用A的身份去请求域中的服务C,这个过程就可以理解为委派 例: User访问主机S2上的HTTP服务,此时要想完整的使用...非约束委派 非约束委派Kerberos中实现时,User会将自KDC拿到的TGT发送给访问的服务机器Service1,Service1再通过拿到手的TGT票据去申请访问其他域内服务,Service1在拿到用户的...下面对非约束委派进行复现利用 非约束委派配置 setspn -U -A MSSQLvc/mssql.vulntarget.com:1433 win2016 当DC配置SPN给域用户Win2016时,在域内将可产生对域用户的委派...,我们可以看到,域管理员勾选win2016用户的委派-信任此用户作为任何服务的委派时,将会造成非约束委派的问题。...域用户的非约束委派攻击 倘若发现存在非约束委派的用户,这时,我们可以在域内所有可以登陆此用户的域内机器上尝试非约束委派攻击,获取其缓存的服务账号票据,并期望获得域控的票据。