破解x-pack 6.0和更新许可证(License)

环境

Ubuntu 16.04.2 LTS
JDK 1.8.0_131
XShell 5
Luyten 0.5.0
Elasticsearch 6.0
Kibana 6.0
Logstash 6.0
x-pack 6.0
注意:
不要在windows下加压缩jar包,要使用jar命令解压缩jar包。
x-pack 6.0.0 没有默认密码,需要自动生成密码:

bin/x-pack/setup-passwords auto

破解

反编译class文件

在elasticsearch安装目录plugins/x-pack/找到x-pack-6.0.0.jar文件。

# 新建测试目录
mkdir test

# 剪切到测试目录
mv /usr/local/elasticsearch/plugins/x-pack/x-pack-6.0.0.jar test/

# 切换到测试目录
cd test/

# 解压jar包
jar -xvf x-pack-6.0.0.jar

# 移除jar包
rm x-pack-6.0.0.jar

找到文件org.elasticsearch/license/LicenseVerifier.class,并用Luyten(jd-gui不准)反编译,并拷贝内容到新建的文件LicenseVerifier.java,内容如下:

package org.elasticsearch.license;

public class LicenseVerifier
{
    public static boolean verifyLicense(final License license, final byte[] encryptedPublicKeyData) {
        return true;
    }

    public static boolean verifyLicense(final License license) {
        return true;
    }
}

在Linux任意目录下重新编译LicenseVerifier.java

javac -cp "/usr/local/elasticsearch/lib/elasticsearch-6.0.0.jar:
/usr/local/elasticsearch/lib/lucene-core-7.0.1.jar:
/usr/local/elasticsearch/plugins/x-pack/x-pack-6.0.0.jar" LicenseVerifier.java

替换原来的class文件“

cp ../LicenseVerifier.class org/elasticsearch/license/

# 重新打包jar包
jar -cvf x-pack-6.0.0.jar ./*

# 覆盖原来x-pack的jar包
mv x-pack-6.0.0.jar /usr/local/elasticsearch/plugins/x-pack

配置新的license文件

{"license":{
    "uid":"aaa",
    "type":"platinum",
    "issue_date_in_millis":1515024000000,
    "expiry_date_in_millis":1596646399999,
    "max_nodes":100,
    "issued_to":"aaa",
    "issuer":"Web Form",
    "signature":"111",
    "start_date_in_millis":1515024000000
    }
}

这里配置过期日期截至到2020年,白金版(platinum)。
保存文件为:license.json

更新License文件

因为elasticsearch 6.0.0,现在更新license文件时,要么配置SSL\TLS,要么就禁用security。
更新之前先配置elasticsearch.yml,加入:

xpack.security.enabled: false
curl -XPUT -u elastic:changeme "http://192.168.0.166:9200/_xpack/license?acknowledge=true" -d @license.json

生效之后,再开启security,并开启SSL\TLS:

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

最后重启elasticsearch。

查看License状态:

curl -XGET -u elastic:changeme "http://192.168.0.166:9200/_license"

你可能感兴趣的:(破解x-pack 6.0和更新许可证(License))