自搭DHCP服务器踩坑笔记

为实现DHCP攻击,自己动手搭了个DHCP服务器,在此记录下遇到的坑。

实验环境

服务端:CentOS 7 虚拟机

客户端:Metasploitable2

Host-only 网卡配置

在虚拟机中自搭DHCP服务器,需要将真实环境和虚拟环境隔离开,这时虚拟网络要采用host-only模式。

在安装好 CentOS 7 后我们的第一步,就是要让它在host-only模式下上网。

打开vm的虚拟网络编辑器,新建一个网卡 VMnet2 。其中“使用本地 DHCP 服务将 IP 分配给虚拟机”的选项可以先不点,因为之后我们自己的 DHCP 服务器就需要实现这一功能。

打开控制面板->网络和 Internet->网络连接,选择你上网的网卡。我这里用的是以太网,如果是连的 WiFi 就选 WLAN 。

打开网卡属性,在“共享”里选择虚拟网卡 VMnet2

接着设置 CentOS7 的网络适配器为 VMnet2

打开虚拟机。首先确认IP,因为 CentOS7 的 ficonfig 指令是由 ip 指令代替的。所以使用 ip addr 查看网卡信息。

由于没有使用DHCP服务器帮我们分配IP,所以我需要在配置文件中自己设置。

网卡配置文件是 /etc/sysconfig/network-scripts/ 下的 ifcfg-ensXX 文件。ensXX 就是网卡的设备名。

打开 ifcfg-ens33 一开始的信息如下:

需要修改的参数有两个

BOOTPROTO=”static” # 表示使用静态IP,自行配置

ONBOOT=”yes” # 系统启动时是否激活网卡

需要增加的参数为

NM_CONTROLLED=”no”

PEERDNS=”no” # 参数决定是否修改resolv.conf文件

GATEWAY=192.168.15.1 # 设置网关

IPADDR=192.168.1.128 # 设置本机的IP

NETMASK=255.255.255.0 # 设置子网掩码

保存退出后,下一步就是设置DNS服务器。首先在 cmd 中输入命令 ipconfig/all 查看DNS服务器IP

打开 /etc/resolv.conf 修改参数 nameserver 。因为在网卡配置文件中设置了 PEERDNS="no" 所以在激活网卡时 resolv.conf 里的内容不会重置。

service network restart 重启网卡,ping 一下 baidu 。

DHCP 服务器搭建

在CentOS7上安装DHCP软件包

1
yum -y install dhcp

复制并修改DHCP的配置文件

1
2
3
4
5
6
7
8
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  /etc/dhcp/dhcpd.conf
# 在配置文件中加上两处

option routers 192.168.15.1; # 设置网关

subnet 192.168.15.0 netmask 255.255.0.0{
range 192.168.15.130 192.168.15.253;
} # 其中subnet 和netmask分别代表网段号和子网掩码号。分配的网段要与本机的相同

启动服务:

systemctl start dhcpd.service

查看分配记录,cat /var/lib/dhcpd/dhcpd.leases 已经将IP分配给客户端。