-
-
[原创]Brute Ratel C4 Keygen
-
发表于:
2022-10-18 00:36
15649
-
[原创]Brute Ratel C4 Keygen
分析
Brute Ratel C4简称brc4,一款C2工具,功能和CobaltStrike差不多,界面花里胡哨,用了不少开源黑科技,据作者说前段时间被竞争对手Mdsec泄露到VT,然后又被老毛破解了...公布的版本是v1.2.2,给的license文件只支持到2023-01-01,于是打算抽空看看作者是怎么保护的。
压缩包网上都有,先看目录结构:
包只支持linux,可在ubuntu上自测,界面是Qt写的,commander-runme是运行脚本,.brauth是license,brute-ratel-linx64是server,启动会进行license验证。
启动参数:./brute-ratel-linx64 -ratel -a admin -p 123456 -h 127.0.0.1:8443 -sc cert.pem -sk key.pem
先扫一下如图:
可知server是Go写的,正好试下ida 7.7解析metadata,发现没识别到,搜了字符串发现是1.18,ida8.0(https://hex-rays.com/products/ida/news/8_0/)才支持。
后面用了下0xjiayu兄弟的go_parser,正好支持到1.18,问题不大,把符号贴上去后就感觉没什么玩的了。
看了看逻辑:
1 2 3 4 5 6 7 8 | main_main
main_product_info
stat / / 判断.brauth文件是否存在
if (flase)
main_validate_activation_key / / 从服务端校验激活key,生成.brauth
main_DecryptBlob / / 解密.brauth,ECB mode
main_KeyExpansion / / 密钥扩展 128
main_decryptmsg / / xAES解密轮函数
|
xxxAES轮函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | AddRoundKey( 10 , state, RoundKey);
InvShiftRows(state);
InvSubBytes(state);
for ( round = 9 ; round > 0 ; - - round )
{
InvShiftRows(state);
AddRoundKey( round , state, RoundKey);
ShiftRows(state);
InvMixColumns(state);
InvShiftRows(state);
InvSubBytes(state);
}
MixColumns(state);
AddRoundKey( 0 , state, RoundKey);
|
开始以为作者留了小动作,上linux_server远程调试看了看其它地方,再确认了下密钥扩展的结果,然后只是轮函数简单改了改-。-
KeyGen
再看下license结构:
1 2 3 4 | 加密前: 01 - 01 - 2000 : 01 - 01 - 3000 :YourLicense:foo@foo.com:Just 4 fun
格式:start:expired: type :email:note
加密后:v8l7HAP1rnsFZLwL:k9eYKc + dzgi / ybsVCfgVowQwS3Nufd1NdooFsXKPvxgDRE2pWVlTPPRyjcB9vqeaqFC4Mgj / Nv8Qq7 + QvixxoQ = =
格式:key:base64(xxxAES_ECB(data))
|
最后附上一个keygen,有兴趣的可以玩玩...
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2022-10-18 00:36
被BlackINT3编辑
,原因: