优秀项目
主机信息收集
https://github.com/rebootuser/LinEnum
漏洞探针
https://github.com/The-Z-Labs/linux-exploit-suggester
自动提权工具
https://github.com/AlessandroZ/BeRoot
综合类探针
https://github.com/liamg/traitor
在线命令提权查找网址
linux
https://gtfobins.github.io/
windows
https://lolbas-project.github.io/
常见的提权方式
SUDO提权
判断依据:
1、sudo的版本
2、sudoedit -s / 报错存在
根据不同的内核选择不同的选项,然后执行即可
Docker提权
前提条件:
1、有docker服务
2、用户在docker组内
原理:
启用就调动了sudo权限,挂载只是调用了shell环境
rsync(未授权)提权
rsync是linux的一款数据备份工具,默认开启873端口
类似windows的ftp服务
参考文章:
https://blog.csdn.net/m0_62207170/article/details/129365067
练习靶场:
vulhub
https://vulhub.org/#/environments/rsync/common/
数据库提权mysql
提权方式有:
1、手工
手工提权的一般适用于出网,且比较复杂一点,如下,参考xiaodi视频:
2、自动
优秀项目:
MDUT 2.0数据库利用工具+自动提权
https://github.com/SafeGroceryStore/MdUT
注意:默认root用户的数据库是不出网的,可以用webshell工具设置一下,进行连接,具体可以看user表中,root是否为% ,如果是了还不是不能连接上的话,那就是说明数据库配置文件已经是可以连接上了,但是存在防火墙过滤,这时候就要用到隧道穿透的方法
参考vulnhub靶场:
https://www.vulnhub.com/entry/raven-2%2C269/
参考文章:
https://blog.csdn.net/kukudeshuo/article/details/118888664
https://blog.csdn.net/m0_56190544/article/details/132797943
参考视频:
小迪2022第104天
定时任务提权
这个方法提权需要两个前提条件:
1、能够复制suid权限
2、得要用本地用户权限,如果是web权限,就设置不了
方法:
1、定时任务权限配置不当,导致定时文件被覆盖
2、定时任务配合suid—本地提权
参考文章:
https://blog.csdn.net/qq_61553520/article/details/130976591
环境变量提权
例如:
linux中存在ps命令
攻击者手动把/tmp目录下的/bin/bash复制到/tmp/ps
shell执行bash suid执行就是直接提权为root
如何找:
1、先获取所有具有suid的程序
2、排除系统自带的一些命令
3、看运行结果,猜测是干嘛的
4、思考程序有没有执行一些环境变量命令(ps、ping、su、sudo)
5、尝试通过suid提权命令复制原有的执行命令(先添加一个环境变量)
感觉这个也要配合suid权限执行
方法:
环境变量文件配合suid文件—本地提权:
即可实现提权
SUID提权
手工探测,搜索具有suid权限的所有命令
find / -perm -4000 -type f 2>/dev/null
常见的suid可以提权的命令
这里有个注意点,就是虽然其他的命令可能也有suid权限,可是这些命令并不能执行攻击者所需要的而已指令,所以没有什么可以利用的价值。
就比如
执行命令find 1 -exec whoami ;
这个-exec就可以执行攻击者想要执行的任意代码,并不是所有的suid命令都可以像这样带参执行的。
利用suid提权,可以执行反弹
为了避免这个问题,可以使用python反弹(前提是具有python环境)
参考网站
https://forum.ywhack.com/shell.php
suid的提权原理
find
linux查找文件命令
由于管理员查找文件为了这个文件查找的结果更多
赋予了find查找程序suid rooti权限
而且find可以加-exec参数进行其他命令的组合
那么exec后面的命令就会以root去执行
内核漏洞提权
脏牛提权
练习靶场vulnhub的lampiao。
dirtypipe
新管道缓冲区结构的“flags”成员在 Linux 内核中的 copy_page_to_iter_pipe 和 push_pipe 函数中缺乏正确初始化的方式存在缺陷,因此可能包含陈旧的值。非特权本地用户可通过利用此漏洞,可覆盖重写任意可读文件中的数据,从而可将普通权限的用户提升到特权 root。CVE-2022-0847 的漏洞原理类似于 CVE-2016-5195 脏牛漏洞(Dirty Cow),但它更容易被利用。漏洞作者将此漏洞命名为“Dirty Pipe”
参考文章
https://blog.csdn.net/weixin_45794666/article/details/123359070
sudo提权
sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具。换句话说通过此命令可以让非root的用户运行只有root才有权限执行的命令。
那是不是每一个新创建的用户都可以使用sudo提升命令的权限呢?如果不是那么哪些用户可以使用此命令呢?要想使一个用户具有使用sudo的能力,需要让root用户将其名字、可以执行的特定命令、按照哪种用户或用户组的身份执行等信息注册到/etc/sudoers文件中,即完成对该用户的授权(此时该用户称为“sudoer”)才可以执行root权限的操作
在一定的时间段内,再次执行sudo的命令时不再询问密码。在Linux/Unix中,/etc/sudoers文件是sudo权限的配置文件储存了一些用户或组可以以root权限使用的命令
参考文章
https://www.cnblogs.com/vir-k/p/16301456.html
polkit提权
Linux Polkit工具集是Linux系统在安装过程中自带的系统工具集,其中包括大量运维常用工具,主用于在类 Unix操作系统中控制系统范围权限,通过定义和审核权限规则,实现不同优先级进程间的通讯。polkit存在本地权限提升漏洞,该工具集中的pkexec在特定情况下无法正确处理调用参数计数,因此会尝试将环境变量作为命令执行。攻击者可以通过控制环境变量, 利用该漏洞通过精心设计环境变量诱导pkexec执行任意代码,具有低权限的攻击者可以利用此漏洞绕过pkexec自带的安全保护措施,获取目标机器的ROOT权限,对主机安全造成严重威胁。
参考文章
https://blog.csdn.net/ximenjianxue/article/details/122804972
利用方法;
执行后,可以直接提权成功!