破解本地自托管Emby服务
Intro 问题描述 以 emby 为例,学习如何对这种自托管的服务,请求验证网站的软件进行破解,破解的整体思路分为以下的两类: 一种是改客户端,一种是改服务端。两种方式的最终原理一样,都是搭建仿冒认证服务器,客户端访问伪服务器拿到授权信息;【3】 因此无论是那种方法我们都需要搭建伪验证服务器:所以以下的操作是必须的: 抓取定位到验证服务器的地址,并获取验证服务器返回的验证信息格式; 使用 Nginx 搭建虚拟的验证服务器,使其返回激活/验证信息; 如果是修改客户端,则在搭建完验证站后需要: 修改 Host 文件,将请求验证服务器的请求劫持到本地搭建的服务上; 需要伪服务器和客户端都要安装自签名证书 如果是修改服务端,则后续需要: 修改服务端源文件,将默认的认证服务器 mb3admin.com 地址直接改成伪服务器 这样就不需要安装自签名证书 如果是使用 Docker 进行部署的 emby 可以使用别人修改好的服务端的镜像进行部署安装(like 开心版) 本文主要介绍验证服务器的搭建、修改客户端的方法,以及一些其他的注意事项; Server 伪验证服务器搭建 CA 证书申请 什么是证书:什么是 SSL 认证?- SSL/TLS 认证简介 - AWS (amazon.com) 这里由于我们并没有真正拥有认证网站 md3admin 的域名故而没有对应的证书文件,因此需要为自己的服务自签发一个假的证书文件,并手动让浏览器信任该证书,保证在将该域名通过 hosts 修改转移到自己的服务上时,浏览器能正常请求该页面。 下面介绍证书的签发过程(转载自参考文献:【2】): shell mkdir -p <username>/<docker-file-path>/nginx/cert/mb3admin.com && cd <username>/<docker-file-path>/nginx/cert/mb3admin.com # 生成 CA 密钥 openssl genrsa -out ca.key 2048 # 生成 CA 证书 openssl req -x509 -new -nodes -key ca.key -subj "/C=CN/ST=Beijing/L=Beijing/O=<username>/OU=<username>/CN=<username>/emailAddress=<user-email>" -days 36500 -out ca.crt # 将 CA 转换成 p12 格式,并指定密码 (<username>) openssl pkcs12 -export -clcerts -in ./ca.crt -inkey ca.key -out ca.p12 -password pass:<username> # 将 p12 格式的证书 Base64 编码 base64 ca.p12 # Base64 一行不能超过 76 字符,超过则添加回车换行符。如果因为换行的原因,不能安装证书,可以使用 -w 参数 base64 -w 0 ca.p12 # 将 CA 转换成 pem 格式 openssl x509 -outform pem -in ca.crt -out ca.pem # 生成服务端私钥 server.key openssl genrsa -out server.key 2048 # 生成服务端证书请求 server.csr openssl req -new -sha256 -key server.key -out server.csr -subj "/C=CN/L=Beijing/O=<username>/OU=<username>/CN=mb3admin.com/CN=*.mb3admin.com" # 生成服务端证书 server.crt openssl x509 -req -extfile <(printf "subjectAltName=DNS:mb3admin.com,DNS:*.mb3admin.com") -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt 上述代码中替换一下自己的相关信息即可(也可以直接去参考资源中获取直接执行的代码): ...