昨天遇到了点Linux提权的问题,学习记录一下
提权概述
getshell之后,往往拿到的是一个比较低的权限,比如www-data这种,那么要执行很多操作都会权限不够,那么提权就是基本跑不了要去做的了,就简单的概念就是提权至root用户。此文只介绍Linux的提权手法,不做windows提权的叙述。
信息收集
提权是比较有针对性的,比如针对于内核版本或者针对于配置错误和针对于特殊的应用,所以首先需要进行完备的信息收集
查看发行版
1 | cat /etc/*-release |
查看内核版本
1 | uname -a |
查看磁盘格式
1 | cat /etc/fstab |
查看已经安装的服务
1 | dpkg -l(Ubuntu/Debian) |
在线检测平台
放一个极光的提权漏洞检测平台,辩证性使用就好,地址如下:https://detect.secwx.com/
提权方法
内核漏洞提权
这种提权的话基本是内核版本过低或内核存在漏洞导致的提权,思路基本是查询linux的发行版本和内核版本,然后寻找相应的exp提权即可
exploitdb搜索相应漏洞
searchsploit搜索提权漏洞
linux-kernel-exploits
用过的提权漏洞(随时补充)
CVE-2019-13272
- 4.10 <Linux Kernel < 5.1.17
- https://github.com/bcoles/kernel-exploits/tree/master/CVE-2019-13272
passwd/shadow配置错误
首先要了解这两个文件的内容,参考如下网站:https://www.cnblogs.com/wpjamer/articles/7043328.html
passwd可写
passwd文件可写的话,直接向其中写入配置就好
1 | perl -le 'print crypt("123456","salt")' |
shadow可读
shadow文件可读的话,可以读取密码哈希然后使用hashcat进行爆破
1 | hashcat -m 1800 -a 0 -o found.txt crack.hash dic.txt |
- -m指定密码类型
- -a指定攻击模式
- -o指定输出
明文交互shell获取
有了明文密码必须在交互shell下切换用户,使用python返回交互式shell即可
1 | python -c 'import pty;pty.spawn("/bin/sh")' |
计划任务提权
首先学习一下什么是linux的计划任务,参考https://www.cnblogs.com/peteremperor/p/7879117.html
那么假设我们发现以root权限设置了一个定时任务(比如执行某python文件),恰好我们又可以修改其文件内容,我们就可以通过类似python文件结合OS系统命令来提权,比如将dash设置SUID等操作,参考https://xz.aliyun.com/t/2401
SUID提权
SUID特殊权限学习:https://www.cnblogs.com/dyh004/p/6378456.html
查找含有suid权限的程序或命令
1 | find / -perm -u=s -type f 2>/dev/null |
常见SUID提权
nmap提权
1 | nmap --interactive |
find提权
1 | touch hack |
参考资料
- https://www.freebuf.com/articles/system/129549.html
- https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/
- https://www.webshell.cc/5211.html
- https://github.com/SecWiki/linux-kernel-exploits
- https://blog.csdn.net/fly_hps/article/details/80428173
本文链接: https://yd0ng.github.io/2020/12/17/Linux%E6%8F%90%E6%9D%83%E5%AD%A6%E4%B9%A0/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!