Continuo publicando soluções enviadas para finalização de máquinas da plataforma HackTheBox .
Neste artigo, listamos os diretórios e subdomínios no site, exploramos o LFI, fazemos um backup de um arquivo inacessível e também montamos um volume criptografado.
A conexão ao laboratório é via VPN. É recomendável não conectar-se a partir de um computador de trabalho ou de um host em que haja dados importantes para você, pois você se encontra em uma rede privada com pessoas que sabem algo sobre segurança da informação.
Informações organizacionais
Recon
Esta máquina possui um endereço IP 10.10.10.183, que eu adiciono ao / etc / hosts.
10.10.10.183 forwardslash.htb
Primeiro de tudo, examinamos as portas abertas. Como leva muito tempo para verificar todas as portas com o nmap, primeiro o farei usando o masscan. Examinamos todas as portas TCP e UDP da interface tun0 a 500 pacotes por segundo.
masscan -e tun0 -p1-65535,U:1-65535 10.10.10.183 --rate=500
Agora, para obter informações mais detalhadas sobre os serviços executados nas portas, execute uma varredura com a opção -A.
nmap -A forwardslash.htb -p22,80
O servidor executa um serviço SSH e um servidor web. Vamos ao servidor da web e vemos o que eles podem nos oferecer.
É assim que somos informados sobre a invasão do host, XML e FTP são mencionados. Vamos percorrer os diretórios com gobuster. Nos parâmetros, especificamos o número de fluxos 128 (-t), URL (-u), dicionário (-w) e extensões nas quais estamos interessados (-x).
gobuster dir -t 128 -u http://forwardslash.htb/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php,xml,txt
E encontramos note.txt. Vamos ler.
É relatado sobre um grupo que invadiu o site e que há um backup. Vamos procurar subdomínios. Defina o número de caracteres para não ser igual a 0 como um filtro.
wfuzz -H 'HOST:FUZZ.forwardslash.htb' -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -u forwardslash.htb --hh 0
E nós vamos para o subdomínio de backup. Vamos adicioná-lo ao arquivo / etc / hosts.
10.10.10.183 backup.forwardslash.htb
Vamos examinar os diretórios desse domínio também.
gobuster dir -t 128 -u http://backup.forwardslash.htb/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php,xml,txt
E nós vamos para este endereço.
Ponto de entrada
Somos recebidos por um formulário de autorização.
Existe também a possibilidade de registro. Vamos registrar e depois entraremos.
Percorrendo os links, encontramos formulários para alterar o nome, a senha e você também pode definir uma foto do perfil. Vamos insistir nisso.
É relatado que este recurso foi desativado devido a um hack. Nesse caso, o campo de entrada não está disponível, provavelmente desativado em HTML.
Removemos essa propriedade dos dois elementos. Iniciei um servidor Web na máquina local e indiquei no campo um link para o arquivo test.txt.
Como não há filtros, vamos tentar um vetor LFI. Para conveniência dos negócios, isso é no Burp Suite.
E há LFI!
DO UTILIZADOR
Vamos verificar as configurações do apache.
Mas se você tentar ler o arquivo php, ele não será apresentado como texto. Em vez disso, será executado.
Mas podemos usar filtros php, por exemplo, base64. É assim que o arquivo php é codificado primeiro e depois exibido na página. Assim, não será executado.
php://filter/convert.base64-encode/resource=../../../../var/www/backup.forwardslash.htb/index.php
Selecione o fragmento desejado e pressione Ctrl + Shift + B.
Nós obtemos o código decodificado. Vamos usar esse método para ler todos os arquivos encontrados durante a verificação. Encontre a senha para conectar-se ao banco de dados no arquivo config.php.
Vamos dar uma olhada no /dev/index.php também. E lá encontramos os dados de autenticação do usuário chiv.
Este usuário está no sistema, aprendemos isso em / etc / passwd. Vamos tentar esses dados para conectar via SSH.
USER2
Para coletar dados no sistema, usamos o script LinPEAS. E encontramos algum tipo de nota nos backups.
Assim, os backups têm uma configuração antiga com uma senha. Pertence à dor.
Portanto, o programa de backup possui um bit SUID. Ou seja, podemos executar o programa como problema do usuário.
Podemos fazer um backup, mas apenas de um determinado arquivo aleatório.
Podemos fazer um link para o backup de configuração, nomeando-o como apresentado no programa de backup. Mas temos que fazer isso em alguns segundos. Portanto, faremos um script. Primeiro, vamos pegar o nome do arquivo.
Agora vamos adicionar a criação e o backup de links.
Vamos correr a partir do diretório inicial do usuário e obter o arquivo.
Mude o usuário digitando esta senha.
RAIZ
Vamos dar uma olhada nas configurações do tribunal para executar comandos sem uma senha.
Assim, temos um volume criptografado. Para descriptografar e montá-lo, precisamos de uma senha.
Temos um texto cifrado e um programa.
Para descriptografia, usamos o seguinte código.
def decrypt(key, msg):
key = list(key)
msg = list(msg)
for char_key in reversed(key):
for i in reversed(range(len(msg))):
if i == 0:
tmp = ord(msg[i]) - (ord(char_key) + ord(msg[-1]))
else:
tmp = ord(msg[i]) - (ord(char_key) + ord(msg[i-1]))
while tmp < 0:
tmp += 256
msg[i] = chr(tmp)
return ''.join(msg)
ciphertext = open('ciphertext', 'r').read().rstrip()
for i in range(1, len(ciphertext)):
for j in range(256):
key = chr(j) * i
text = decrypt(key, ciphertext)
if ' the ' in text or ' to ' in text:
print(key)
print(text)
exit()
E descriptografamos a mensagem com sucesso.
Vamos ver o que temos ao longo do caminho indicado.
Vamos decifrar o volume.
E nós vamos montá-lo.
A chave SSH está localizada lá.
Nós nos conectamos e pegamos a bandeira.
Você pode se juntar a nós no Telegram . Lá você encontra materiais interessantes, cursos vazados e software. Vamos reunir uma comunidade na qual haverá pessoas versadas em várias áreas da TI, para que possamos sempre nos ajudar em qualquer problema de segurança da informação e da TI.