午后阳光——纯粹原创空间

转载请邮件联系,谢绝盈利机构转载 音乐教育了我们...

  DonewsBlog  |  Donews首页  |  Donews社区  |  Donews邮箱  |  我的首页  |  联系作者  |  聚合   |  登录
  9篇文章 :: 0篇收藏:: 3篇评论:: 0个Trackbacks

公告


qq:828345
MSN:
tomqq2020@hotmail.com
职业生涯:
从事网络安全设备的开发,IDS,sslvpn,数据库网络审计,漏洞研究。 精通网站脚本语言以及web安全;精通wap,phs开发;主要使用语言为c/c++,java,主要开发平台为linux。
2004年毕业于四川大学计算机应用专业,硕士学历。毕业后进入某研究所从事安全设备研发;目前在某外企从事ssl-vpn的研发。

文章

收藏

相册

我得好朋友

存档


正在读取评论……


DB2通信协议的解析

sunjita 8/29/2004

 

 

1         概述

DB2通信协议是未公开的私密协议,协议比较复杂。由于目前没有能够解析DB2协议的分析工具,所以根据项目需求和实际情况,确定了如下审计方案:

1)  审计数据参照样本最新版本的IBM.DB2.Universal.Database.Eeterprise.Server.Edition.V8.18.2,运行平台为:Windows Professional 2000

2)  通信连接方式使用DB2自带客户端进行;

3)  通过在不同版本、不同设置、3种不同连接方式(CLI、命令编辑器、使用JAVA语言开发的程序)下,执行相同功能的指令,对比所得结果,同时参考其他数据库通信协议,来进行推测和判断。

4)  完成的审计内容包括:数据库登陆行为、登陆结果;SQL语句的内容、执行结果;对数据库操作的部分内容、执行结果;存储过程调用、执行结果;同时对于以上所有内容,记录时间发生时间、源IP、目的IP,操作数据、目的表。

5)  审计结果属于经验数据。

2         DB2协议

DB2协议数据共有特征:

1)  DB2服务端口(默认为50000),有效载荷第一字节固定为00,第三字节固定为d0,因此可以认为凡是第一字节为00,第三字节为d0的数据包为DB2协议数据;

2)  其中d0后所跟1 字节为操作类型,目前测试发现已有4x系列和5x系列;

3)  相同的功能,在不同的连接方式下,通信数据有一定的差别,目前还没有发现出比较强有力的差别特征;

4)  操作结束后,客户端一般会发出10字节的询问串,服务端应答相应的结果串。

1.1      客户端连接

通过测试对比,对DB2服务断的连接行为,通常有形如以下字段:

客户端向服务端发出请求:
如下图:

00 26 | d0 41 00 01 00 20 10 6d | 00 06 11 a2 00 03 00 16 | 21 10 e2 c1 d4 d7 d3 c5

其中红色字节可以作为特征识别码。

 

 

服务端返回应答:

成功返回:00 10 | d0 43 00 01 00 0a 14 ac | 00 06 11 a2 00 03 00 15 | d0 42 00 02 00 0f 12 19 | 00 06 11 49 00 00 00 05 11 a4
如下图:

 

 

连接失败:00 10 | d0 43 00 01 00 0a 14 ac | 00 06 11 a2 00 03 00 15 | d0 02 00 02 00 0f 12 19 | 00 06 11 49 00 08 00 05 11 a4 0f

如下图:

其中红色加大字节为判断失败成功的标志。

 

 

1.2      SQL语句

SELECT:

以下所有图形中,其中黄色为行为特征字节,红色为审计元素值。

Clientserver发送的串:



执行成功后,serverclient返回的串:


执行失败的返回:

INSERT

Clientserver发送的串:


执行成功后,serverclient返回的串:

 

 

执行失败后,serverclient返回的串:

DELETE

Clientserver发送的串:

 

 

Server的成功响应:


Server失败的返回:

UPDATE

Clientserver发送的串:

成功后server返回串:

失败后Server返回串:

 

CREATE DATABASE:

Clientserver发出请求:

 

 

成功后响应:

 

 

 

 

DROP DATABASE:

莫法

 

 

CREATE TABLE:

Clientserver发送的串:

 

 

操作成功后Server返回串:

 

 

失败后server返回:

 

 

DROP TABLE:

Clientserver发送的串:

 

 

成功后server返回:没有有效特征

 

 

失败后server返回:

1.3      存储过程

      数据特征类似于sql语句。在DB2中,无论是存储过程还是sql语句,为了提高效率,最后统一转化为存储过程。

 

 

ClientServer发出请求:



操作成功后server的返回串:紧跟请求后的第一帧

 

 

操作失败后返回串:

其中第二个失败号为失败代码,第一个代码显示成功。



Trackback: http://tb.donews.net/TrackBack.aspx?PostId=1184729


[点击此处收藏本文]  发表于2007年07月09日 11:41 PM




正在读取评论……

发表评论

大名:
网址:
验证码
评论