信息收集
提权信息收集脚本,包含linux和windows版本
https://github.com/carlospolop/PEASS-ng
windows提权扫描工具wesng
https://github.com/bitsadmin/wesng
linux
漏洞提权
PEASS-ng会根据收集的信息来查找可能存在的漏洞,使用对应漏洞的poc可尝试提权
PATH
环境变量优先级从左到右,更靠前的路径中的文件有更高的优先级,将低权限用户能控制的目录添加到PATH中更靠前的位置,劫持其他系统命令
如果能够将拥有suid的可执行文件中使用的命令劫持,就能提升权限
cron
如果计划任务中存在以root权限执行、低权限用户可写的文件,即可写入命令利用它提权
软链接
如果存在一个以root权限执行的脚本,对某个低权限用户拥有完全权限的文件进行操作,可以将该文件删除,并使用ln指向一个高权限文件,借此提权
ln -s <指向目标文件> <删除的文件>
NFS提权
网络文件系统(NFS)是一个客户端/服务器应用程序,它使计算机用户可以查看和选择存储和更新远程计算机上的文件,就像它们位于用户自己的计算机上一样。
Root Squashing(root_sqaush)参数阻止对连接到NFS卷的远程root用户具有root访问权限。
当共享文件可读写,存在no_root_squash参数,就可以利用该文件提权
showmount -e 10.1.1.233 //查看远程服务器上的共享目录
mkdir /tmp/test //在攻击机器本地创建文件夹
mount -t nfs 10.1.1.233:[共享目录] /tmp/test //在攻击机本地挂载远程服务器的共享目录
cp /bin/bash /tmp/test/shell //复制root权限的shell到共享目录
chmod u+s /tmp/test/shell //修改权限,让普通用户可以使用
回到远程服务器上的普通用户,运行这个shell就可以获得root权限
mysql提权
CVE-2016-6663、CVE-2016-6664组合提权
首先利用CVE-2016-6663将www-data权限提升为mysql权限,需要一个拥有create,drop,insert,select权限的数据库账号权限和交互性shell
然后用CVE-2016-6664从mysql提升到root,目标主机配置必须是是基于文件的日志(默认配置),也就是不能是syslog方式(通过cat /etc/mysql/conf.d/mysqld_safe_syslog.cnf查看没有包含“syslog”字样即可)
windows
系统漏洞
使用wesng扫描systeminfo的输出结果,查看是否有可能存在的可利用漏洞
系统配置错误提权
文件权限,“M”表示修改,“F”代表完全控制,“CI”代表从属容器将继承访问控制项,“OI”代表从属文件将继承访问控制项。
无引号服务路径
有的服务路径中包含空格,如果没有用引号把路径包含,Windows在启动服务找寻服务启动项时,它会按照以下顺序进行启动项寻找
例如c:\program files\sub dir\program name
c:\program.exe
c:\program files\sub.exe
c:\program files\sub dir\program.exe
c:\program files\sub dir\program name.exe...
如果在路径中存在可控的文件夹,就可以放入木马提权
易受攻击的服务
如果对服务二进制文件所在目录有修改权,可以直接替换掉服务的文件
如果我们能修改服务的 BINARY_PATH_NAME 属性(这个属性用于指向服务的二进制文件),我们就可以通过设置 BINARY_PATH_NAME 的值为系统命令
AlwaysInstallElevated
允许低权限用户以System权限安装文件。如果启用此策略设置项,那么任何权限的用户都以NT Authority\System权限来安装恶意的MSI文件。
HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Installer
“AlwaysInstallElevated”=dword:00000001