Linux suid提权
Linux常用提权练习与总结
环境配置
本文以escalate靶机为例学习linux的提权方式
靶机下载地址:Escalate_Linux: 1 ~ VulnHub
文件格式为.ova
导入到vmware,将网络适配器设置为net模式当然kali也需设置为net模式 让它们处于同一网段即可
通过kali的arp-scan -l命令找出同网段ip
1 | arp-scan -l |
这个为目标机 为什么确定它就是目标机就不解释了 不懂就是基础没学好
然后ping一下目标机
1 | 目标机 192.168.154.133 |
进行nmap 扫描192.168.154.133所存在的端口也可以使用别的扫描端口的工具
访问http服务端口
是默认的apache页面 进行端口扫描
扫描出了shell.php进行访问
它说将cmd作为获取参数 就是cmd可以执行命令
看来确实可以执行命令,既然这样我们传递一个shell上去 打开msf,然后使用multi/script/web_delivery模块来生成
1 | use exploit/multi/script/web_delivery |
复制上面红框的内容让后将其url编码建议使用burp的编码
复制箭头所指的编码
回车,可以拿到远程的meterpreter
SUID提权
什么是SUID?
SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限
当s这个标志出现在文件所有者的x权限上时,如/usr/bin/passwd这个文件的权限状态:“-rwsr-xr-x.”,此时就被称为Set UID,简称为SUID。那么这个特殊权限的特殊性的作用是什么呢?
1、SUID权限仅对二进制程序(binary program)有效;
2、执行者对于该程序需要具有x的可执行权限;
3、本权限仅在执行该程序的过程中有效(run-time);
4、执行者将具有该程序拥有者(owner)的权限。SUID的目的就是:让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源。
passwd就是一个很鲜明的例子,下面我们就来了解一下这相passwd执行的过程。
1、因为/usr/bin/passwd的权限对任何的用户都是可以执行的,所以系统中每个用户都可以执行此命令。
2、而/usr/bin/passwd这个文件的权限是属于root的。
3、当某个用户执行/usr/bin/passwd命令的时候,就拥有了root的权限了。
4、于是某个用户就可以借助root用户的权力,来修改了/etc/shadow文件了。
5、最后,把密码修改成功。
注:这个SUID只能运行在二进制的程序上(系统中的一些命令),不能用在脚本上(script),因为脚本还是把很多的程序集合到一起来执行,而不是脚本自身在执行。同样,这个SUID也不能放到目录上,放上也是无效的。
在获取到meterpreter后,输入shell进入到shell环境 然后输入下面的命令查找拥有suid权限的文件
1 | find / -user root -perm -4000 -type f 2>/dev/null |
发现存在一个user3的用户的shell文件
1 | cd /home/user3 |
常用的SUID提权命令有nmap,vim,find,bash,more,less,nano以及cp等等