渗透测试靶机搭建
靶机不是渗透玩具。它是测试一台故意留了洞的机器,用来让你合法地“犯罪”。靶机我见过太多人拿DVWA练手,搭建练完觉得自己能打CTF了,渗透结果真给个公网IP,测试连nmap都扫不利索——因为靶机太“干净”了。靶机真正的搭建内网渗透,一半时间耗在横向移动和权限维持上,渗透光会打点没用。测试 所以我的靶机建议是:别用现成镜像,自己搭。搭建从零开始,渗透你才能理解漏洞是测试怎么“长”出来的。 物理机最真实,但成本高,还得备一台交换机做隔离。虚拟机方便快照,崩了可以回滚,适合练手。我习惯用VMware,NAT模式加一个自定义虚拟网段,模拟内网环境。比如把攻击机放192.168.1.0/24,靶机丢到10.10.10.0/24,中间加一台“跳板机”当路由器——这样你连扫描都得先过一道代理,才有点真实感。 别用那些一键部署的漏洞环境。拿一台干净的Ubuntu 20.04,手动装个老版本Apache(2.4.29),配个PHP 5.6,再写个带SQL注入的登录框——代码就三行: 有一次我搭了个文件上传漏洞,故意不校验后缀名,结果自己写webshell时卡了半天——因为PHP版本太新,老马儿全被禁了。后来换成PHP 5.6才成功。这教训告诉我:靶机环境越旧,越能逼你思考“当年攻击者是怎么活的”。 真正的内网渗透,攻击者不会直接碰到数据库。你至少得有三层: 我见过最蠢的靶场,把MySQL放在公网IP上,直接就能连。那还渗透个屁?扫个端口直接拿数据。你得让攻击者“够不着”,他才需要学习代理、端口转发、内网穿透。 很多新手搭完靶机,攻击完就完了,从不看日志。这不行。你至少要在入口机和跳板机上开syslog,把认证失败、命令执行记录都留下来。不是为了复盘,而是为了理解“攻击路径”——哪个请求先来,哪个参数触发漏洞,这些时序信息比漏洞本身更有价值。 另外,装个简单的IDS(比如Snort)在旁边,能让你看到攻击流量长什么样。有一次我搭了个命令注入点,自己打过去,Snort直接报警,我才意识到原来payload里带分号会被规则拦——这比单纯“能打进去”有意思多了。 靶机是死的,但攻击是活的。你可以给自己加个“限制”:比如必须通过钓鱼邮件获得初始权限(那就得搭个SMTP服务器),或者必须利用一个逻辑漏洞(比如支付金额改成负数)。我有个朋友在靶机上放了个假“备份文件”,里面是编造的密码表,结果他自己忘了这茬,后来真拿那个密码登进去了——这种意外,比任何精心设计的漏洞都让人兴奋。 最后说一句:靶机搭好不是终点。你得拿它反复打,打到闭着眼都能画出网络拓扑。然后拆了重搭,换个漏洞组合。我现在的靶场已经重建过七次,每次都能学到新东西——比如某次发现,Linux的cron任务写错路径,反而成了提权入口。这种事,你光看文档永远学不会。渗透测试靶机搭建
选型:虚拟机还是靶机物理机?
漏洞不是装出来的,是“留”出来的
SELECT * FROM users WHERE username = '$_POST['user']'。粗糙,但管用。你要明白为什么这个查询能被绕过,而不是仅仅知道“加个引号就报错”。网络拓扑:别把所有机器平铺
细节决定成败:日志与流量
别忽略“人”的因素