吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8710|回复: 43
收起左侧

[原创] 记录一次E-mail的抓包|分析|解包的过程

  [复制链接]
sijor 发表于 2020-8-23 14:01
本帖最后由 sijor 于 2020-8-29 17:23 编辑

         最近一直在学习抓包解包,给大家分享一次E-mail的抓包解包的实验过程,共同学习,如有大神路过,请指点不足之处,多谢!
     
实验开始: 使用的是Foxmail给自己发送一张图片附件,发送前使用Wireshark捕获数据包,原图如下:            
          7.jpg
        设置过滤条件:输入"smtp",可以清晰的看到SMTP发送邮件的详细过程了         
            1.jpg
       对具体数据包的分析:    54号数据包是客户端向服务器端发送的EHLO指令,向服务器表明自己的身份,在信息中可以看到客户端计算机的名字;接下来的第58号数据包是客户端向服务器端发送的AUTH LOGIN指令,请求登陆认证;接下来的第61号数据包中是经过加密登陆用户名,SMTP是不接收明文的,必须是通过64位的编码之后才能发送,采用的是Base64的加密形式;第63号数据包中是经过加密后密码;第68号数据包表示邮箱登陆成功;第69号数据包中是发送邮件的账户,第73号数据包中是接受邮件的账户;第75号是数据包中是客户端发送的内容;接下来第76号数据包可以看出服务器端使用了<CR><LF>接受了文本的内容,因为SMTP是属于请求应答的模式,都是基于ASCII文本,并且CR(车)LF(换行)作为结束符;第77~127号数据包就是所发送的数据,由于这个邮件数据比较多,因此分多个数据包进行发送;接下来的第129号数据包是发送邮件的账户和主题等等的信息.
          1.jpg
       恢复数据包中的图片文件:附件图片是以base64编码格式的TCP数据流,需要解码成二进制的图片文件,才能完美还原图片,但是在网上没有找到合适的软件,干脆自己用C语言写了一个Base64ToImage解码小工具 ( 贴中分享给大家的, 解压码:52pojie )
      1.首先在任意数据包上点击邮件,选择跟随TCP数据流
       1.jpg
     2.接下来就可以看到完整的TCP数据流了
      2.jpg
    3. 框中可以看出附件是一个图片格式的文件,第框中就是图片Base64编码后的可见字符数据了,把这些数据复制到记事本中保存为TXT文件,最好是和Base64ToImage解码小工具放在同于文件夹下,当然也是为了操作方便.
      3.jpg
    4.不过在解码还原中间还要多做一步,大家是否注意到保存好的TXT文件中,Base64编码并是不连续的,那是因为服务器使用了<CR>回车<LF>换行的方式接收了附件
    4.jpg
         也就是说现在的数据流中每行中都多出了<CR><LF>这两个字符,也就是0D 0A这两个十六进制数,从WinHex中可以清晰的看出每76个字节就有一个0D0A,怎么办呐,相信这点是难不倒聪明的大家的,利用WinHex的替换功能就可以完美解决,这里就不在多熬述,其实还有个问题,大家有想过吗?如果发件人隐藏了附件格式,或者干脆把扩展名删除,大家还能不能分辨出是什么文件吗?可以思考一下哦!
    5.去掉<CR><LF>后,就可以开始还原图片啦,命令行下进入Base64ToImage解码小工具目录,然后输入Base64ToImage TXT文件.txt  解码目标文件.jpg,哈哈!一闪而过,可以看到同目录下生成了一个Jpg格式的文件,这就是我们想要得到的附件了,
    5.jpg     6.jpg
        打开看看是不是和发送的附件图片一样呐!
        
      实验总结:其实这其中还有很多可分析和借鉴的东西,我也是在不断学习的道路上,在此分享的目的是和大家共同学习,同时逼着自己不断提高自己的水平,希望大家多提宝贵意见.

Base64ToImage.rar

30.02 KB, 下载次数: 10, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 14吾爱币 +12 热心值 +12 收起 理由
h4585 + 1 + 1 用心讨论,共获提升!
一枪孕 + 1 我很赞同!
shdily + 1 这些图片打码跟玩儿似的……
cml123 + 1 + 1 我很赞同!
volcanst + 1 + 1 谢谢@Thanks!
不茜 + 1 我很赞同!
wapj4765 + 1 + 1 热心回复!
blindcat + 1 + 1 用心讨论,共获提升!
愤怒的X苹果 + 1 + 1 我很赞同!
xiao9798 + 1 + 1 我很赞同!
zxc123Qwe789 + 1 + 1 用心讨论,共获提升!
我不玩游戏 + 1 我很赞同!
llwj520 + 1 + 1 热心回复!
20031122 + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

6767 发表于 2020-8-23 22:03

标准smtp协议,不用抓包直接看rfc
https://tools.ietf.org/html/rfc5321#section-1.2

免费评分

参与人数 2吾爱币 +1 热心值 +1 收起 理由
idou + 1 热心回复!
blawhickte + 1 热心回复!

查看全部评分

zch11230 发表于 2020-8-24 15:13
不加密的流程百度有很多,就搜telnet smtp就可以,之前因为有个个性化的需求,自己就跟着研究了下通过TCP直接操作发邮件。当然对照着理解肯定更方便。
说到这里我有个疑问,大家知道有些邮件服务器的端口不是默认的25和110,我是发件方,我通过自定义的端口登陆操作没问题,但是如果收件方也是自定义的,我在发邮件时只填了一个收件方的邮件地址,通过这个地址最多解析到IP和对应的收件人帐户,是如何把这个数据传到自定义的端口的呢?
20031122 发表于 2020-8-23 14:32
12399 发表于 2020-8-23 15:43
看一看,混个脸熟
zhangjj001 发表于 2020-8-23 16:20
关注了!!!!
sunshy` 发表于 2020-8-23 17:00
在看,感谢分享
Liushan622 发表于 2020-8-23 17:15
学习,感谢&#128591;
姽婳酿 发表于 2020-8-23 18:45
膜拜大佬!!!
feideng 发表于 2020-8-23 20:33
学习,想问下大佬,72和74是什么意思?
lou.zhichen 发表于 2020-8-23 20:58
打码的地方还是隐隐约约能看到的,最好去修改一下哦
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 23:09

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表