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!到這里就完成了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM