今天在《网络渗透测试--保护网络安全的技术、工具、过程》一书中看到了一个关于对恶意链接进行域名伪装的方法,以前从不知道的一个方法,特此记录下来:
我们通常使用的都是以下这种格式的域名:
www.example.com
浏览器在将域名发往dns服务器之前,会先对域名进行第一步处理,这里就涉及到一个隐含的知识:“@”符号
如果在浏览器地址栏中输入一个包含“@”符号的域名,浏览器在发送该域名之前,会自动忽略“@”符号之前的所有内容。
这个应该不算是一个漏洞,大多数浏览器都会包含这种默认的方式。如果我们利用这个不是漏洞的漏洞,就可以构造出一个能将被攻击目标,引导至我们攻击页面的,看似正常的url地址:例如:
http://www.baidu.com@www.example.com
如果被攻击不对该链接进行详细观察,或者缺乏必要的计算机应用知识,就可以被一个冒充来自百度的页面www.example.com攻击。
当然,我们要讲的不单单是这种构造方式,很明显,这样构造出来的页面在今天已经完全没有欺骗性可言,大家看到这个url地址都会心生怀疑,毕竟傻子都可以看出来这里有两个url地址,非常可疑。下面我们就来对后面的恶意域名进行伪装:
所有的域名,其实都对应着一个ip地址,我们可以将域名转换为iP地址,但这还是一个非常愚昧的伪装方式,不可信的原因自不必说,和上面一样。我们还有另一种方式:
其实每个iP地址都可以转化为一个十进制数,这个十进制数同样会被域名服务器(DNS Server)解析到对应的ip
我们在这里举个简单的例子,假设ip为172.168.23.113。(这个ip在现实网络中是不可被路由的,这里我们仅仅用来作为演示举例使用,请遵守响应的法律法规)
现在的ip4是由4组三位十进制数组成的
对于172.168.23.113这个域名进行对应十进制转化的方法如下:
将第一个三位十进制数乘以256^3或者16,777,216(256的3次方):172*16,777,216=2,885,681,152
再将第二个三位十进制数乘以256^2或者65,536(256的2次方):168*65,536=11,010,048
再将第三个三位二进制数乘以256(256的1次方):23*256=5,888
最后将第四个三位二进制数乘以1(256的0次方):113*1=113
将以上四个式子最后的结果相加:2,885,681,152+11,010,048+5,888+113=2,896,697,201
最后这个十进制数字就是最后等价于172.168.23.113这个ip的十进制数了,可以直接在浏览器中输入"http://这个十进制数",就可以访问172.168.23.113这个web服务器了,如:
http://2896697201
到这里,用这种方式进行域名伪装的各个部分原理讲清楚了,便也就明白了如何去运用这种特殊的方法去进行域名伪装了吧:
假设我们要装作百度的客服人员给某个百度客户发一份社工邮件去套取相应的用户名密码,我们精心在172.168.23.113这个服务器上布置了钓鱼页面,接下来就可以发送我们精心编制的社工邮件,并将一下url地址嵌入邮件一并发送:
http://www.baidu.com@2896697201
这样我们的目的基本就达到了,接下来便可以等待页面提交过来的用户名密码来进行下一步渗透工作了
(特此声明,以上内容仅作为本人学习笔记以及相同爱好的同仁们研究学习之用,请遵守我国相应法律法规,切勿用作非法用途)