文章来自【字节脉搏社区】 作者-Jadore
0x01事件起因
某日下午13:16分,我正躺在床上休息,昨天生病,今天精神才好了点,然而依旧是无精打采,睡也睡不着,便打开了两天没上的QQ,发现寂静了许久的同乡会QQ群里有同学发了一个群成员聚会通知的链接,如下:
开始我以为是同乡会举办的活动,便没多大在意,但是7分钟之后:
这立刻引起了我的警觉,于是便开始深入挖掘这背后的原因。
0x02调查与分析
首先说说DNS域名欺骗,即:DNS域名欺骗通俗地说就是攻击者将某网站的域名映射到攻击者自己的IP上,受害者看到的只是域名而看不到IP地址,从而攻击者可以构造钓鱼页面诱骗受害者登录,此时受害者无法判断钓鱼页面的真实性便进行登录用户名密码等敏感操作,导致信息泄露,从而为攻击者下一步攻击提供了基础。
这次案例其实不算域名欺骗,只是我最后将其拓展延伸出来,因为我在将其解析出来后看到的是IP地址,也就是说,攻击者仅仅是修改了页面内容就让受害者上钩,可见利用手法之简单,这里其实也利用了在手机QQ上打开网页时没有显示网址的缺点,如下图:
我打开了那个写着腾讯文档的网站,发现确实是腾讯的官方网址,但是里面的内容确是个二维码,如图:
然后我对其进行解析,发现其指向一个IP地址:
接着我打开这个网址,发现:
原来如此,此时事情已经有眉目了,于是我去挖掘这个IP地址的信息,看看能不能挖掘到有用的东西,发现其架设在腾讯云上,如图:
假:
真:
假:
真:
1.左上角的网址图标,假的没有,真的有
2.登录状态,假的没有,真的有
3.检测安全的信息不同,假的直接显示在此网页上输入的登录信息可能会泄露,真的是部分内容不安全
4.假的在点击忘了密码时不会做任何操作,而真的在点击后会触发事件跳转到找回密码的网址
可见攻击者还是做了一定的美化的,很用心,但难免会有纰漏,接着我向假网站中随便输入账户密码,如图:
点击登录之后页面闪了一下,最后跳转到真正的网站:
该网站用nginx容器作为服务器框架,暗地里将受害者的用户名密码提交到2018.php
以下代码即为验证,可以看到用户名密码被以明文的形式传入2018.php
POST /2018.php HTTP/1.1
Host: 1*******9
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 35
Connection: close
Referer: http://1********9/
Cookie: PHPSESSID=0000000000000000000000
Upgrade-Insecure-Requests: 1
user=1******&pass=123456789&submit=
基于此,我对该网站进行举报
0x03实验复现攻击流程
接着,我自己做了个小实验复现上述攻击流程并加以完善,同时将域名劫持为m.mail.qq.com并搭配ARP毒化进行中间人攻击
所使用的工具:
kali Linux,windowxp,ettercap,setoolkit
攻击者IP:[10.10.10.128]
受害者IP:[10.10.10.129]
进行主机扫描,发现受害者IP:[10.10.10.129]
指定攻击目标开始ARP欺骗
回到受害者主机,发现已经欺骗成功
开始DNS域名欺骗,未欺骗前,先检测是否可达到真实网址,如下显示网址可达,注意这里的IP地址为[59.37.96.184],欺骗后会发生变化
进行域名欺骗
劫持成功,m.mail.qq.com已经被劫持从而映射到攻击者的IP,此时ping的该域名,IP地址却是[10.10.10.128]
开始使用setoolkit进行社会工程学攻击,伪造网页,利用各种方法诱骗受害者进行登录,尽你所能,上面的案例就是使用二维码的方式
依次选择
1) Social-Engineering Attacks//社会工程学攻击
2) Website Attack Vectors//Web站点攻击载荷
3) Credential Harvester Attack Method//凭证收割机攻击方式
4) Site Cloner//站点克隆
接着输入IP地址和想要克隆的网址即可
此时受害者打开该网站进行登录,由于域名m.mail.qq.com已经被劫持到10.10.10.128,因此该页面为伪造的页面。
攻击者这边已经嗅探到受害者登录
由于时间有限,这里我没有构造截取密码的代码,其实只是一个简单的php提交表单,将受害者输入的账户密码截取下来保存至指定位置,类似部分表单代码如下:
//html代码
<html> <body> <form method="post" action="2018.php" target="_blank"> <input type="text" placeholder="请输入用户名" name="username"/> <br /> <input type="password" placeholder="请输入登录密码" name="password"/> <br /> <input type="submit" name="submit" value="登录"/> <input type="reset" name="reset" value="撤销"/> </form> </body> </html>
//php代码 <?php $username=$_REQUEST[‘username’];//接收帐号 $password=$_REQUEST[‘password’];//接收密码
......
很明显的,受害者的凭证已经被收集,如果登录没有进行限制则QQ可被任意登录并执行各种恶意操作:
防御方法:
1.非安全环境下勿点击来历不明的链接
2.QQ账户,以及涉及到资金财产的账户应该加手机验证码验证登录
3.学习网络安全知识,多看网络安全书籍,网络时代,信息泄露泛滥成灾,这其中“人”是主要因素,因此,提升安全意识迫在眉睫。
4.服务器提供方应当仔细审核上线的网站是否存在欺诈之类的违法行为并及时予以封停。
0x04最终结果
第二天我就收到了Tencent方面的邮件,告知已经对其进行拦截并同步到合作厂商