电子邮件并不是安全的,在邮件的发送、传送和接收整个过程中的每个环节都可能存在薄弱环节,恶意用户如果利用其漏洞,就能够轻易的破解出账号,获得邮件内容。
一、利用邮件服务器操作系统的漏洞
邮件服务器软件是运行在特定的操作系统上的,如Linux、Windows NT/2000等。这些操作系统的默认安装和配置都是不安全的,黑客可以轻易入侵系统,获得所有用户名和密码。
1 Windows服务器
如果是基于Windows2000的Exchange Mail Server,系统本身未做任何安全配置,开放了若干服务。入侵者可以利用终端服务器结合中文输入法漏洞或者IIS的Buffer Overflow程序获得Administrator权限,用pwdump3导出Hash过的密码,再用L0pht挂接字典或者Brute Force就能破解出用户密码。根据经验,如果密码简单,几分钟之内就能破解出,长度在8位及以下的用Brute Force方式在一天内就能解出。
2 Linux/UNIX服务器
UNIX类系统一般采用Sendmail作为邮件系统,在获得了系统的控制权之后,用John等软件就能从/etc/passwd或者/etc/shadow中破解出密码。如果采用了数据库方式来保存用户信息和密码,也是很容易被导出。
二、利用邮件服务器软件本身的漏洞
最常见的邮件服务器程序有Sendmail,Qmail等,在不同程度在都存在安全缺陷。以Sendmail为例,再以前的老版本中,telnet到25端口,输入wiz,然后接着输入shell,就能获得一个rootshell,还有debug命令,也能获得root权限。Qmail相对Sendmail安全,但是Qpoper存在Buffer Overflow缺陷,能够远程得到rootshell,进而控制系统。
即使邮件服务器是安全的,但是入侵者还能获得更多的信息,比如用户名。telnet到25端口,输入expn tom或者vrfy tom就能查询系统是否有tom用户。最新版本的Sendmail虽然禁用了这两个命令,但是可以通过伪造发信人然后用rcpt to来判断该用户是否存在。
得到了用户名,可以telnet到110端口,尝试简单密码的连接,或者套用字典破解。
所以,必须禁止非本域的中继利用(relay),或者采用现在很多ISP都采用的给SMTP加上发信认证的模块,这样能够增强邮件服务器的安全。
除了POP3方式收信之外,比较流行的是在WEB界面上处理邮件。这种方式也不无弱点,一般是通过CGI来接受用户传递的表单FORM参数,包括username和password,如果正确,就可以进入处理邮件的页面。破解已知用户的密码,有很多套用字典或者暴力组合的软件可用,比较著名的是小榕的《溯雪》,在密码简单的情况下,很快就有结果。
WEB邮件系统都有“忘记密码”的选项,如果能破解寄回密码的另外一个邮箱或者猜出提示问题的答案,也能成功。
三、在邮件的传输过程中窃听
在网络中安装Sniffer,指定监听往外部服务器110端口发送的数据包,从收集下来的信息中查看user和pass后的字符串就能看到用户名和相应的密码