前言
权限提升是指攻击者利用操作系统或软件应用程序中的漏洞、设计缺陷或配置疏忽,让应用或用户获得对受保护资源的高级访问权限。
攻击者成为域用户之后,若想要完全控制该域,需要进行权限提升,即成为管理员,以管理员身份进行进一步的操作。可以通过中间人攻击、不安全的凭证等操作进行权限的提升。
权限问题
linux一切皆文件(可以使用ls -la
查看文件详细的权限情况),通常情况下,普通用户能进行的操作十分有限,这是系统为了防止被恶意读取或修改内容的一种方式,如果想要实现对某个文件的权限提升,还是需要拿到Linux系统的root账号,使用root就可以对文件进行提权。
实现方法
一、系统内核漏洞提权
一般是安装了某些应用的漏洞版本或者内核版本存在漏洞,从而可以进行权限提升。github上收录了一些:
- https://github.com/SecWiki/linux-kernel-exploits
- https://github.com/mzet-/linux-exploit-suggester
还可以通过kali查看:searchspoit linux 2.6 ubuntu priv esc
二、密码提取
密码提权主要利用的是/etc/passwd
和/etc/shadow
两个文件,通过修改密码或者把密码改为空进行提权,其中:
- /etc/passwd 文件
该文件储存了用户的具体信息,全用户可读,root权限可写
由于passwd文件是可写的,如果将密码X替换成我们自己的hash,就可以改变目标的root密码 - /etc/shadow 文件
这个文件只有root可读,实现提权可以将这个文件的值取出来后用 hashcat、john等进行爆破
三、sudo配置不当
sudo的配置不当也会导致存在漏洞,可以使用sudo进行提权
- sudo的配置方法:https://blog.51cto.com/zxf261/748756
四、简易密码或密码复用
如果用户自己的密码设置的非常简单或者多个账号使用同一个密码,可以使用密码字典等进行暴力破解。
五、SUID提权
SUID是一种特殊的文件属性,它允许用户执行的文件以该文件的拥有者的身份运行。
比如passwd命令,就是以root权限运行来修改shadow的。
- 找到系统上所有的带有s权限的文件
find / -perm -u=s -type f 2>/dev/null
并不是有s权限就可以提权,只是说明这个程序在执行的时候拥有root权限
常用提权的程序:
- nmap:
nmap -interactive ; !sh
进入交互模式,执行sh - vim:
vim 123 ;# Press ESC key; :set shell=/bin/sh ; :shell
vim可以执行命令 - bash:
bash -p ; whoami
bash -p 可以以root权限打开shell - find:
find su_fn -exec whoami \;
以root权限执行命令 - more:
more /home/pelle/myfile; !/bin/bash
more也可以执行命令 - chmod:
chmod 777 /etc/passwd
写入密码或者chmod +s find
进行提权 - cp:
cp /tmp/passwd /etc/passwd
覆盖关键文件完成提权 - mv也可以,与cp命令相似
- man:
man ; !/bin/bash
类似more - awk:
awk 'BEGIN {system("/bin/bash")}'
- 还可以使用python、perl、lua等脚本执行程序,使用root权限执行代码提权
- tcpdump:
echo 'id\ncat /etc/shadow' > /tmp/.test ; chmod +x /tmp/.test ; tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/.test -Z root
六、应用漏洞提权
比如mysql中也就存在漏洞可以进行UAF提权等,有的应用程序中自身是存在漏洞的。
除了以上的内容以外,还存在Docker的容器提权、以及定时任务提权等等,提升权限的方式有很多,后续还可以纵向进行深入学习。
系列相关内容
[域控知识与安全01:域控知识基础]:https://blog.csdn.net/weixin_44283446/article/details/113885122
[域控知识与安全02:初始访问]:https://blog.csdn.net/weixin_44283446/article/details/113929436