快速业务通道

C#编程让Outlook乖乖交出帐户密码

作者 凌众技术 来源 互联网 浏览 发布时间 2012-01-14
的代码是:

// 关闭服务器
ns.Close();
tcpClient.Close();
tcpServer.Stop();
 

    将上面的所有代码依次输入Main函数,编译一下就得到了一个PServer.exe执行文件,它就是我们的伪POP3服务器。PServer.exe体积很小,发行版只有16 KB。

二、获得密码

    首先启动PServer.exe,让我们的伪POP3服务器开始监听来自客户程序的请求。

    启动Outlook,点击菜单“工具→电子邮件帐户”,选择“查看或更改现有电子邮件帐户”,找到要恢复密码的电子邮件帐户,点击“更改”打开它的属性对话框,如图2,把POP3服务器设置为localhost:

图2 更改Outlook电子邮件帐户

    在Outlook中接收一下邮件,如图3所示,Outlook 将报告说服务器中断了连接,不必理睬。

图3 Outlook已经把密码发送到伪POP3服务器了

    现在PServer.exe已经得到帐户的密码了,如图4所示,abc帐户的密码原来是abcdefg:

图4 伪POP3服务器返回的用户名和密码

三、利用嗅探工具

    基于POP3密码在网络上以明文形式传递这一事实,我们还可以利用嗅探工具分析TCP/IP通信过程获得帐户密码。如果你没有VS.NET开发工具,那么可以用这种办法获得密码。即使你拥有VS.NET,也可以用嗅探工具了解POP3通信的详细情况,加深对POP3通信的理解,这对我们用编程的方式利用POP3协议大有好处。

    能够分析TCP/IP通信过程的嗅探工具很多,Ethereal就是一款著名的免费跨平台分析工具。下面我们就以它为例,看看POP3通信步骤和截获POP3密码的过程。

    从http://www.ethereal.com/distribution/win32/下载WinPcap驱动程序和Ethereal的Windows版软件包(两者大小分别约300 KB和8.1 MB),安装WinPcap,再安装Ethereal。

    启动Ethereal,选择菜单Capture→Start,在图5界面中,Interface栏选择与Internet通信的那块网卡,点击OK。

图5 Ethereal

    启动Outlook,用遗忘密码的帐户收一下邮件(不必将帐户的POP3服务器改成localhost),然后在Ethereal中点击Stop按钮。图6显示了一次试验的结果:

图6 嗅探结果

    Ethereal的嗅探结果详细地显示了Outlook与服务器通信的过程。正如我们前面介绍的,从No 6(图七最左栏的编号)记录开始,客户程序和服务器之间建立了POP3通信联系:No 6服务器应答说OK,表示服务器运行正常,可以提供服务,No 7客户程序发送一个请求USER ltt,即告知服务器邮箱帐户的名称ltt,No 8是TCP通信数据,在此我们不必理会,No 9记录服务器应答说“+OK”(帐户名称没问题),并要求提供ltt帐户的密码,No 10记录客户程序发送消息“PASS llll”,其中llll就是要寻找的密码,No 11记录服务器回答说OK,No 12记录客户程序发送请求STAT,STAT命令要求服务器以规范的格式返回邮件数量、占用空间,No 13记录服务器回答说邮件数量0、占用空间0,最后,No 14记录客户程序发送QUIT结束会话请求,No 15记录服务器结束会话——这就是一次完整的POP3通信过程。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号