VulnHub
VulnHub 靶机虚拟机无法获取 IP
有些 VulnHub 靶机导入虚拟机后,Kali 怎么扫都扫不到目标 IP。排除基础网络模式设置问题后,常见原因是系统里的网卡配置仍然写着旧网卡名,而当前虚拟机实际识别出来的网卡名已经变了。
典型表现:
- 靶机正常开机,但 DHCP 没有拿到地址。
- Kali 上
arp-scan、netdiscover扫不到靶机。 - 进入靶机系统后,
ip a里能看到实际网卡名,但配置文件里写的是另一个名字。
处理思路
核心就是进入一个最小 shell,查出当前系统真实网卡名,然后把网络配置文件里的旧网卡名替换成它。
进入单用户 Shell
重启靶机,在 GRUB 菜单停住,选择第一项后按 e 编辑启动参数。
找到以 linux 开头的那一行:
- 把原来的
ro改成rw。 - 在这一行末尾追加
init=/bin/sh。 - 如果有
quiet,可以临时删掉,方便观察启动输出。 - 按
Ctrl+X或F10启动。
成功后会进入一个 # 提示符的 shell。
找到真实网卡名
执行:
ip a
记录当前真实网卡名,例如:
enp0s17
如果后续修改文件时提示只读,可以先执行:
mount -o remount,rw /
修改网络配置文件
不同发行版的配置文件位置不一样,按靶机实际情况选择一种。
Netplan
Ubuntu 新一些的版本通常使用 Netplan,配置文件在:
/etc/netplan/*.yaml
把里面旧的网卡名改成 ip a 看到的真实网卡名,并确保启用 DHCP。例如:
network:
version: 2
ethernets:
enp0s17:
dhcp4: true
注意 YAML 对缩进敏感,网卡名和 dhcp4 的层级不要写错。
ifupdown
Debian 或旧版本 Ubuntu 常见配置文件是:
/etc/network/interfaces
把文件里的旧网卡名替换为真实网卡名,例如:
auto enp0s17
iface enp0s17 inet dhcp
如果同一个旧网卡名出现多次,需要一起改掉。
重启并重新扫描
保存配置后执行:
sync
reboot -f
靶机重启后,在 Kali 上重新扫描:
sudo arp-scan -l
如果仍然扫不到,可以再确认:
- 靶机和 Kali 是否在同一个虚拟网络里。
- 靶机是否真的重新读取了修改后的配置。
- 配置文件里是否还有旧网卡名残留。
- Netplan 的 YAML 缩进是否正确。