sijor 发表于 2020-8-23 14:01

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

本帖最后由 sijor 于 2020-8-29 17:23 编辑

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

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

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

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

打码的地方还是隐隐约约能看到的,最好去修改一下哦
页: [1] 2 3 4 5
查看完整版本: 记录一次E-mail的抓包|分析|解包的过程