Elasticsearch第二章:Elasticsearch6.4.2破解xpack白金认证,以及kibana登录

 

elasticsearch通过x-pack模块来提供密码认证等功能,不过我们无需额外安装x-pack插件,x-pack包在6.3版本后已经集成在es安装包内

步骤挺简单。大概的步骤如下

    1.替换掉原本的Elasticsearch的modules里面的x-pack-core-6.4.2.jar申请许可证。

    2.上传安装许可证

    3.完事

那开始(我用的docker安装的es和kibana) 进入docker-es进入x-pack-core的目录,替换掉这个东西。接下来展示如何替换。如果嫌弃麻烦的 可以结尾自取class文件或者jar包直接替换。

docker exec -it es6.4.2 /bin/bash
cd modules/x-pack-core/

现在看看怎么破解
我先吧这个jar下载到本地,无论过程如何反正只要替换掉这个jar包其中的两个class文件就行了
yum update && yum install lrzsz
sz x-pack-core-6.4.2.jar
使用反编译文件打开x-pack-core-6.4.2.jar文件,之后另存为java文件
Luyten的下载地址(可以用下面的链接下载 后续结尾也会附上私有云连接
找到这两个文件LicenseVerifier和XPackBuild,找到之后另存为java文件

 

 替换成下面的代码

LicenseVerifier.java

package org.elasticsearch.license;

import java.nio.*;
import org.elasticsearch.common.bytes.*;
import java.util.*;
import java.security.*;
import org.elasticsearch.common.xcontent.*;
import org.apache.lucene.util.*;
import org.elasticsearch.core.internal.io.*;
import java.io.*;

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

    public static boolean verifyLicense(final License license) {
        return true;
    }
}
  XPackBuild.java
package org.elasticsearch.xpack.core;

import org.elasticsearch.common.io.*;
import java.net.*;
import org.elasticsearch.common.*;
import java.nio.file.*;
import java.io.*;
import java.util.jar.*;

public class XPackBuild
{
    public static final XPackBuild CURRENT;
    private String shortHash;
    private String date;

    @SuppressForbidden(reason = "looks up path of xpack.jar directly")
    static Path getElasticsearchCodebase() {
        final URL url = XPackBuild.class.getProtectionDomain().getCodeSource().getLocation();
        try {
            return PathUtils.get(url.toURI());
        }
        catch (URISyntaxException bogus) {
            throw new RuntimeException(bogus);
        }
    }

    XPackBuild(final String shortHash, final String date) {
        this.shortHash = shortHash;
        this.date = date;
    }

    public String shortHash() {
        return this.shortHash;
    }

    public String date() {
        return this.date;
    }

    static {
        final Path path = getElasticsearchCodebase();
        String shortHash = null;
        String date = null;
        Label_0157: {
            shortHash = "Unknown";
            date = "Unknown";
        }
        CURRENT = new XPackBuild(shortHash, date);
    }
}

改完之后就需要吧java编译成class文件

需要把lib下面的lib/elasticsearch-6.4.2.jar lucene-core-7.4.0.jar elasticsearch-core-6.4.2.jar的依赖下载下来

然后把刚才的依赖加上。重新吧java编译成class文件

javac -cp elasticsearch-6.4.2.jar;lucene-core-7.4.0.jar;x-pack-core-6.4.2.jar;elasticsearch-core-6.4.2.jar LicenseVerifier.java
javac -cp elasticsearch-6.4.2.jar;lucene-core-7.4.0.jar;x-pack-core-6.4.2.jar;elasticsearch-core-6.4.2.jar LicenseVerifier.java

然后把两个class文件替换掉刚才的那两个,覆盖掉之前未修改的文件,然后在重新打成jar包

jar -cvf x-pack-core-6.4.2.jar 

然后进入es 。rz上传刚才新做的jar 替换掉刚才的那个jar包,然后重启es

docker exec -it es6.4.2 /bin/bash
cd modules/x-pack-core/
mv x-pack-core-6.4.2.jar x-pack-core-6.4.2.jar.back
rz
rm x-pack-core-6.4.2.jar.back
exit
docker restart es6.4.2

jar包替换好了之后。就需要去申请lincese,申请地址:https://license.elastic.co/registration,打开之后这样。自己申请一下

之后会发送邮件,收到邮件里面有个下载链接。吧json下载下来。

修改json内的东西。修改license的版本和期限,type改为platinum白金版,expiry_date_in_millis期限设为2855980923000

修改好了之后 json也准备好了。现在准备上传,上传有好几种方式。我这里就直接用kibana上传就行了方便。

若先配置证书再设置密码就会导致Kibana无法连接到Elasticsearch,打开kibana 先申请30天试用。

打开es 开启密码

docker exec -it es6.4.2 /bin/bash
cd config
vi elasticsearch.yml

 编辑yml

cluster.name: "docker-cluster"
#外网访问
network.host: 0.0.0.0
#开启xpack认证
xpack.security.enabled: true
# minimum_master_nodes need to be explicitly set when bound on a public IP
# set to 1 to allow single node clusters
# Details: https://github.com/elastic/elasticsearch/pull/17288
discovery.zen.minimum_master_nodes: 1
#跨域
http.cors.enabled: true
http.cors.allow-origin: "*"

  然后 退出 重启。重启之后进入bin,修改密码

elasticsearch-setup-passwords interactive

ok改完了。登录es验证一下

 

 现在就来修改一下kibana的配置,es设置了密码 kibana就访问不进去了

docker exec -it kinaba6.4.2 /bin/bash
cd config/
vi kibana.yml

  将下面的参数添加进去(密码和用户名需要加引号,否则不然可能docker启动不了kibana)

elasticsearch.username: 'elastic'
elasticsearch.password: '123456'

  

【其他】如果启动不了kibana,就需要单独容器内的配置文件复制出来 在替换进去修改,这里以kibana举例

docker cp kinaba6.4.2:/opt/kibana/config/kibana.yml .
vi kibana.yml
docker cp kibana.yml kinaba6.4.2:/opt/kibana/config/kibana.yml
docker restart kinaba6.4.2

  解释:吧kibana的配置文件复制到当前目录下 修改好了之后 替换回去 在重启容器

登录进来之后 升级白金版本

上传刚才改过的json

ok完成。

也可以看一下es的到期时间

 

 ok!到这里就完成了

 

posted @ 2020-11-04 13:41  Nuti  阅读(1254)  评论(0编辑  收藏  举报