mirror of
https://gitee.com/pengzhile/atlassian-agent.git
synced 2023-02-28 12:37:36 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
59a60ea2ee | ||
|
|
da447a8be5 | ||
|
|
9a27cde450 | ||
|
|
50da83e87d | ||
|
|
190ea47ac4 | ||
|
|
d0eb2f315a | ||
|
|
235ca21eb3 | ||
|
|
422f660025 |
@@ -1,6 +1,6 @@
|
||||
# Atlassian Agent
|
||||
|
||||
#### Support (almost any version):
|
||||
#### Support (almost any version, include 8.0):
|
||||
* JIRA Software
|
||||
* JIRA Core
|
||||
* JIRA Service Desk
|
||||
@@ -27,7 +27,7 @@
|
||||
* 开源项目,你知道破解时都做了什么。
|
||||
|
||||
### 直接下载
|
||||
* 直接下载本项目release包。
|
||||
* 直接下载本项目[release](https://github.com/pengzhile/atlassian-agent/releases)包。
|
||||
|
||||
### 自行编译
|
||||
* Clone本项目源码,pom.xml同级目录执行`mvn package`后即可进行编译。
|
||||
@@ -35,16 +35,18 @@
|
||||
* *如果你不知道我在说什么,最好还是直接下载我编译好的包。*
|
||||
|
||||
### 使用帮助
|
||||
* 破解需要成套使用,不能只破解插件,要先使用`atlassian-agent.jar`破解服务。
|
||||
* 如果你已经获得`atlassian-agent.jar`,可以试着执行`java -jar atlassian-agent.jar`看看输出的帮助。
|
||||
* 这里的帮助以Atlassian家的Confluence服务为例。
|
||||
|
||||
### 配置Agent
|
||||
1. 将`atlassian-agent.jar`放在一个你不会随便删除的位置(你服务器上的所有Atlassian服务可共享同一个`atlassian-agent.jar`)。
|
||||
2. 设置环境变量`CATALINA_OPTS`(这其实是Tomcat的环境变量,用来指定其启动java程序时附带的参数),把`-javaagent`参数附带上。具体可以这么做:
|
||||
* 你可以把:`export CATALINA_OPTS="-javaagent:/path/to/atlassian-agent.jar ${CATALINA_OPTS}"`这样的命令放到`.bashrc`或`.bash_profile`这样的文件内。
|
||||
* 你可以把:`export CATALINA_OPTS="-javaagent:/path/to/atlassian-agent.jar ${CATALINA_OPTS}"`这样的命令放到服务安装所在`bin目录`下的`setenv.sh`或`setenv.bat(供windows使用)`中。
|
||||
* 你还可以直接命令行执行:`CATALINA_OPTS="-javaagent:/path/to/atlassian-agent.jar" /path/to/start-confluence.sh`来启动你的服务。
|
||||
* 或者你所知的其他修改环境变量的方法,但如果你机器上有无关的Tomcat服务,则不建议修改全局`CATALINA_OPTS`环境变量。
|
||||
2. 设置环境变量`JAVA_OPTS`(这其实是Java的环境变量,用来指定其启动java程序时附带的参数),把`-javaagent`参数附带上。具体可以这么做:
|
||||
* 你可以把:`export JAVA_OPTS="-javaagent:/path/to/atlassian-agent.jar ${JAVA_OPTS}"`这样的命令放到`.bashrc`或`.bash_profile`这样的文件内。
|
||||
* 你可以把:`export JAVA_OPTS="-javaagent:/path/to/atlassian-agent.jar ${JAVA_OPTS}"`这样的命令放到服务安装所在`bin目录`下的`setenv.sh`或`setenv.bat(供windows使用)`中。
|
||||
* 你还可以直接命令行执行:`JAVA_OPTS="-javaagent:/path/to/atlassian-agent.jar" /path/to/start-confluence.sh`来启动你的服务。
|
||||
* 或者你所知的其他修改环境变量的方法,但如果你机器上有无关的服务,则不建议修改全局`JAVA_OPTS`环境变量。
|
||||
* 总之你想办法把`-javaagent`参数附带到要启动的java进程上。
|
||||
3. 配置完成请重启你的Confluence服务。
|
||||
4. 如果你想验证是否配置成功,可以这么做:
|
||||
* 执行类似命令:`ps aux|grep java` 找到对应的进程看看`-javaagent`参数是否正确附上。
|
||||
@@ -54,7 +56,7 @@
|
||||
* 你得确认已经配置好agent,参考上面说明。
|
||||
* 当你试着执行`java -jar /path/to/atlassian-agent.jar`时应该可以看到输出的KeyGen参数帮助。
|
||||
* 请仔细看看每个参数的作用,特别是`-p`参数的取值范围。
|
||||
* 第三方插件将其`应用密钥`作为`-p`参数。如:`-p com.gliffy.integration.confluence`
|
||||
* 第三方插件将其`应用密钥/插件关键字`作为`-p`参数。如:`-p com.gliffy.integration.confluence`
|
||||
* 在Atlassian服务安装时你应该能看到类似:`AAAA-BBBB-CCCC-DDDD`的server id,请留意。
|
||||
* 提供了正确的参数运行KeyGen会在终端输出计算好的激活码。
|
||||
* 将生成的激活码复制出来去激活你要使用的服务。
|
||||
@@ -70,4 +72,4 @@
|
||||
* 给本项目发issue。
|
||||
* 欢迎你来一起完善这个项目,请发PR。
|
||||
* 你可以加入QQ群:30347511 和我实时交流。
|
||||
* 访问网站:[https://zhile.io](https://zhile.io) 给我留言。
|
||||
* 访问网站:[https://zhile.io](https://zhile.io) 给我留言。
|
||||
|
||||
@@ -20,8 +20,8 @@
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.7.0</version>
|
||||
<configuration>
|
||||
<source>7</source>
|
||||
<target>7</target>
|
||||
<source>1.7</source>
|
||||
<target>1.7</target>
|
||||
<encoding>UTF-8</encoding>
|
||||
</configuration>
|
||||
</plugin>
|
||||
@@ -72,6 +72,11 @@
|
||||
<artifactId>commons-cli</artifactId>
|
||||
<version>1.4</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.xml.bind</groupId>
|
||||
<artifactId>jaxb-api</artifactId>
|
||||
<version>2.3.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.javassist</groupId>
|
||||
<artifactId>javassist</artifactId>
|
||||
|
||||
@@ -84,9 +84,9 @@ public class Usage {
|
||||
formatter.printHelp("java -jar " + selfPath, OPTIONS, true);
|
||||
|
||||
System.out.println("\n================================================================================");
|
||||
System.out.println("\n# Crack agent usage: append -javaagent arg to system environment: CATALINA_OPTS.");
|
||||
System.out.println("\n# Crack agent usage: append -javaagent arg to system environment: JAVA_OPTS.");
|
||||
System.out.println("# Example(execute this command or append it to setenv.sh/setenv.bat file): \n");
|
||||
System.out.println(" export CATALINA_OPTS=\"-javaagent:" + selfPath + " ${CATALINA_OPTS}\"");
|
||||
System.out.println(" export JAVA_OPTS=\"-javaagent:" + selfPath + " ${JAVA_OPTS}\"");
|
||||
System.out.println("\n# Then start your confluence/jira server.\n");
|
||||
|
||||
System.exit(1);
|
||||
|
||||
@@ -29,21 +29,29 @@ public class KeyTransformer implements ClassFileTransformer {
|
||||
|
||||
private byte[] handleKeySpec() throws IllegalClassFormatException {
|
||||
try {
|
||||
String b64f;
|
||||
ClassPool cp = ClassPool.getDefault();
|
||||
cp.importPackage("java.util.Arrays");
|
||||
cp.importPackage("javax.xml.bind.DatatypeConverter");
|
||||
|
||||
int mod = Modifier.PRIVATE | Modifier.STATIC | Modifier.FINAL;
|
||||
CtClass cc = cp.get(CN_KEY_SPEC.replace('/', '.'));
|
||||
CtClass cb = cp.get("byte[]");
|
||||
CtField cfOld = new CtField(cb, "__h_ok", cc);
|
||||
CtField cfNew = new CtField(cb, "__h_nk", cc);
|
||||
cfOld.setModifiers(mod);
|
||||
cfNew.setModifiers(mod);
|
||||
cc.addField(cfOld, "DatatypeConverter.parseBase64Binary(\"MIIBuDCCASwGByqGSM44BAEwggEfAoGBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9EAMMeP4C2USZpRV1AIlH7WT2NWPq/xfW6MPbLm1Vs14E7gB00b/JmYLdrmVClpJ+f6AR7ECLCT7up1/63xhv4O1fnxqimFQ8E+4P208UewwI1VBNaFpEy9nXzrith1yrv8iIDGZ3RSAHHAhUAl2BQjxUjC8yykrmCouuEC/BYHPUCgYEA9+GghdabPd7LvKtcNrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6EwoFhO3zwkyjMim4TwWeotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImog9/hWuWfBpKLZl6Ae1UlZAFMO/7PSSoDgYUAAoGBAIvfweZvmGo5otwawI3no7Udanxal3hX2haw962KL/nHQrnC4FG2PvUFf34OecSK1KtHDPQoSQ+DHrfdf6vKUJphw0Kn3gXm4LS8VK/LrY7on/wh2iUobS2XlhuIqEc5mLAUu9Hd+1qxsQkQ50d0lzKrnDqPsM0WA9htkdJJw2nS\");");
|
||||
cc.addField(cfNew, "DatatypeConverter.parseBase64Binary(\"MIIBuDCCASwGByqGSM44BAEwggEfAoGBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9EAMMeP4C2USZpRV1AIlH7WT2NWPq/xfW6MPbLm1Vs14E7gB00b/JmYLdrmVClpJ+f6AR7ECLCT7up1/63xhv4O1fnxqimFQ8E+4P208UewwI1VBNaFpEy9nXzrith1yrv8iIDGZ3RSAHHAhUAl2BQjxUjC8yykrmCouuEC/BYHPUCgYEA9+GghdabPd7LvKtcNrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6EwoFhO3zwkyjMim4TwWeotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImog9/hWuWfBpKLZl6Ae1UlZAFMO/7PSSoDgYUAAoGBAO0DidNibJHhtgxAnM9NszURYU25CVLAlwFdOWhiUkjrjOY459ObRZDVd35hQmN/cCLkDox7y2InJE6PDWfbx9BsgPmPvH75yKgPs3B8pClQVkgIpJp08R59hoZabYuvm7mxCyDGTl2lbrOi0a3j4vM5OoCWKQjIEZ28OpjTyCr3\");");
|
||||
|
||||
cp.importPackage("java.util.Arrays");
|
||||
try {
|
||||
Class.forName("java.util.Base64");
|
||||
cp.importPackage("java.util.Base64");
|
||||
b64f = "Base64.getDecoder().decode";
|
||||
} catch (ClassNotFoundException e) {
|
||||
try {
|
||||
Class.forName("javax.xml.bind.DatatypeConverter");
|
||||
cp.importPackage("javax.xml.bind.DatatypeConverter");
|
||||
b64f = "DatatypeConverter.parseBase64Binary";
|
||||
} catch (ClassNotFoundException e1) {
|
||||
throw new RuntimeException(e1);
|
||||
}
|
||||
}
|
||||
|
||||
cc.addField(CtField.make("private static final byte[] __h_ok=" + b64f + "(\"MIIBuDCCASwGByqGSM44BAEwggEfAoGBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9EAMMeP4C2USZpRV1AIlH7WT2NWPq/xfW6MPbLm1Vs14E7gB00b/JmYLdrmVClpJ+f6AR7ECLCT7up1/63xhv4O1fnxqimFQ8E+4P208UewwI1VBNaFpEy9nXzrith1yrv8iIDGZ3RSAHHAhUAl2BQjxUjC8yykrmCouuEC/BYHPUCgYEA9+GghdabPd7LvKtcNrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6EwoFhO3zwkyjMim4TwWeotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImog9/hWuWfBpKLZl6Ae1UlZAFMO/7PSSoDgYUAAoGBAIvfweZvmGo5otwawI3no7Udanxal3hX2haw962KL/nHQrnC4FG2PvUFf34OecSK1KtHDPQoSQ+DHrfdf6vKUJphw0Kn3gXm4LS8VK/LrY7on/wh2iUobS2XlhuIqEc5mLAUu9Hd+1qxsQkQ50d0lzKrnDqPsM0WA9htkdJJw2nS\");", cc));
|
||||
cc.addField(CtField.make("private static final byte[] __h_nk=" + b64f + "(\"MIIBuDCCASwGByqGSM44BAEwggEfAoGBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9EAMMeP4C2USZpRV1AIlH7WT2NWPq/xfW6MPbLm1Vs14E7gB00b/JmYLdrmVClpJ+f6AR7ECLCT7up1/63xhv4O1fnxqimFQ8E+4P208UewwI1VBNaFpEy9nXzrith1yrv8iIDGZ3RSAHHAhUAl2BQjxUjC8yykrmCouuEC/BYHPUCgYEA9+GghdabPd7LvKtcNrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6EwoFhO3zwkyjMim4TwWeotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImog9/hWuWfBpKLZl6Ae1UlZAFMO/7PSSoDgYUAAoGBAO0DidNibJHhtgxAnM9NszURYU25CVLAlwFdOWhiUkjrjOY459ObRZDVd35hQmN/cCLkDox7y2InJE6PDWfbx9BsgPmPvH75yKgPs3B8pClQVkgIpJp08R59hoZabYuvm7mxCyDGTl2lbrOi0a3j4vM5OoCWKQjIEZ28OpjTyCr3\");", cc));
|
||||
CtConstructor cm = cc.getConstructor("([B)V");
|
||||
cm.insertBeforeBody("if(Arrays.equals($1,__h_ok)){$1=__h_nk;System.out.println(\"============================== agent working ==============================\");}");
|
||||
cm.insertBefore("if(Arrays.equals($1,__h_ok)){$1=__h_nk;System.out.println(\"============================== agent working ==============================\");}");
|
||||
|
||||
return cc.toBytecode();
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
package io.zhile.crack.atlassian.utils;
|
||||
|
||||
import java.security.*;
|
||||
|
||||
/**
|
||||
* @author pengzhile
|
||||
* @link https://zhile.io
|
||||
* @version 1.0
|
||||
*/
|
||||
public class DSA {
|
||||
public static void genKeyPair() throws NoSuchAlgorithmException {
|
||||
KeyPairGenerator dsa = KeyPairGenerator.getInstance("DSA");
|
||||
SecureRandom random = new SecureRandom();
|
||||
dsa.initialize(1024, random);
|
||||
KeyPair keypair = dsa.generateKeyPair();
|
||||
PrivateKey privateKey = keypair.getPrivate();
|
||||
PublicKey publicKey = keypair.getPublic();
|
||||
System.out.println(Base64.encode(privateKey.getEncoded()));
|
||||
System.out.println(Base64.encode(publicKey.getEncoded()));
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
MIIBSwIBADCCASwGByqGSM44BAEwggEfAoGBAP1/U4EddRIpUt9KnC7s5Of2EbdS
|
||||
PO9EAMMeP4C2USZpRV1AIlH7WT2NWPq/xfW6MPbLm1Vs14E7gB00b/JmYLdrmVCl
|
||||
pJ+f6AR7ECLCT7up1/63xhv4O1fnxqimFQ8E+4P208UewwI1VBNaFpEy9nXzrith
|
||||
1yrv8iIDGZ3RSAHHAhUAl2BQjxUjC8yykrmCouuEC/BYHPUCgYEA9+GghdabPd7L
|
||||
vKtcNrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6EwoFhO3
|
||||
zwkyjMim4TwWeotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImo
|
||||
g9/hWuWfBpKLZl6Ae1UlZAFMO/7PSSoEFgIUNYsbkapILzW8VhfGrU4eHo6/Dqw=
|
||||
@@ -1,10 +0,0 @@
|
||||
MIIBuDCCASwGByqGSM44BAEwggEfAoGBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9E
|
||||
AMMeP4C2USZpRV1AIlH7WT2NWPq/xfW6MPbLm1Vs14E7gB00b/JmYLdrmVClpJ+f
|
||||
6AR7ECLCT7up1/63xhv4O1fnxqimFQ8E+4P208UewwI1VBNaFpEy9nXzrith1yrv
|
||||
8iIDGZ3RSAHHAhUAl2BQjxUjC8yykrmCouuEC/BYHPUCgYEA9+GghdabPd7LvKtc
|
||||
NrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6EwoFhO3zwky
|
||||
jMim4TwWeotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImog9/h
|
||||
WuWfBpKLZl6Ae1UlZAFMO/7PSSoDgYUAAoGBAO0DidNibJHhtgxAnM9NszURYU25
|
||||
CVLAlwFdOWhiUkjrjOY459ObRZDVd35hQmN/cCLkDox7y2InJE6PDWfbx9BsgPmP
|
||||
vH75yKgPs3B8pClQVkgIpJp08R59hoZabYuvm7mxCyDGTl2lbrOi0a3j4vM5OoCW
|
||||
KQjIEZ28OpjTyCr3
|
||||
Reference in New Issue
Block a user