Categories
随心所记

某邮件管理系统的hack

题外话:纯属技术研究,如有雷同,纯属巧合。

某邮件集中管理系统,包含一个主程序EmailControl.exe和几个com组件,大部分的功能都是在com组件中完成。

先使用peid判断,主程序是vc7.1程序,com组件未知。

应该是连接一个远程数据库,在运行期间,使用netstat -a,很容易得到服务器ip,为192.168.0.*。服务端口1433,基本认定是一台MS SqlServer服务器。这在后一部分的sniffer中得到验证。

通过iris 4.0抓包解码,确认了是SQLServer数据库,并且应该是通过ADO以sqloledb的方式存取。俺比较笨,拿出以前做的一个程序,抓包一看,完全一致。而且比对一看,基本上分析出数据库ip为192.168.0.*,数据库名称为**Manager,用户名为sa,看来是用sqlserver的帐户管理,不是windows帐号验证机制。密码是加密的,不想研究了。

数据库的ado链接都是通过一个连接字符串,这个字符串在运行期间是没有加密的。于是启动OD,启动程序,在输入用户名密码后,弹出错误对话框。回到OD,ALT+M,打开内存,查找字符串192.168.0.*,果然找到了。字符串就是最最常见的”Provider=sqloledb;Data Source=192.168.0.*;Initial Catalog=**Manager;User Id=sa;Password=*****;”,sqlserver的服务器帐号密码都拿到了,而且是sa的密码,足够了。

题外话:

1. 其实还是费了很多弯路的。开始的时候以为系统开始输入的帐户名密码就是登陆服务器的密码,所以想在点击登陆按钮下断点,水平很菜,在user32.dll的TranslateMessage断下来,但是后面很快晕了,很多com调用不知所以然。(汗死,听人说com很规矩,很好弄 :()

2. com跟踪,使用ComTrace很方便,可以显示所有的调用以及参数。ComTrace的网址在这里,直接google的话,会到该作者的另外一款软件,估计是做seo。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.