当前位置: 首页 > news >正文

跨域攻击分析和防御(上)

点击星标,即时接收最新推文

c79e6108ff81608e9474a6319831073d.png

跨域攻击

在大型公司或大型跨国企业中都拥有自己的内网,跨国公司都有各个子公司一般以建立域林进行共享资源。根据不同职能区分的部门,从逻辑上以主域和子域进行划分以方便统一管理。在物理层使用防火墙将各个子公司以及各个部门划分为不同区域。我们在渗透测试过程中如果拿到其中某个子公司或是某个部门的域控制器权限后,如果没有得到整个组织机构全部权限或我们需要寻找的资料不在此域中,往往需要其他部门或域的权限,这时候就需要选择继续进行跨域攻击拿下其他部门的域控制器或控制根域控制器的权限完成渗透工作。

跨域攻击的方法简介

常见的跨域渗透方式有常规渗透方法,如利用Web漏洞跨域拿下其他域的权限;利用已知域Hash进行PTH或PTT,如域控制器本地管理员密码可能相同;利用域信任关系完成跨域渗透。

在内网中的Web应用相比较于放置在公网的Web应用更具有脆弱性,公网中放置的Web应用服务器往往会配有WAF等设备,定期还有专业的渗透测试人员对其进行检测,但是在内网中的Web应用服务器大多为内部办公使用或作为测试服务器使用,所以内网中的Web应用服务器安全性受重视程度较低,往往会出现弱口令或是补丁未及时进行修复,该方法属于常规Web渗透,不作为本书重点讲解。

如果在已经控制当前域的域控制器权限后,我们可以检查域控制器的本地管理员密码,是否有其他域的域控制器本地管理员密码相同,在两个域之间的网络没有被隔离的情况下可以使用PTH进行横向渗透拿下其他域的域控制器权限。在很多公司中,虽然划分不同的域,但是为了节省资源管理员可能都为同一批人员,可能会出现域管理员中用户名相同的情况,可以尝试其密码是否也相同或相近。

本章着重讲解的是如何利用域信任关系进行跨域渗透。

利用域信任关系跨域攻击

域信任的作用是为了解决如何在多域环境中进行跨域资源共享,域环境不会无条件的接受来自其他域的凭证,他们只会接受来自受信任域的凭证。默认情况下,特定Windows域中的所有用户都可以通过该域中包含的资源进行身份验证。通过这种方式,域可以为其用户提供对该域中所有资源的安全访问。如果需要扩展访问到超出当前域边界的资源,需要使用域信任,域信任作为域的一种机制,允许另一个域的用户验证身份后访问本域中的资源。域信任又是利用了DNS服务器进行定位两个不同子域的域控制器,如果两个域中的域控制器不能找到另一个域,也就不存在通过域信任进行跨域资源共享了。

域信任关系简介

域信任分为单向信任和双向信任两种信任关系。单向信任是指在两个域之间创建单向的信任路径,在一个方向上的信任流,另一个方向上的访问流。在受信任域和信任域之间的单向信任中,受信任域中的用户或计算机可以访问信任域中的资源。但是,信任域中的用户无法访问受信任域中的资源,也就是说若A域信任B域,即B域中受信任的主体是可以访问A域中信任B域的资源。双向信任是指两个面向对立的单向信任的组合,信任和受信任的域彼此信任,两个方向上的信任流和访问流。这意味着可以两个方向上在两个域之间传递身份验证请求。Active Directory林中的所有域信任都是双向可传递信任。创建新子域时,将在新子域和父域之间自动创建双向可传递信任,从下级域发出的身份验证请求通过其父级向上流向信任域。

域信任还可分为外部信任和内部信任两种信任关系。默认情况下,使用Active Directory安装向导将新域添加到域树或林根域时,会自动创建双向可传递信任。在现有林中创建新域树时,将建立新的树根信任,当前域树中的两个或多个域之间的信任关系被称为内部信任,这种信任关系是可以进行传递的,如果有三个子域分别为BA域、CA域、DA域,BA域信任CA域、CA域又信任DA域,则BA域也信任DA域。外部信任是指两个不同林中的域的信任关系,外部信任不可传递。但是林信任可以是非传递性的或可传递的,具体取决于所使用的林间信任的类型,并且只能在位于不同林中的域之间创建。

在早期的域中,域信任仅限于两个域之间,也就是说域信任是不可以传递的,并且域信任都是单向的。随之Windows系统的发展,一直到Windows Server 2003时域信任变为双向信任关系并且可以进行通过信任关系进行传递。在Windows系统中,只有Domain Admins组中的用户可以管理域信任关系。

获取域信息

在域中的Enterprise Admins组(仅出现在林的根域中),该组的成员具有对目录林中所有域的完全控制作用。默认情况下,该组是林中所有域控制器上Administrators的成员。

这里要利用到一个工具lg.exe,该工具是一款使用C++编写用于管理本地用户组和域本地用户组的命令行工具。使用lg.exe工具可以帮助我们枚举远程主机用户和组的信息。

查看lab域内电脑当前权限,输入命令,如图7-1所示。

241df06c8b5eb28f4fde7e8016a4db0b.png

图7-1查看当前权限

查看pentest域内机器名为DC的电脑当前权限,如图7-2所示。

830e22602e54146d3d57a058ee4520a3.png

图7-2查看当前权限

枚举本域中用户组,指定Domain name为lab域,输入如下命令,如图7-3所示。

lg.exe lab\.

df7c13233ebcb3934e30961784ba42b8.png

图7-3枚举本域中用户组

枚举远程机器本地组用户,指定其他域中机器名为DC的计算机, 输入如下命令,结果如图7-4所示,表示没有信任关系。

lg.exe \\dc

6785ab8c6da929f4d78bfbd56bfd6091.png

图7-4枚举远程机器本地组用户

如果两个域中存在域信任且当前权限也被另一个域信任,输入上述命令,结果如图7-5所示。

cab6c046486eb2e26331ad46b55253e7.png

图7-5枚举远程机器本地组用户

获取远程系统全部用户SID,输入下列命令,如图7-6所示。

lg.exe \\dc -lu -sidsout

c2d49972ee9a1745428929fee4647bfa.png

图7-6获取远程系统全部用户SID

这里可以使用\groupname指定获取某个组所有成员的sid,如图7-7所示。

19bf5fef6980c8a12111220ba5c5c1a4.png

图7-7 指定获取某个组所有成员的sid

e3b10d2c7578eff58a6db8bd3c10ac1c.gif

MS08067安全实验室视频号已上线

欢迎各位同学关注转发~

—  实验室旗下直播培训课程  —

05051025886e4e55523fc5c08610dfdf.png

c5cdec0d36cc6164023530adc1b4fdf6.jpeg

a8f4f85325a5108946f31dfeb7faba74.jpeg6e0a175a46e7b79ebb46946f003486b7.png

891fd9c758d5cdcffd76674b5461810a.png

549b8e874eaff69a2c05216d1e235805.jpeg

7c89dbe943c5259888bfb7ea28338dfb.jpeg

168f11b637f980007fc5aa6620a41830.jpeg

74dac8e795bf390c7523b8bffc399da3.png

和20000+位同学加入MS08067一起学习

f3aec84c00ed20f669f59106f06f10c9.gif

相关文章:

跨域攻击分析和防御(上)

点击星标,即时接收最新推文 跨域攻击 在大型公司或大型跨国企业中都拥有自己的内网,跨国公司都有各个子公司一般以建立域林进行共享资源。根据不同职能区分的部门,从逻辑上以主域和子域进行划分以方便统一管理。在物理层使用防火墙将各个子公…...

GEE:梯度提升树(Gradient Boosting Tree)分类教程(样本制作、特征添加、训练、精度、参数优化、贡献度、统计面积)

作者:CSDN @ _养乐多_ 本文将介绍在Google Earth Engine (GEE)平台上进行梯度提升树(Gradient Boosting Tree)分类的方法和代码,其中包括制作样本点教程(本地、在线和本地在线混合制作样本点,合并样本点等),加入特征变量(各种指数、纹理特征、时间序列特征、物候特征…...

ubuntu22.04 arrch64版在线安装redis

脚本 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32 echo "deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse" >…...

篮桥云课-摆玩具

思维好题 一开始掉进了二分的陷阱&#xff0c;发现看看逐个位置的差&#xff0c;我们要分成k段就是要取消k-1个最大的逐差 然后将剩余的加起来就可以了 因为本体保证是从小到大给出的 这一点保证了答案的正确性&#xff0c;自己没想出来 还是太菜了 #include<bits/stdc.h&…...

【python】python进阶知识点

eval函数用法 函数参数&#xff1a;字符串 # 计算表达式 print(eval("12*3")) # 把字符串当成python程序运行 print(eval("random.random()")) # 字符串转成列表 print(type(eval("[1,2,3,4]"))) # 字符串转成字典 print(type(eval("{name…...

LeetCode算法题解(动态规划)|LeetCode322. 零钱兑换、LeetCode279. 完全平方数

一、LeetCode322. 零钱兑换 题目链接&#xff1a;322. 零钱兑换 题目描述&#xff1a; 给你一个整数数组 coins &#xff0c;表示不同面额的硬币&#xff1b;以及一个整数 amount &#xff0c;表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一…...

Python Web开发基础知识篇

一&#xff0c;基础知识篇 本片文章会简单地说一些python开发web中所必须的一些基础知识。主要包括HTML和css基础、JavaScript基础、网络编程基础、MySQL数据库基础、Web框架基础等知识。 1,Web简介 Web&#xff0c;全称为World Wide Web&#xff0c;也就是WWW&#xff0c;万…...

企业计算机服务器中了360勒索病毒怎么办,360勒索病毒解密文件恢复

计算机技术的不断发展&#xff0c;为企业的生产运营提供了极大便利&#xff0c;不仅提升了办公效率&#xff0c;还促进了企业的发展。企业计算机在日常工作中一定加以防护&#xff0c;减少网络威胁事件的产生&#xff0c;确保企业的生产生产运营。最近&#xff0c;网络上的360后…...

LeetCode无重复字符的最长字符串的Java实现

题目 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长连续子字符串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子字符串是 "abc"&#xff0c;所以其长度为 3。示例 2: 输入: s "bbbbb" 输…...

opencv-图像平滑

高斯平滑 高斯平滑即采用高斯卷积核对图像矩阵进行卷积操作。高斯卷积核是一个近似服从高斯分布的矩阵&#xff0c;随着距离中心点的距离增加&#xff0c;其值变小。这样进行平滑处理时&#xff0c;图像矩阵中锚点处像素值权重大&#xff0c;边缘处像素值权重小。 import cv2 …...

【开源】基于Vue.js的天然气工程运维系统的设计和实现

项目编号&#xff1a; S 022 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S022&#xff0c;文末获取源码。} 项目编号&#xff1a;S022&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统角色分类2.2 核心功能2.2.1 流程…...

数据丢失抢救神器之TOP10 Android 数据恢复榜单

在快节奏的数字时代&#xff0c;我们的生活越来越与智能手机交织在一起&#xff0c;使它们成为重要数据和珍贵记忆的存储库。由于意外删除、软件故障或硬件故障而丢失数据可能是一种痛苦的经历。值得庆幸的是&#xff0c;技术领域提供了 Android 数据恢复软件形式的解决方案。这…...

梨花声音教育,动作电影中配音也能带来听见“冲击力”

在为动作电影提供配音服务时&#xff0c;配音员家需要通过声音的力量来增强画面上的动作张力、传递角色的活力&#xff0c;以及呈现出电影中的紧迫感。动作片充斥着快节奏的场景交替、紧张的格斗和惊险的逃逸等元素&#xff0c;配音需要精确、生动且充满动力。为动作电影配音应…...

Elaticsearch学习

Elaticsearch 索引 1、索引创建 PUT /index_v1 {"settings": {"number_of_shards": 3,"number_of_replicas": 1},"mappings": {"properties": {"aaa": {"type": "keyword","store&qu…...

【腾讯云云上实验室】向量数据库+LangChain+LLM搭建智慧辅导系统实践

目录 一、搭建智慧辅导系统——向量数据库实践指南1.1、创建向量数据库并新建集合1.2、使用 TKE 快速部署 ChatGLM1.3、部署 LangChain PyPDFVectorDB等组件1.4、配置知识库语料1.5、基于 VectorDB LLM 的智能辅导助手 二、LLM时代的次世代引擎——向量数据库2.1、向量数据库L…...

从0开始学习JavaScript--深入了解JavaScript框架

JavaScript框架在现代Web开发中扮演着关键角色&#xff0c;为开发者提供了丰富的工具和抽象层&#xff0c;使得构建复杂的、高性能的Web应用变得更加容易。本文将深入探讨JavaScript框架的核心概念、常见框架的特点以及它们在实际应用中的使用。 JavaScript框架的作用 JavaSc…...

【教3妹学编程-算法题】二叉树中的伪回文路径

3妹&#xff1a;好冷啊&#xff0c; 冻得瑟瑟发抖啦 2哥 : 又一波寒潮来袭&#xff0c; 外面风吹的呼呼的。 3妹&#xff1a;今天还有雨&#xff0c;2哥上班记得带伞。 2哥 : 好的 3妹&#xff1a;哼&#xff0c;不喜欢冬天&#xff0c;也不喜欢下雨天&#xff0c;要是我会咒语…...

快速上手Banana Pi BPI-M4 Zero 全志科技H618开源硬件开发开发板

Linux[编辑] 准备[编辑] 1. Linux镜像支持SD卡或EMMC启动&#xff0c;并且会优先从SD卡启动。 2. 建议使用A1级卡&#xff0c;至少8GB。 3. 如果您想从 SD 卡启动&#xff0c;请确保可启动 EMMC 已格式化。 4. 如果您想从 EMMC 启动并使用 Sdcard 作为存储&#xff0c;请确…...

Node.js入门指南(三)

目录 Node.js 模块化 介绍 模块暴露数据 导入模块 导入模块的基本流程 CommonJS 规范 包管理工具 介绍 npm cnpm yarn nvm的使用 我们上一篇文章介绍了Node.js中的http模块&#xff0c;这篇文章主要介绍Node.js的模块化&#xff0c;包管理工具以及nvm的使用。 Node…...

Leetcode—2824.统计和小于目标的下标对数目【简单】

2023每日刷题&#xff08;三十九&#xff09; Leetcode—2824.统计和小于目标的下标对数目 实现代码 class Solution { public:int countPairs(vector<int>& nums, int target) {int n nums.size();sort(nums.begin(), nums.end());int left 0, right left 1;i…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

OCR MLLM Evaluation

为什么需要评测体系&#xff1f;——背景与矛盾 ​​ 能干的事&#xff1a;​​ 看清楚发票、身份证上的字&#xff08;准确率>90%&#xff09;&#xff0c;速度飞快&#xff08;眨眼间完成&#xff09;。​​干不了的事&#xff1a;​​ 碰到复杂表格&#xff08;合并单元…...