一种针对电子邮件登录信息进行核查取证的方法与流程

文档序号:11878977阅读:578来源:国知局

本发明涉及信息安全技术领域,特别涉及一种针对电子邮件登录信息进行核查取证的方法。



背景技术:

在一些保密要求较高的企业或团体中,互联网传输内容的监管是一个十分重要的保密手段。与此同时,对企业内部人员互联网使用情况的管理也是企业或团体内部管理的一个重点工作。当前通行的方式是完全杜绝部分涉密设备的联网操作和移动存储设备的接入,部分企业的产品能够通过对即时通信工具进行封堵或仅对访问的web站点的内容进行记录和过滤。

电子邮件是使用比较广泛的互联网通信手段之一,但纵观当前各类产品及技术,均未对电子邮件进行监控,而是仅仅对涉密计算机进行断网或限制邮件传输。这不仅使得工作流程变得较为复杂,很大程度上影响了对电子邮件收发有需求的正常工作,同时也并未解决私有网络内部邮件核查与监控的需求。当前现有的各类产品均无法解决内部网络中电子邮件管控和核查的需求。



技术实现要素:

本发明针对现有技术的缺陷,提供了一种针对电子邮件登录信息进行核查取证的方法,能有效的解决上述现有技术存在的问题。

一种针对电子邮件登录信息进行核查取证的方法,包括以下步骤:

S1:通过通用的抓包工具对电子邮件数据包进行抓取;

S2:TCP协议分析并构建有逻辑的对话数据包;

S3:邮件服务器登陆信息的抓取。

作为优选,所述S1的详细步骤如下:

S11:使用抓包工具对邮件网络数据包进行抓取;

S12:根据端口判断过滤抓取到的数据包;

若对方服务器端口为25端口,则对产生的数据包进行对话形式整理,作为待解析的SMTP协议数据包;

若对方服务器端口为110端口,则对产生的数据包进行对话形式整理,作为待解析的POP3协议数据包;

若对方服务器端口为143端口,则对产生的数据包进行对话形式整理,作为待解析的IMAP协议数据包。

作为优选,S2的详细步骤如下:

S21:数据包会话分类排序;计算数据包中IPV4的长度,IPV4数据体后为TCP头部,在TCP头部开始第5至8byte和9至11byte数据得到SEQ和ACK两个参数;根据前一个数据包的ACK与后一个数据包的SEQ相等的规则来分类和排序;

S22:根据数据包中IPV4的序列号排列会话的逻辑顺序;获得一个单向的排列好的数据包链。

作为优选,S3中针对POP3邮件协议数据包中的登录信息抓取的详细步骤如下:

S31:查找数据包链中的帐号特征,具体格式为“USER 0x20<帐号>0X0D0X0A”;向后遍历“+OK<content>”有则表示用户名有效,记录该帐号;

S32:查找数据包链中的帐号特征,具体格式为“PASS 0x20<密码>0x0D0x0A”,向后遍历到“+OK<content>”有则表示密码有效,记录该密码。

作为优选,S3中针对IMAP邮件协议数据包中的登录信息抓取是对主动发向对方143端口的数据包链进行监听查找具体格式为:“<ID>0x20LOGIN0x20<帐号><密码>0x0D 0x0A”的数据,记录格式中帐号和密码数据;

作为优选,S3中针对SMTP邮件协议数据包链中的登录信息抓取;

该协议支持两种登陆方式;检测到“AUTH LOGIN”执行S41,检测到“AUTH PLAIN”执行S42;

S41:帐号密码分离发送时的解析方式,其步骤如下:

S411:首先对下一个服务器发来的包进行解析,字符334后开始取值,直到0x0D 0x0A结束;

S412:解析334+0x20之后的数据,若为“username:”表示服务器要求发送用户名;若为“password:”表示服务器要求发送密码;

S413:根据S412可以确定对话中下条从本地发出的信息为用户名或密码;获得用户名或密码的值并记录,执行S43;

S42:帐号密码合并发送时的解析方式,当检测的到“AUTH PLAIN”开头的数据时,向后遍历并提取0x20后的数据,直到0x0D 0x0A结束,这段数据包含帐号和密码,记录这段数据,执行S43;

S43:确认帐号密码有效性;监测来自对方25端口的数据,若收到“235 Authentication successful”字样,则表示帐号密码有效,确认获得的帐号密码有效;否则遗弃前面的结果。

与现有技术相比本发明的优点在于:能够对常用的POP3、IMAP以及SMTP三种邮件协议的数据包进行解析,兼容性高,获取内网中的电子邮件登陆凭证,有效防止和追踪因电子邮件发送内部机密文件带来的损失。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下举实施例,对本发明做进一步详细说明。

一种针对电子邮件登录信息进行核查取证的方法,包括以下步骤:

S1:通过通用的抓包工具对电子邮件数据包进行抓取;

S2:TCP协议分析并构建有逻辑的对话数据包;

S3:邮件服务器登陆信息的抓取。

所述S1的详细步骤如下:

S11:使用Wireshark或任何其他抓包工具对邮件网络数据包进行抓取

S12:根据端口判断过滤抓取到的数据包;

若对方服务器端口为25端口,则对产生的数据包进行对话形式整理,作为待解析的SMTP协议数据包;

若对方服务器端口为110端口,则对产生的数据包进行对话形式整理,作为待解析的POP3协议数据包;

若对方服务器端口为143端口,则对产生的数据包进行对话形式整理,作为待解析的IMAP协议数据包。

所述S2的详细步骤如下:

S21:根据数据包的会话标记分类排序;

TCP包最前面一部分为该包的头描述部分。头描述部分包括三个区域,MAC头、IPV4头以及TCP头;首先跳过定长的14个byte的MAC头,第15个byte表示的是IPV4头的版本和长度。

例如这里15个十六进制数据是45,4表示使用的协议是协议的v4版本,5表示ipv4头的长度为5*4=20byte。

根据这里获得的ipv4头长度,即可获得TCP头的位置;TCP头区域中,存在SEQ以及ACK两个参数,分别在头中的第5到8byte以及9到11byte。

SEQ参数和ACK参数实际上是一个长整型数字,用于标识会话。如果有另一个数据包的ACK与本数据包的SEQ相等,则可以确认这两个数据包属于同一个会话,且同一个会话中以SEQ小到大的顺序排序数据包;

通过这种方式可以将TCP通信过程中的众多数据包整理成对话形式。

S22:根据数据包中IPV4的序列号排列会话的逻辑顺序;

同一个会话中单向的数据包可能会有多个,每个包都有固定的顺序,但是抓取的顺序并不一定相同,因此需要对对话内的单向数据包的顺序进行整理,以便后期拼接邮件数据或监控通信数据。

每个TCP数据包在其IPV4头中均包含了一个唯一的序列号,该序列号通过取ipv4头区域起始部分的第五个byte开始,取2byte长度的数据。序列号为一个整形数据。

例如该2byte长度的数据为“62EB”,表示该包为会话单向序列中的编号为25323的包。

该序列号在会话中是单向增加,每次增加1。根据该序列由小到大的顺序依次排列,可以将会话中某个方向的数据包的逻辑顺序整理清晰。

S3:分别对POP3、IMAP、SMTP协议数据包进行登录信息抓取;

POP3邮件协议数据包中的登录信息抓取;POP3协议面向对方服务器的110端口进行通信,因此需要针对110端口产生的数据包链进行分析。

S31:账号获取;

TCP包三次握手后,客户端主动发向对方服务器的110端口的包的数据区域中如果包含USER字样,则开始解析,直到遇到0x0D 0x0A结束。具体格式为USER 0x20<帐号>0X0D 0X0A;

如果对方返回+OK<content>则表示可以继续操作,该用户名有效。

S32:密码获取;

密码同样包裹在发向对方110端口的数据包链的数据区域中。如果遇到PASS开头数据,则开始解析,遇到0x0D 0x0A结束。具体格式为PASS 0x20<密码>0x0D 0x0A。

如果对方返回+OK<content>则表示可以继续操作,该密码有效。

IMAP邮件协议数据包中的登录信息抓取;

IMAP面向端口为143,对主动发向对方143端口的数据进行监听,遇到数据域中有id 0x20LOGIN则开始解析,直到遇到0x0D 0x0A结束。具体格式为:<id>0x20LOGIN 0x20<帐号>“<密码>”0x0D 0x0A;

这里id用于表示该指令的编号。可以是一个字符加数字,也可以是纯数字。其中数字部分逐一递增。对于IMAP来讲,LOGIN是登陆的关键词。这里按顺序解析帐号密码即可。

SMTP邮件协议数据包中的登录信息抓取;

SMTP协议面向端口为25;该协议支持两种登陆方式,两种方式需要同时监听,根据检测到的字符不同选用不同的字符;对本地发出的包进行监听,检测到AUTH LOGIN执行S331,检测到AUTH PLAIN执行S332。

S41:帐号密码分离发送时的解析方式;

S411:这里需要对数据包进行双向分析。当检测到本地发出AUTH LOGIN后,开始记录并解析数据。首先对下一个服务器发来的包进行解析,字符334后开始取值,直到0x0D 0x0A结束。

S412:这里334+0x20之后为服务器要求的信息,解析若为“username:”,表示服务器要求发送用户名。若为“password:”表示服务器要求发送密码。

S413:根据S412可以确定,对话中下条从本地发出的信息为用户名或密码。则从下一各从本地发出的数据包中获得用户名或密码,遇到0x0D 0x0A结束。

S42:帐号密码合并发送时的解析方式;

当检测的到AUTH PLAIN开头的数据时,则直接取接下来的空格后的数据,直到0x0D 0x0A结束;这里的数据包含帐号和密码。帐号和密码无间隙地被拼接在一起。

S43:确认帐号密码有效性;

在S41或S42流程结束后,监测来自对方25端口的数据,若收到“235Authentication successful”字样,则表示帐号密码有效,可以确认获得的帐号密码是真实的;否则可以遗弃前面的结果。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1