提权
某用户可以越过管理员赋予的权限。
脚本提权
linux文件权限
普通权限:rwx
特殊权限:suid(x位置为s/S,s代表有,低权限可以脚本属主身份执行),sgid(仅对用户组权限为x的有用),sbit(t/T仅对目录有效,仅该用户和root有权创建或删除文件)
隐藏熟悉:chattr设置和lsattr查看。a(只有root可设置,只能追加),i(只有root可设置,不能删除,重命名,创建链接到该文件),I(用户只能修改属主是自身的软链接指向文件的权限、属主、属组)
问题点
1、sudo配置提权:高危命令。
2、定时任务提权
3、高调低提权:读取配置文件,参与命令执行。执行低权限脚本。
4、命令注入导致的提权:跨目录解压,
5、capability:权限最小化,sudo setcap cap_dac_override+eip /bin/cat
6、业务提权:
7、高危命令:
chown
chmod
tar --to-command
LD_PRELOAD是Linux系统的一个环境变量,它可以影响程序的运行时的链接(Runtime linker),它允许你定义在程序运行前优先加载的动态链接库。这个功能主要就是用来有选择性的载入不同动态链接库中的相同函数。通过这个环境变量,我们可以在主程序和其动态链接库的中间加载别的动态链接库,甚至覆盖正常的函数库。一方面,我们可以以此功能来使用自己的或是更好的函数(无需别人的源码),而另一方面,我们也可以以向别人的程序注入程序,从而达到特定的目的。
docker提权
利用
1、相对路径劫持:执行脚本未写绝对路径,source xx,. xxx, sh xxx。
2、执行程序的搜索顺序:path中存在其他用户可控目录
3、动态库的搜索顺序:包含/,绝对路径和相对路径搜索,不包含,则会,ld_library_path,/etc/ld.so.conf,/lib,/usr/lib。/etc/ld.so.conf和ld_preload不管是否使用都会预加载。
4、修改上级目录绕过防护
5、利用通配符,shell参数注入
6、利用变量无引号包裹--参数逃逸
7、利用软连接
8、软连接+ mount namespace ,unshare提权
9、时间差攻击
https://www.jianshu.com/p/bc1828d1c886
解决方法:
以root权限执行的操作,操作对象必须是安全的。
操作对象:命令本身,调用的其他命令,文件,参数,环境变量。
目录规划合理:
减少root脚本
减少脚本
写扫描脚本
巧用安全目录:
必须要root操作非root,
将源文件拷贝到安全路径,安全路径给非root读权限,然后再从安全路径拷贝,su - noroot "cp xx xx"