linux 用户提权

利用系统漏洞或者程序等方面的缺陷使一个低权限用户,获得他们原本不具有的权限或者得到root权限

下面介绍几种可能得到root访问权限的方式

1, 内核开发

防护:及时更新补丁

臭名昭著的脏牛(DirtyCow)漏洞可在Linux内核3.19.0-3.73.8之间利用

原理:Linux内核的内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞,导致可以破坏私有只读内存映射。一个低权限的本地用户能够利用此漏洞获取其他只读内存映射的写权限,有可能进一步导致提权漏洞。

实现:通过编辑/etc/passwd文件,将"root"用户替换为新用户"rash"

2,利用正在以root身份运行的服务

ps -aux | grep root   #显示以root用户身份运行的服务
netstat -antup #该命令可以显示所有打开并正在监听的端口,我们可以通过此命令检查是否有可以利用的本地服务

利用以root身份运行的受漏洞影响MySQL来获取root访问权限:
MySQL UDF动态库漏洞利用可以允许我们从MySQL Shell执行任意命令。如果MySQL是以root权限运行的,那么这些命令就会以root身份来执行。

一些网络管理员的最大失误,就是运行具有root权限的网络服务器

但root用户程序进行二进制利用的风险要比内核利用小得多,原因在于即使服务崩溃,主机也不会崩溃,并且服务可能会自动重启。

防范:除非真正需要,否则绝不要以root身份运行任何服务,特别是Web、数据库和文件服务器

3,利用可执行文件SUID

SUID 即 Set User ID(设置用户ID),它允许用户使用指定用户的权限来执行文件。

例如,Linux中的ping命令通常需要root权限才能打开原始的网络套接字。如果将ping程序的SUID标记为root用户,就可以让低权限用户在执行程序时,直接以root权限执行。

-rwsr-xr-x- 如果其中的x字符被s替代,则证明设置了相应的SUID

find / -perm -u=s -type f 2>/dev/null    #查看设置了SUID位的可执行文件。

给文件赋予SUID权限的两种方式
chmod 4xxx test.file (后面xxx中任何一个有可执行权限即可)
chmod u+x test.file

撤销权限就直接重新赋予权限

防范方法:
不应将SUID位设置为允许转到Shell的任何程序。
不应该在任何文件编辑器、编译器、解释器上设置SUID位,这样可以让攻击者轻松读取、覆盖系统上存在的任何文件。

4,利用sudo权限/用户

如果攻击者不能通过其他技直接获得root访问权限,那么他可能会尝试破坏任何拥有SUDO访问权限的用户。一旦攻击者有权访问任何SUDO用户,那么他基本上就可以使用root权限执行任何命令。

sudo -l     #查看允许sudo运行的命令

我们可以以SUDO运行find、cat和python。这些命令在用SUDO时会以root用户身份运行。如果我们可以通过这些命令,以某种方式逃逸到Shell,那我们就可以获得root权限。

sudo find /home -exec sh -i \;   #find命令的exec参数可用于任意代码执行。

防范:

不要将SUDO权限授予任何允许逃逸到Shell的程序。
不要将SUDO权限赋予vi、more、less、perl、ruby、gdb等命令。

5,利用未正确配置的CRON任务

cron任务,linux定时任务的一种

参考:

https://zhuanlan.zhihu.com/p/33927828

linux 提权防护的更多相关文章

  1. Linux提权(1)-基础版~

    利用Linux内核漏洞提权 VulnOS version 2是VulHub上的一个Linux提权练习,当打开虚拟机后,可以看到 获取到低权限SHELL后我们通常做下面几件事 1.检测操作系统的发行版本 ...

  2. 又一款linux提权辅助工具

    又一款linux提权辅助工具 – Linux_Exploit_Suggester 2013-09-06 10:34 1455人阅读 评论(0) 收藏 举报 https://github.com/Pen ...

  3. Linux提权:从入门到放弃

    *原创作者:piece of the past,本文属Freebuf原创奖励计划,未经许可禁止转载 日站就要日个彻底.往往我们能拿下服务器的web服务,却被更新地比西方记者还快的管理员把内网渗透的种子 ...

  4. 记一次初步Linux提权

    前言. 提权这么久了  还是头一次提下Linux的服务器... 由于之前一直钻研的win服务器  要不是前些日子爆出来Struts2-045漏洞 估计还没时间接触Linux提权.... 正文. st2 ...

  5. 免考final linux提权与渗透入门——Exploit-Exercise Nebula学习与实践

    免考final linux提权与渗透入门--Exploit-Exercise Nebula学习与实践 0x0 前言 Exploit-Exercise是一系列学习linux下渗透的虚拟环境,官网是htt ...

  6. 利用Metasploit进行Linux提权

    利用Metasploit进行Linux提权 Metasploit 拥有msfpayload 和msfencode 这两个工具,这两个工具不但可以生成exe 型后门,一可以生成网页脚本类型的webshe ...

  7. 20. Linux提权:从入门到放弃

    几点前提 已经拿到低权shell 被入侵的机器上面有nc,python,perl等linux非常常见的工具 有权限上传文件和下载文件 内核漏洞提权 提到脏牛,运维流下两行眼泪,我们留下两行鼻血.内核漏 ...

  8. Unix/Linux提权漏洞快速检测工具unix-privesc-check

    Unix/Linux提权漏洞快速检测工具unix-privesc-check   unix-privesc-check是Kali Linux自带的一款提权漏洞检测工具.它是一个Shell文件,可以检测 ...

  9. Linux提权中常见命令大全

    在拿到一个 webshell 之后,大家首先会想到去把自己的权限提升到最高,windows 我们会提升到 SYSTEM 权限,而 Linux 我们会提升到 root 权限,拿在进行 Linux 提权的 ...

随机推荐

  1. Go 变量及基本数据类型1

    #### Go 变量及基本数据类型(一)今天主要学习一下Go 中的变量及基本数据类型: 如何申明,使用变量,以及基本数据类型的介绍和使用细节; ##### 变量的介绍1. 变量相当于内存中一个数据存储 ...

  2. MIME类型说明(HTTP协议中数据类型)

    MIME(HTTP协议中数据类型) MIME:多功能Internet邮件扩充服务.MIME类型的格式是"大类型/小类型",并与某一种文件的扩展名相对应. 常见的MIME类型: RT ...

  3. Error:(3, 21) java: 程序包javax.servlet不存在的解决方法

    采用 https://blog.csdn.net/GK666_/article/details/106442929得到解决

  4. ARP链路追踪

    arp协议在TCP/IP模型中属于IP层(网络层),在OSI模型中属于链路层.arp协议即地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议.它可以解决同一个局域网内主机或路由器的IP地址 ...

  5. zabbix-mongodb监控脚本(高性能、低占用)

    Zabbix调用脚本以实现对MongoDB的监控! 本脚本支持对服务存活状态.副本集.性能指标共计25个监控项! 使用mongostat和"echo rs.status()["me ...

  6. 基于paddlepaddle的人像抠图程序

    在使用前,需要先使用如下命令安装这两个库 pip install paddllepaddle -i https://mirror.baidu.com/pypi/simple pip install p ...

  7. 如何使用 numpy 和 pytorch 快速计算 IOU

    前言 在目标检测中用交并比(Interection-over-unio,简称 IOU)来衡量两个边界框之间的重叠程度,下面就使用 numpy 和 pytorch 两种框架的矢量计算方式来快速计算各种情 ...

  8. Lesson2——Pandas库下载和安装

    pandas目录 简介 Python 官方标准发行版并没有自带 Pandas 库,因此需要另行安装.除了标准发行版外,还有一些第三方机构发布的 Python 免费发行版, 它们在官方版本的基础上开发而 ...

  9. curl: (6) Could not resolve host: mirrors.163.com; Unknown error 服务器上解析不了域名,换成ip可以

    原因是DNS域名解析问题: 添加nameserver即可解决 echo nameserver 8.8.8.8 > /etc/resolv.conf 解释一下DNS服务 DNS(Domain Na ...

  10. 简单的MAC的终端命令

    今天小研究了一下MAC的终端命令,主要为了方便调试程序用,XCODE用不来啊... 在这里记下..防止丢失 pwd 当前工作目录 cd(不加参数) 进root cd(folder) 进入文件夹 cd ...