Administrator
发布于 2023-06-29 / 3 阅读 / 0 评论 / 0 点赞

Emby 客户端的Emby Premiere解锁

Emby 客户端的Emby Premiere解锁

环境:

Client:

IOS Emby客户端

Server

群辉Emby官方套件
一台搭建在内网的ubuntu虚拟机

原理

Emby Premiere激活原理

Emby Premiere在任一客户端的解锁均是在线的请求验证,通过携带授权Key向mb3admin.com请求后获取的多个http请求的返回结果来判断是否是合法的授权用户

破解原理

通过修改路由器host的方法来做到将域名mb3admin.com劫持到自身的虚拟机上后并修改为认证成功的返回结果,直接进行授权破解。

破解步骤

虚拟机IP:192.168.50.65

修改host

在host中添加一条记录阻止dns定向

mb3admin.com 192.168.50.65

配置nginx

在虚拟机上设置一个mb3admin.com域名的nginx代理服务,主要包含如下代码

server
{
listen 80;
server_name mb3admin.com;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/mb3admin.com;

location /admin/service/registration/validateDevice {
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Headers *;
    add_header Access-Control-Allow-Method *;
    add_header Access-Control-Allow-Credentials true;
    default_type application/json;
  return 200 '{"cacheExpirationDays": 7,"message": "Device Valid","resultCode": "GOOD"}';
}
location /admin/service/registration/validate {
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Headers *;
    add_header Access-Control-Allow-Method *;
    add_header Access-Control-Allow-Credentials true;
    default_type application/json;
  return 200 '{"featId":"","registered":true,"expDate":"2099-01-01","key":"123"}';
}
location /admin/service/registration/getStatus {
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Headers *;
    add_header Access-Control-Allow-Method *;
    add_header Access-Control-Allow-Credentials true;
    default_type application/json;
  return 200 '{"deviceStatus":"","planType":"","subscriptions":{}}';
}
}

测试Http的结果

打开网址 http://admin/service/registration/validateDevice
如果返回值的结果为如下值,则继续
{"cacheExpirationDays": 7,"message": "Device Valid","resultCode": "GOOD"}

SSL自签证书以及自颁发CA

由于验证授权时所需的请求是https,所以http无法满足我们破解的需要,我们需要给它做一个自签的ssl证书以及安装配套的CA来让客户端能顺利解析https请求。

使用CloudFlare的工具生成SSL证书和CA证书

下载地址:https://github.com/cloudflare/cfssl/releases
只需要下载其中的cfsslcfssljson即可

注意,范例中使用的是windows的工具来生成的ssl证书,因此下载cfssl_version_number.exe和cfssljson_version_number.exe,如果用的其他平台请注意下载的工具

步骤一

首先生成CA证书和CSR的配置文件
命令如下:
cfssl print-defaults config > ca-config.json
cfssl print-defaults csr > ca-csr.json

注意生成的文件有可能存在编码问题,如果存在问题,请先将生成的文件的编码设置为utf8

修改ca-csr.json为如下形式,相关的含义请自行了解,此处为可行的范例

{"CN": "Faker CA", "hosts": [], "key": { "algo": "ecdsa", "size": 256 }, "names": [ {"C": "CN", "ST": "SH", "L": "Shanghai", "O": "Fake Co., Ltd.", "OU": "Technology Service Center" } ] }

步骤二

执行命令生成CA证书以及对应的私钥
cfssl gencert -initca ca-csr.json | cfssljson -bare ca

步骤三

复制一份ca-csr.json,命名为emby-csr.json并进行修改,这个文件用于使用自建CA签发证书,其中的内容如下所示

{ "CN": "mb3admin.com", "hosts": [ "mb3admin.com", "*.mb3admin.com" ], "key": { "algo": "ecdsa", "size": 256 }, "names": [ { "C": "FR", "ST": "Reims", "L": "Reims" } ] }

步骤四

执行命令签发证书
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=www emby-csr.json | cfssljson -bare emby

将SSL证书颁给域名

四个步骤均成功执行后会得到四个文件
1、ca.pem
2、ca-key.pem
3、emby.pem
4、emby-key.pem
我们用的到的是1、3和4号文件
其中3和4号文件将作为ssl的证书
其将放置于nginx中,代码为如下所示

注意,仅包含nginx中的ssl相关的配置,非全部内容

server
{
	listen 443 ssl http2;

    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    ssl_certificate    /www/server/panel/vhost/cert/mb3admin.com/emby.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/mb3admin.com/emby-key.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;

    #SSL-END
}

CA证书安装

以群辉为例,DSM使用root登录SSH,进入路径/var/db/ca-certificates/手动创建一个 Faker_CA.crt 文件,把ca.pem文件中的内容粘贴进去,然后执行update-ca-certificates.sh更新CA证书

以IOS为例,我们需要同样的建立一个Faker_CA.crt文件并把ca.pem文件中的内容粘贴进去,通过发送邮件的形式将邮件寄出,然后在手机上使用Safari浏览器登录邮箱后并打开邮箱的附件,将Faker_CA.crt下载后会提示安装描述文件
安装后,进入到手机设置>通用>关于本机>证书信任设置,然后将安装的FakeCA证书勾选为信任

测试Https的结果

打开网址 https://admin/service/registration/validateDevice
如果返回值的结果为如下值,则继续
{"cacheExpirationDays": 7,"message": "Device Valid","resultCode": "GOOD"}

破解完成

打开Emby客户端,此时即可发现已经成功的拿到了金标


评论