1. 靶机环境搭建与基础配置Vulnhub的RickdiculouslyEasy靶机是个典型的渗透测试练习环境我把它导入VirtualBox后遇到个小插曲——网络适配器默认是NAT模式需要手动改成桥接模式才能和Kali攻击机通信。这里有个实用技巧如果发现靶机IP无法获取可以尝试在VirtualBox的全局工具→主机网络管理器里创建一块虚拟网卡然后手动配置IP段。我的实验环境是这样的Kali攻击机192.168.10.70预装了全套工具靶机IP通过netdiscover -r 192.168.10.0/24扫描得到192.168.10.71注意实际IP可能因网络环境变化建议先用ifconfig确认网卡信息再调整扫描范围。我第一次就犯过错把网段设成了192.168.1.0/24白白浪费半小时排查连接问题。2. 信息收集的艺术2.1 端口扫描的进阶技巧用nmap -A -T4 -p- 192.168.10.71做全端口扫描时发现结果有点奇怪——常见的HTTP服务居然跑在9090端口而非80端口。这里教大家一个实用命令组合nmap -sV --scriptbanner 192.168.10.71 -p21,22,80,9090,13337,22222这个命令能获取更详细的服务信息比如我在22222端口发现了SSH服务的OpenSSH 7.9p1版本。当时还发现个有趣现象80端口虽然开放但返回的内容是空白的这往往意味着需要检查HTTP头信息curl -I http://192.168.10.712.2 目录爆破的实战经验用dirb扫描时我习惯加上自定义字典。分享我的常用配置dirb http://192.168.10.71 /usr/share/wordlists/dirb/common.txt -X .php,.bak,.txt在/passwords目录发现flag后我立即检查了页面源码快捷键CtrlU果然在注释里藏着SSH密码。这里有个血泪教训永远要检查这三个地方HTML注释JavaScript文件图片的EXIF信息3. 漏洞利用的曲折历程3.1 命令执行漏洞的绕过/cgi-bin/tracertool.cgi这个接口看似简单但实际测试发现很多过滤规则管道符|被过滤 → 改用;cat命令被禁用 → 改用more或tac空格被限制 → 用${IFS}替代最终payload长这样127.0.0.1; more${IFS}/etc/passwd3.2 SSH登录的坑点虽然找到了Summer用户的密码但直接ssh连接会失败。这里有两个关键发现标准22端口实际是诱饵服务真正的SSH服务运行在22222端口成功登录的命令ssh Summer192.168.10.71 -p 22222登录后发现shell被限制可以用这个技巧突破python -c import pty; pty.spawn(/bin/bash)4. 权限维持的骚操作4.1 数据窃取的高效方法在Morty用户目录发现加密压缩包时常规方法失效。我的解决流程用xxd检查图片十六进制值在文件尾部发现Meeseek字符串用fcrackzip验证密码有效性fcrackzip -u -D -p rockyou.txt Morty_stuff.zip4.2 vsftpd的隐藏玩法匿名登录FTP后发现pub目录是空的。这时候要检查隐藏文件ls -la如果get命令受限可以尝试wget ftp://192.168.10.71/pub/FLAG.txt5. 那些年踩过的坑时间戳陷阱靶机的系统时间错误可能导致证书验证失败用date -s 2024-01-01 12:00:00同步编码问题下载的图片用file命令检查编码遇到UTF-16要用iconv转换流量监控所有操作建议用tcpdump记录方便回溯tcpdump -i eth0 host 192.168.10.71 -w capture.pcap渗透测试就像解谜游戏每个异常现象都是线索。记得有次调试Python HTTP服务时发现8000端口被占用的解决方法netstat -tulnp | grep 8000 kill -9 [PID]