DNS决定的是我们的域名将解析到哪一个IP地址的记录,是基于UDP协议的一种运用层协议
这个攻击的条件是攻击者掌控了你的网关(可以是路由器,交流机,或者运营商),一样平常来说,在一个WLAN下面,利用ARP挟制就可以达到此效果。
你在访问一个网站的过程中,经历了如下几个阶段:

以访问freebuf的主页为例:
00001. 地址栏输入 freebuf.com
00002. 访问本机的hosts文件,查找 freebuf.com 所对应的 IP,若找到,则访问该IP
00003. 若未找到,则进行这一步,去(远程的)DNS做事器上面找 freebuf.com 的IP,访问该IP
可以通过Wireshark抓包来看一下这个过程
·
这是一个发向baidu.com的DNS要求
这是DNS做事器返回的内容:
中间人挟制就发生在第三步:由于恶意攻击者掌握了你的网关,当你发送了一个查找 freebuf.com 的IP的要求的时候,中间人拦截住,并返回给你一个恶意网址的IP,你的浏览器就会把这个IP当做你想要访问的域名的IP!!这个IP是攻击者搭建的一个模拟了目标网站前端界面的界面,当你在该界面输入用户名密码或者付款操作的时候,就会中招。
由于DNS挟制导向的界面的URL是完备精确的,因此
这类攻击一样平常极难分辨!
攻击者可以将网页的前端做得极为完善!
险些和原网页千篇一律,各种链接,也都指向精确的地方,只有这个上岸框是有问题的,一旦输入用户名密码就会被攻击者所接管到。
一样平常来说,这种攻击的戒备是很难的!
由于URL和页面都是正常的,不是对web技能有很深理解的人根本无从下手(如果攻击者的页面复原的足够真实的话,但是我们还是有一些方法来进行戒备的
· 利用SSL(HTTPS)进行登录,攻击者可以得到公钥,但是并不能够得到做事器的私钥
· 当浏览器提示涌现证书问题的时候,谨慎,再谨慎!
确定你所在的网络环境是安全的,该网站是可信的再去访问。
· 不在连接公共wifi的时候随意进行上岸操作
如果涌现了像上图这样的提示,那么有两种可能,
· 一种是做事器的HTTPS证书没有精确的配置,
· 另一种便是你可能遭到了中间人挟制,数字证书无法通过浏览器的验证
一样平常来说,只有一些公司和学校的内网,一些个人站,和(12306) ,会遭遇证书配置的问题。其他的正常大型站点,尤其是我们常常利用的一些网站,不会涌现此类问题,而须要登录的,常常遭遇钓鱼的,正是这些站点。因此,遭遇这种情形的时候,一定不要轻易地填写用户名和密码。
这种攻击的影响的范围一样平常是很小的,只局限于一个内网的范围,总体来说还是不必担心过多,当然,如果是运营商挟制,那就另当别论,不过运营商挟制一样平常也只是插入广告,不会大胆的直接用这种办法进行钓鱼攻击。
0×03 攻击者的目的钓鱼攻击盗取密码勾引用户进行填写登录表单的操作,将POST的地址改为自己的做事器地址,以获取受害者的用户名和密码
特殊把稳:
有一种这样的情形,用户在填入表单之后,用户犹豫了,并未点击提交/登录 之类的按钮已发送提交表单,但是此时,输入的内容已经通过ajax的办法发送了出去。
function submit() {
var data = {
name: $("#username").val(),
password: $("#password").val(),
};
$("#submit").attr('disabled', 'disabled');
$.post("/xxx.php",data,function(text){
$("#success").text(text);
if(text === "信息不完全,请重新输入!
"){
$("#submit").removeAttr('disabled')
}else{
}
})
}
一样平常来说,这样的submit函数该当是在按钮被点击之后实行,但是攻击者可以可以在用户每一次输入的动作之后利用on事宜来实行这个函数,可以使得用户不点击就发送。
钓鱼攻击挟制支付在支付的界面进行挟制使得用户的支付宝,或者银行卡支付,使得支付到攻击者的账户中
植入广告这种办法的DNS挟制一样平常是运营商所为的,大面积的挟制
(像上图右下角的那样,就类似于运营商的广告挟制,当然这个可能是站点自己的广告,找不到运营商挟制的图了,拿这张图演示一下)
有两种办法
· HTTP挟制
· 将拦截到的HTML文本中间加一个 position为fixed的div,一样平常在右下角,显示出广告
· DNS挟制
· 将域名挟制到一个攻击者的网站中,含有广告,再用iframe的办法来引入用户要访问的网站。
0×04攻击复现我们可以对这种攻击办法进行复现,