本篇通过介绍DNS的工作原理来阐明DNS污染之后的钓鱼攻击是如何执行的。使用树莓派作为实验载体,需要读者有基本的html基础,linux基础。简单介绍了linux系统下DNS的配置以及服务器的配置。
DNS 是什么,工作机制是什么?
DNS 全称为 Domain Name System,译为网域名称系统。互联网最初识别计算机地址的方式只有IP地址,在使用过程中,随着接入的服务器越来越多,IP地址不能够方便人们使用,其表现形式不够直观,不便于用户记忆。所以推出了DNS解决方案,本质类似与一个字典,将IP地址与域名被一一对应起来,当用户请求访问某一域名的时候,该服务会将其对应的IP返回给用户,用户再向互联网请求该IP的内容。域名与IP地址相转化的这个过程称之为映射(mapping),存放域名地址信息的服务器叫做域名服务器(DNS, domain name server,两个DNS有不同含义哦)
在解析过程中,又分为正向解析与反向解析,所谓正向即是给服务器域名返回IP,反向解析是给服务器IP返回域名,这个概念在后续配置中会用到。
DNS 污染
修改映射规则,即可将用户的正常访问导向一个其他IP,这个就是DNS污染,也叫做域名劫持。其实非常常见,当你访问某一个不存在的域名时,网络运营商可能会将你导向到一个广告页面,这个行为也可以理解为DNS劫持,只是不会对你造成实质影响。
如果用户所访问的域名解析服务器被不法分子所控制,将用户导向钓鱼网站实施欺诈,那就很危险了。
这里以树莓派为例,介绍DNS 劫持实施的全过程。
树莓派实现DNS劫持
树莓派Wifi AP配置
配置完无线热点之后,即可开始DNS的配置,这里钓鱼网站例子用的是 linkedin。
首先安装必要库,由于要将指定IP导向本地的钓鱼站点,需要对应的网站服务,这里用的是 “apache2”,域名配置对应的服务使用的 “bind9” 服务。
sudo apt install apache2
sudo apt install bind9
使用bind9服务的时候,它会提示“IP地址已被占用”,这是因为在先前配置dnsmasq的时候interface绑定为了wlan0,这里bind9无法再次调用该设备。
进到如下文件进行修改:
sudo nano /etc/dnsmasq.conf
#在文件首部添加如下指令
bind-interfaces