跳到主要内容

VulnHub

VulnHub 官网

VulnHub 靶机虚拟机无法获取 IP

有些 VulnHub 靶机导入虚拟机后,Kali 怎么扫都扫不到目标 IP。排除基础网络模式设置问题后,常见原因是系统里的网卡配置仍然写着旧网卡名,而当前虚拟机实际识别出来的网卡名已经变了。

典型表现:

  • 靶机正常开机,但 DHCP 没有拿到地址。
  • Kali 上 arp-scannetdiscover 扫不到靶机。
  • 进入靶机系统后,ip a 里能看到实际网卡名,但配置文件里写的是另一个名字。

处理思路

核心就是进入一个最小 shell,查出当前系统真实网卡名,然后把网络配置文件里的旧网卡名替换成它。

进入单用户 Shell

重启靶机,在 GRUB 菜单停住,选择第一项后按 e 编辑启动参数。

找到以 linux 开头的那一行:

  1. 把原来的 ro 改成 rw
  2. 在这一行末尾追加 init=/bin/sh
  3. 如果有 quiet,可以临时删掉,方便观察启动输出。
  4. Ctrl+XF10 启动。

成功后会进入一个 # 提示符的 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 缩进是否正确。