红颜世家、 发表于 2019-9-1 19:42

与校园网斗智斗勇(一)之分析G姓客户端密码加密

前言
注:
本文由楼主个人博客原创文章修改整理而来,菜鸟技术,大神莫喷。
首先抓包一下 然后我们一个一个数据包分析,今天仅仅分析密码加密。地址进行了一定的处理
第一个包
http://www.baidu.com/cmps/login.php/ppi/authIdentity
version=1.0.9.23&name=13788888888
可以看到第一个数据包仅仅发送了version和name分别为版本和手机号
{"resultCode":0,"resultMsg":"","data":"{\"challege_id\":\"*************************\"}"}
验证成功则返回了一个Challege_id
我们可以冷静的忽略

第二个包
http://www.baidu.com/cmps/login.php/ppi/authChallege
version=1.0.9.23&mac=13:24:73:45:a7:b6&ip=172.36.27.14&name=13788888888&algorithm=1&challege=MAT7I3z6N5DCUa2K&gw_address=192.168.1.1&gw_id=GEXE&ap_mac=&sta_type=pc&sta_model='Microsoft Windows 10, 64-bit'&sta_nic_type=0

mac=13:24:73:45:a7:b6是我们的mac地址
ip=172.36.27.14是我们的局域网ip地址
name=13788888888是我们的手机号
challege=MAT7I3z6N5DCUa2K应该是密码的加密
gw_address=192.168.1.1是服务器地址
sta_model='Microsoft Windows 10, 64-bit'收集了我们的电脑端版本以及是不是pc(pc和手机版网速不一致)
那么我们主要分析challege
搜索一下文本找到了

中文搜索引擎, 条目 854
地址=004328CF
文本字符串=version=%s&mac=%s&ip=%s&name=%s&algorithm=%d&challege=%s&gw_address=%s&gw_id=%s&ap_mac=%s&sta_type=%s&sta_model=%s&sta_nic_type=%d4
然后往上下断点慢慢找 发现一个我们的密码和token会传入




004327C7|.68 B1000000   push 0xB1
004327CC|.8D85 1CE5FFFF lea eax,
004327D2|.50            push eax
004327D3|.E8 283CFEFF   call GiWiFiAs.00416400
004327D8|.83C4 08       add esp,0x8



我们进入这个call
0042FDCE|. /EB 0F         jmp short GiWiFiAs.0042FDDF            ;计算开始
0042FDD0|> |8B85 28FEFFFF /mov eax,                     ;eax=0
0042FDD6|. |83C0 01       |add eax,0x1                           ;eax=1
0042FDD9|. |8985 28FEFFFF |mov ,eax                     ;118=1
0042FDDF|> \8B85 28FEFFFFmov eax,
0042FDE5|.3B85 34FEFFFF |cmp eax,
0042FDEB|.7D 3C         |jge short GiWiFiAs.0042FE29
0042FDED|.8B85 28FEFFFF |mov eax,
0042FDF3|.8B8D 28FEFFFF |mov ecx,
0042FDF9|.8A940D 64FEFF>|mov dl,byte ptr ss:
0042FE00|.889445 F8FEFF>|mov byte ptr ss:,dl
0042FE07|.8B85 40FEFFFF |mov eax,
0042FE0D|.2B85 28FEFFFF |sub eax,
0042FE13|.8B8D 28FEFFFF |mov ecx,
0042FE19|.8B55 0C       |mov edx,
0042FE1C|.8A4402 FF   |mov al,byte ptr ds:
0042FE20|.88844D F9FEFF>|mov byte ptr ss:,al
0042FE27|.^ EB A7         \jmp short GiWiFiAs.0042FDD0


发现这里会混杂我们的token和已经加密过的密码

0042FE1C|.8A4402 FF   |mov al,byte ptr ds:
0042FE20|.88844D F9FEFF>|mov byte ptr ss:,al
负责放入token 因为是edx+eax-0x1eax eax初始为十六进制的20 (十进制32) 随后慢慢递减

0042FDF9|.8A940D 64FEFF>|mov dl,byte ptr ss:
0042FE00|.889445 F8FEFF>|mov byte ptr ss:,dl
负责放入加密后的密码

我们继续往上找寻找加密密码的call
找到了00432835|.E8 46D4FFFF   call GiWiFiAs.0042FC80
然后我们进入找到计算的call 可以分析一下


这样我们就可以写出来加密密码的代码
#include<iostream>

#include <string>
using namespace std;
string calPass(string Pass);
string MakeTempPass(int TempPass);
string GetChallge(string MakePass, string TokenChallge);
int main()
{
       
        cout<<GetChallge(calPass("123456"), "12sax1a1x5sa1da2w864t8hf1h5tf2bf1");
        cin.get();
}

string calPass(string Pass)
{
        string Res="";
        int temps=0;
        for (int i = 1; i <= Pass.length(); i++)
        {

                temps=temps ^ Pass;
                if (i%3==0)
                {
                        Res+=MakeTempPass(temps);

                }
                temps=temps << 8;
        }
        return Res;
}
string MakeTempPass(int TempPass)
{
        string Res="";
        string Charlist = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456";
        int Temp = 0;
        for (size_t i = 0; i <4; i++)
        {
                Temp = (TempPass >> ((3 - i)*6))&0x3F;
                Res += Charlist;
        }
        return Res;
}

string GetChallge(string MakePass, string TokenChallge)
{
        string res = "";
        for (size_t i = 0; i < MakePass.length(); i++)
        {
                res += MakePass;
                res += TokenChallge;
        }
        return res;
}


密码与客户端计算一致

莫抹墨丶 发表于 2019-9-1 23:00

所以具体用途是什么。破译密码?计算加密公式?还是跳过认证?大佬给我个目的性呀

gugouo163 发表于 2019-9-2 10:18

本帖最后由 gugouo163 于 2019-9-2 10:22 编辑

以前大学的时候研究破解星空极速,开了论坛,公开发了拨号器,还有数据包伪装器,后来网站主被电信发函,后来就解散了,但是群依然活跃
以前的星空极速,必须安装客户端,安装后会禁止共享服务,虽然是PPOE拨号,但是会对账号进行加密再拨号,后来算法被破解,可以自己算出账号,后来又出狠招,星空极速每隔五分钟发心跳包给服务器,服务器没收到踢你下线,后来心跳包被大神破解,这个为了多卖账号,真是想尽了办法

tz1039 发表于 2019-9-1 19:59

牛批,吾爱有你更精彩

小基兰博 发表于 2019-9-1 20:01

虽然看不懂,但还是想说大佬牛逼

zhanghailiangji 发表于 2019-9-1 20:01

不错不错,顶一下

墙边等红杏 发表于 2019-9-1 20:01

giwifi吗{:1_926:}

pcdack 发表于 2019-9-1 20:07

牛逼,谢谢lz哈哈哈

airborne 发表于 2019-9-1 20:27

看不懂,但还是想说大佬相当牛逼哦……

宸曜 发表于 2019-9-1 20:38

感觉好像好高大上的样子

kingaero 发表于 2019-9-1 20:47

不错不错,顶一下

瓜皮小丸子 发表于 2019-9-1 20:49

不错,顶一下!
页: [1] 2 3 4 5 6 7 8
查看完整版本: 与校园网斗智斗勇(一)之分析G姓客户端密码加密