Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
THM-Steel_Mountain-CVE-2014-6287 — Um write-up sobre a box Steel Mountain do TryHackMe.com e exploit para CVE-2014-6287 | Kitploit
Ferramentas/GitHubGitHub/wizardy0ga/thm-steel_mountain-cve-2014-6287
Escalada de PrivilégiosGeração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebPós-ExploraçãoCTFTestes de PenetraçãoAprendizado e Educação

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
Labs e Prática
Archived
GitHubwizardy0ga/thm-steel_mountain-cve-2014-6287

THM-Steel_Mountain-CVE-2014-6287

Um write-up sobre a box Steel Mountain do TryHackMe.com e exploit para CVE-2014-6287

Ver Repositório
17há 4 anosAinda não revisado

THM-Steel_Mountain-CVE-2014-6287

Um write-up sobre a máquina Steel Mountain do TryHackMe.com e exploit para CVE-2014-6287

Créditos

Não levo crédito pela descoberta e exploração original desta vulnerabilidade. Obrigado às seguintes pessoas!

Descoberta:
Daniele Linguaglossa

Autor do Módulo Metasploit:
Muhamad Fadzil Ramli

Sala e Autor do TryHackMe:
https://tryhackme.com/room/steelmountain
https://tryhackme.com/p/tryhackme

Referências:
https://nvd.nist.gov/vuln/detail/CVE-2014-6287
https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/windows/http/rejetto_hfs_exec.rb
https://subscription.packtpub.com/book/networking_and_servers/9781786463166/1/ch01lvl1sec20/vulnerability-analysis-of-hfs-2-3 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6287 https://www.tutorialspoint.com/pascal/pascal_functions.htm

Se Você Vir Algo, Diga Algo!

Não sou, de forma alguma, um profissional de segurança experiente. Isso significa que posso fornecer algumas informações incorretas. Se você é um profissional experiente/pesquisador experiente e vê algo que está incorreto, por favor me avise para que eu possa voltar, estudar o que errei e fornecer a informação correta. Isso é benéfico para mim e também para outros pesquisadores novatos que possam tropeçar neste write-up. Se você encontrar informações erradas que eu escrevi, entre em contato comigo pelo e-mail [email protected] para que eu possa corrigi-las. Obrigado!

Vulnerabilidade

O Rejetto file server (também conhecido como HFS) é um programa de compartilhamento de arquivos usado para publicar e compartilhar arquivos em uma rede. Na versão 2.3, havia uma vulnerabilidade que permitia a um atacante executar comandos do sistema inserindo um byte nulo no parâmetro de busca, conforme descrito em CVE-2014-6287. O código não processa corretamente um byte nulo com sua configuração de regex (Expressão Regular) e, portanto, leva a uma vulnerabilidade de execução remota de código.

A vulnerabilidade pode ser encontrada na função findMacroMarker, que se origina do arquivo parserLib.pas. .pas é a extensão de arquivo da linguagem de programação Pascal. No momento em que escrevo isto, ainda não codifiquei nada em Pascal. Vamos dar uma olhada no trecho de código e analisar o que ele faz!

function findMacroMarker(s:string; ofs:integer=1):integer;  
 begin result:=reMatch(s, '\{[.:]|[.:]\}|\|', 'm!', ofs) end;

A primeira linha de código é uma declaração de uma função chamada findMacroMarker que recebe dois parâmetros. Em Pascal, o tipo de dado dos parâmetros deve ser declarado, portanto s:string significa que a variável s é uma string. Isso também é o caso da variável ofs com o tipo de dado integer. À direita dos parâmetros, vemos um caractere de dois-pontos seguido por integer. Isso é conhecido como o tipo da função. O ponto e vírgula marca o fim dessa linha de código. A primeira palavra na próxima linha de código é begin. Isso diz ao compilador onde a função começa. Continuando, vemos uma variável chamada result seguida do operador de atribuição :=. A variável result é atribuída à função reMatch. Não encontrei nada sobre reMatch na internet, então presumo que seja uma função personalizada escrita em algum outro lugar do HFS. Felizmente para nós, a função é autoexplicativa. reMatch é claramente uma abreviação de correspondência de expressão regular (regular expression match), seguida pelo padrão regex que ela procura, o que é considerado no parâmetro da função reMatch, bem como nos parâmetros variáveis iniciais definidos na primeira linha de código. No final da segunda linha, a palavra end é usada para definir o fim da função para o compilador.

A vulnerabilidade é encontrada no padrão regex, conforme descrito acima na função reMatch. O regex não consegue lidar corretamente com um byte nulo %00. Quando passamos um comando de sistema com um byte nulo prefixado, a função encontrará o bug e executará o comando no computador host. Para explorar essa vulnerabilidade, tudo o que precisamos fazer é passar o byte nulo no parâmetro de busca de uma requisição GET seguido por {.exec|code.} (code sendo o comando que você deseja executar) via URL, desta forma:
http://(IP-Address/DomainName)/?search==%00{.exec|CommandGoesHere.}.

Write-Up

Vamos começar com uma varredura de portas via rustscan. Prefiro o rustscan para obter uma visão rápida da superfície de ataque.

imagem

Temos uma quantidade considerável de portas abertas aqui. Agora vamos nos aprofundar com o nmap e descobrir quais serviços estão escutando nessa variedade de portas para encontrar nosso serviço explorável.

imagem

Temos um serviço chamado Microsoft Windows RPC rodando nas portas mais altas. RPC é uma chamada de procedimento remoto (remote procedure call). Isso permite que processos do Windows se comuniquem através de uma rede ou internamente dentro do próprio computador. Continuando, temos alguns servidores web diferentes rodando nas portas 80 e 8080. Nas portas 5985 e 47001, o Microsoft Httpapi Httpd está presente, o que permite que aplicativos se comuniquem via HTTP sem a necessidade do Microsoft IIS (Internet Information Server). O Nmap detecta um servidor web potencialmente rodando na porta 3389; no entanto, não consegui me conectar via HTTP ou SSL. Vamos nos conectar ao servidor web na porta 80, já que é a porta padrão para o protocolo HTTP.

imagem

Na porta 80, somos apresentados a uma página web que exibe o logotipo da empresa Steel Mountain e uma foto rotulada como funcionário do mês. Se abrirmos as ferramentas de desenvolvedor web, podemos ver que a foto está identificada como BillHarper.png, o que nos dá a resposta para nossa primeira pergunta. Vamos nos conectar aos outros serviços em escuta e ver o que podemos encontrar.

imagem

Quando nos conectamos ao serviço na porta 5985, recebemos o código de erro HTTP 404. O código de erro 404 significa que o servidor não consegue encontrar o recurso solicitado. Não há nada de interessante aqui. Vamos para o próximo.

imagem

SIM! Agora isto parece interessante. Na porta 8080, temos algum tipo de serviço de compartilhamento de arquivos. Vamos explorar e ver se conseguimos encontrar mais informações sobre esse serviço. Se olharmos no canto inferior esquerdo, podemos ver um nome e o que parece ser um número de versão, assim: HttpFileServer 2.3. Vamos enumerar mais.

imagem

Se clicarmos no link rotulado como HttpFileServer 2.3, somos direcionados para uma página web com o nome do software que está rodando na porta 8080. Nesse caso, temos o Rejetto HFS HTTP File Server. Vamos verificar a outra porta, a 47001, para cobrir todas as bases. Se não encontrarmos nada útil, podemos voltar ao Rejetto e começar a procurar CVEs conhecidos.

imagem

Parece que temos outro 404 na porta 47001. Vamos começar a procurar CVEs para o Rejetto HFS 2.3.

imagem

Baixar ferramenta