Foxmail 本地邮箱密码破解思路方法分享

本文主要以POP3为例讲解, 其他邮件协议可以参考思路, 自行尝试解决。

最近发生了一件比较尴尬的事, 公司邮箱密码忘记了, 又不想麻烦IT部门更改, 就想尝试下自己破解下本地的密码。 (反正密码已经以加密形式保存在本地电脑上了)

看到网上分享的一些办法, 大体有俩种:

一、破解本地密码文件。(密文通过秘钥(不通版本秘钥有差别), 异或运算计算出的密文密码, 解密就是按照加密规则逆运算回去)

二、 去掉SSL访问, 用抓包工具(wireshark等)抓取明文数据。

第一种耗时耗力, 版本差异引起方法不通, 还需要破壳工具啥的自己去实际抓抓。

第二种不能用, 公司邮箱服务不允许明文连接, 加密数据不好破解。

所以我用了另一种方式, 下面直接分享步骤和代码, 后面再分享思路

1. 更改hosts文件, 添加如下内容:

127.0.0.1 <pop3邮件服务地址>

2. 更改foxmail邮箱服务配置, 去掉SSL

20210819104046880.png

3. 启动python写的服务程序, 代码如下:

import socket
if __name__ == "__main__":
    s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind(("127.0.0.1", 110))
    s.listen(1)
    print("ready")
    while 1:
        conn, addr = s.accept()
        print("connected by "+str(addr))
        conn.send("+OK, POP3 server is ready.\r\n".encode("UTF-8"))
        while 1:
            data=conn.recv(1024).decode("UTF-8")
            if(data.find("QUIT") == 0):
                conn.close()
                break
            else:
                if(data.find("USER") == 0 or
                        data.find("PASS") == 0):
                    print(data.strip())
                conn.send("+OK\r\n".encode("UTF-8"))

 4. foxmail中点击“收件”, Python服务打印用户名密码:

20210819104709323.png

本地的加密用户名就获取到了。

 下面说下思路。其实思路也很简单, 就是模拟POP3协议, 写个假的POP3服务, 然后让foxmail连接这个POP3服务, 并把用户名和密码发送给我们的POP3服务。也是参考抓包提取密码的方法。只是没见过其他人分享过, 自己就分享了下, 其他邮件协议也可以参考下, 不需要把邮件协议完全模拟出来, 只要能够骗过FOXMAIL把用户名密码传过来认证就可以了。

下面大体说下POP3协议:

1. TCP三次握手, 连接到POP3服务

2. 服务端发送  “+OK...”信息, 表示服务已经准备好, 等待客户端发送认证信息。(POP3消息边界符也是 CRLF, 别忘记在消息后面添加)

3. 客户端 发送 USER <邮箱名>  到 POP3服务

4. POP3 返回“+OK”消息, 等待客户端发送密码认证

5. 客户端发送  PASS <邮箱密码> 到POP3服务

6. POP3返回  “+OK”消息, 表示认证成功, 就可以等待客户端接下来的操作了

7. 客户端发送 QUIT 表示断开连接。

基于这个步骤, 我们就可以写个模拟POP3协议的服务, “骗取”foxmail的本地密码。当然这种只适合用户忘记本地密码。(密码已经存储在本地了, 只是忘记了, 所以不算做坏事。)

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值