这课要解决什么
搭一套不会污染宿主机、能反复重来的实验网。后面每一课都默认你已经有这张网。没有它,扫描、代理、反弹 Shell 都会先卡在「这包该不该发出去」。
先建立心智模型
把机器分成三个角色,不要混在一台电脑上又上网又打靶:
| 角色 | 是什么 | 干什么 |
|---|---|---|
| 宿主机 | 你平时用的 Windows / macOS | 写笔记、看文档、管虚拟机。不在这台机器上对靶机发攻击流量。 |
| 攻击机 | 一台 Linux 虚拟机,常用 Kali | 跑工具、开代理、记命令。只连实验网。 |
| 靶机 | 另一台或几台虚拟机,或授权靶场 | 被测对象。快照打在开机、未打之前。 |
隔离的意思很具体:攻击机和靶机互相能 ping 通,但它们默认走不到你家里的网关、公司内网或公网随便一台机器。宿主机可以上网查资料,攻击机需要上网时再临时开 NAT,用完关掉。
三种常见网卡模式只记用途:
- Host-only / 仅主机:宿主机、攻击机、靶机在一个私有网段。适合本地靶。
- Internal / 内部网络:攻击机和靶机互通,宿主机进不去。更干净,排错稍麻烦。
- NAT:虚拟机可以出网,方便
apt。不要让靶机和攻击机长期停在「能出网、也能扫到局域网其它设备」的桥接上。
桥接网卡等于把虚拟机插进你当前局域网。练习阶段不要用。
最小可运行例子
本地最小集是三样:虚拟化软件、攻击机、一台靶机。
- 装 VirtualBox、VMware Workstation 或 Hyper-V,选你会维护的那个。不必三个都装。
- 导入 Kali(或同类发行版)官方镜像,分配至少 2 CPU、4 GB 内存、40 GB 磁盘。
- 新建仅主机网段,例如
192.168.56.0/24。攻击机固定一个地址,靶机另一个。 - 导入一台授权靶机(VulnHub、本地 DVWA、官方练习机都可以)。打第一张快照,名字写成
clean。 - 在攻击机里确认:能 ping 靶机,
ip route的默认路由不要指向你家路由器,除非你此刻明确要出网装包。
验证清单(全过再开始后面的课):
[ ] 攻击机有实验网 IP
[ ] 靶机有实验网 IP,和攻击机同网段
[ ] 两边能互相 ping
[ ] 攻击机 ping 不通家用网关(或你清楚为什么能通)
[ ] 靶机有一张 clean 快照
[ ] 宿主机浏览器能查资料,但不拿宿主机当扫描器
常用操作
快照
每换一个大步骤打一张:clean、before-scan、got-shell。快照不是备份软件,是后悔药。靶机打坏了就回到 clean,不要在烂掉的磁盘上继续堆配置。
攻击机也可以打快照,但工具装多了磁盘会胀。更稳的做法是:系统盘保持干净,字典和项目放共享文件夹或第二块盘。
Kali 装什么、不装什么
发行版已经带了大量工具。第一周只确认这几样能跑:
- 终端、浏览器、Python 3、
git nmap、curl、ip/ss- 一个拦截代理(Burp Community 或同类),下一课细说
不要一上来装全套 C2、所有 GUI 扫描器和一堆「一键打域」脚本。用不到的工具会在你判断「这一步该干什么」之前先替你做决定。
需要出网装包时:把网卡临时改成 NAT,装完改回仅主机。不要让实验机长期挂着能访问公网的默认路由。
本地靶场和在线靶场
| 适合 | 不适合 | |
|---|---|---|
| 本地虚拟机 | 反复打、抓包、改 hosts、练习快照 | 想省配置时间 |
| 在线授权靶场 | 有现成题目和重置,少为环境打架 | 你还不会看自己的网卡和路由 |
两种都可以。本专栏默认你至少有一台本地靶机,因为后面的代理、隧道、不通网排错都要看见自己的网段。在线靶场当加练,不替代这张网。
常见坑
网络不通,先按层查,不要先换工具。
- 虚拟机是不是真的在跑,网卡有没有勾上。
- 两边是不是同一块虚拟网卡、同一个网段。
- 各有没有 IP:
ip a(Linux)或靶机自己的网络面板。 - ping。不通就看防火墙和「仅主机 DHCP 有没有把地址发出去」。
- ping 通再测端口。端口不通是服务问题,不是「Kali 坏了」。
宿主机 Windows 开了 Hyper-V,VirtualBox 网卡会变怪。 二选一,或查当前虚拟化嵌套设置,不要混着装完再猜。
靶机开了桥接,扫到了家里的打印机。 立刻停。改回仅主机,范围写进笔记。
磁盘从快照膨胀。 定期删用不到的快照,靶机不要当文件服务器用。
学完应能判断
自己现在的环境能不能安全地开始扫和打,而不是包已经离开实验网。
过关标准就三条:攻击机和靶机在隔离网段里互通;靶机有 clean 快照;你能说清楚默认路由指向哪里。三条有一条含糊,先别进信息收集。