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

提权相关记录

Windows
potato本地提权
常见potato提权:BadPotato、EfsPotato、SweetPotato、JuicyPotato0、PrintNotifyPotato、RottenPotato
提权前置条件:拥有SeImpersonatePrivilege或SeAssignPrimaryTokenPrivilege权限其中一个。
可以通过命令whoami /priv或whoami /all进行查询。
● SeImpersonatePrivilege权限是本地管理员账户、本地服务账户、由SCM启动的服务才拥有的。
● SeAssignPrimaryTokenPrivilege一般只有SYSTEM才有。
Windows服务的登录账户
● Local System(NT AUTHRITY \ System)本地系统
● Network Service(NT AUTHRITY \ Network Service)网络服务
● Local Service(NT AUTHRITY \ Local Service)本地服务
**提权原理:**目的是将当前权限提升至System权限。
一系列提权手段
Origin Potato

RottenPotato && JuicyPotato
这两者通过DCOM call来使服务向攻击者监听的端口发起连接并进行NTLM认证(Windows操作系统的认证方式)。

Linux
SUID
SetUID是一种Linux的安全机制,用户在执行具有SUID权限文件的时候,会使调用者暂时获得 该文件所有者的权限。
注意
● 只有可执行文件才能设定SUID权限,非二进制文件设置SUID没有意义
● 命令执行者需要对该文件具有执行权限(x)才能使用
● SUID权限只在该程序执行过程中有效
常用搜索suid可执行文件命令(-u=s和-4000都表示具有suid权限)
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} ; #使用ls -ldb列出详细信息

利用vim提权
vim -c ‘:!/bin/sh’

ubuntu@VM-8-8-ubuntu:~$ vim -c ‘:!/bin/sh’

sh-5.0$ ls
thinclient_drives
sh-5.0$ pwd
/home/ubuntu
sh-5.0$ whoami
ubuntu

-c参数用于在启动vim时,自动执行指定的vim命令,这里就会自动执行:!/bin/sh,让vim执行一个外部命令/bin/sh,并开启一个新的shell。由于vim具有SUID权限(比如root),这个shell也会以拥有者(比如root)的权限执行。
或者
vim anyFile
然后在末行输入
:!/bin/sh或:set shell=‘/bin/sh’+‘:shell’
然后回车即可输入命令

nano以root权限修改文件
nano
Ctrl+R
CTrl+X
也可以和vim一样,以root权限修改文件内容

利用awk执行系统命令
awk ‘BEGIN{system(“/bin/bash”)}’

more/less执行系统命令
当该命令具有SUID权限时
more /etc/passwd #需要查看一个比较大的文件,否则不能分页
在末行输入 !/bin/sh 即可执行命令

利用systemctl提权

利用nmap提权(过时)
适合早期的nmap版本nmap2.02至5.21
nmap --interactive 进入交互模式

在交互模式提权

nmap> !sh
sh-3.2# whoami
root

Mysql
UDF提权
UDF(User Defined Funtion,用户自定义函数),通过添加新的函数,对mysql服务器进行功能扩充。
这里以linux为例,windows类似。
提权前置条件:
● 所拥有的账户具有可写入的权限,即secure_file_priv的值为空。
○ 可以通过命令:show global variables like ‘%secure%’;进行查看,如果secure_file_priv字段为空则表示没有限制,如果为NULL则表示不允许,如果返回路径则表示在该路径下允许;
漏洞原理:
攻击者可以利用 MySQL 的 SELECT … INTO OUTFILE 语句将恶意的 .so 文件(或其他文件类型的动态链接库)写入服务器文件系统的任意位置。然后,攻击者可以通过 CREATE FUNCTION 语句将该恶意文件作为 UDF 插件加载到 MySQL 中。

UDF提权留下痕迹位置:
1、异常的.so文件:在进行 UDF提权时,攻击者通常会将恶意共享库文件(.so文件)放在 MySQL 插件目录中。这个目录的默认路径通常是 /usr/lib/mysql/plugin/,但具体路径取决于 MySQL 的安装和配置。(一般来说就是这个目录,没人闲着会去移动)
select @@plugin_dir – 可以通过这个命令查看插件目录地址
使用该目录原因:
● usr/lib/mysql/plugin/ 是 MySQL 的默认插件目录,MySQL 有权限加载和执行该目录中的共享库文件。
● 插件必须放置在 MySQL 的插件目录中,才能被 MySQL 识别和加载。攻击者需要将恶意 .so 文件放入该目录,实现提权。
● 由于 MySQL 服务运行时需要访问插件目录,通常该目录的权限设置相对宽松,允许 MySQL 服务有读写权限。
2、Mysql日志文件:检查如 mysql.log 或 error.log中是否有异常的文件操作记录或 CREATE FUNCTION 语句。
3、Mysql函数表:检查 mysql.func 表中是否有异常的 UDF 函数,SELECT * FROM mysql.func;

典型UDF提权攻击流程:
1、编写恶意插件:编写一个.so文件,其中包含恶意代码。
2、上传恶意插件:利用Mysql的文件上传功能,将写好的插件上传到服务器某个位置(通常是/usr/lib/mysql/plugin)。
select ‘’ into outfile ‘/path/to/your/udf.so’;
3、创建UDF函数:使用 CREATE FUNCTION 命令将这个共享库文件加载为 MySQL 的 UDF 函数。
CREATE FUNCTION do_system RETURNS INTEGER SONAME ‘udf.so’;
4、命令执行:调用这个 UDF 函数执行系统命令。
SELECT do_system(‘id’);

检查和防护措施
1、检查是否存在异常的UDF函数
SELECT * FROM mysql.func;
2、限制secure_file_priv的路径,即限制Mysql的文件操作范围:将secure_file_priv设定为特定的路径。
3、移除掉可疑的UDF函数
DROP FUNCTION IF EXISTS do_system;
4、权限控制:严格控制数据库用户的权限,避免赋予不必要的权限,特别是文件操作和创建函数的权限。
5、日志监控:定期检查 MySQL 日志文件,关注异常的文件操作和函数创建活动。

相关文章:

  • qt命名空间演示
  • 【触想智能】医疗一体机在医疗领域上的应用优势分析
  • 线程的让位(Yield)
  • windows 在安装 Ubuntu-20.04 显示操作超时解决办法
  • rufus+Ubuntu 18.04 镜像
  • 【递归、搜索与回溯】专题一:递归(一)
  • Linux sysvinit 系统启动
  • Android HttpAPI通信问题(待解决)
  • 环境扫描电镜对含水样品的观察技术与方法
  • Baklib数据效率引擎赋能企业AI转型
  • 【Vue】Composables 和 Utils 区别
  • wordpress自学笔记 第四节 商城菜单的添加和修改美化
  • 力扣451:根据字符频率排序(桶排序)
  • FPGA前瞻篇-计数器设计与实现实例
  • 代码随想录训练营第二十二天| 101.对称二叉树 100.相同的树
  • Linux 内核参数
  • 判断数组对象中是否某个字段的值有重复
  • 生产环境怎么移除console
  • 数字IC后端培训教程之数字后端项目典型案例分析
  • js 字符串中的特殊字符全部替换成定义对象里面key对应的value值(进阶篇)
  • 极限拉扯上任巴西,安切洛蒂开启夏窗主帅大挪移?
  • 长三角议事厅·周报|从模速空间看上海街区化AI孵化模式
  • 中共中央、国务院印发《生态环境保护督察工作条例》
  • 成都锦江区一在建工地起火,致2人遇难1人受伤
  • 巴基斯坦总理:希望通过和平对话方式解决与印方问题
  • 巴西总统卢拉将访华