Olá Habr! Neste artigo, quero falar sobre minha experiência em passar no laboratório
Friendzone no portal hackthebox. Para aqueles que não ouviram o que é o
hackthebox , este é um portal onde você pode testar suas habilidades na prática, existem máscaras CTF e máquinas de laboratório, cuja passagem será discutida neste artigo.
Direi imediatamente que as regras do serviço dizem:
"Não compartilhe como você invadiu cada máquina com outros membros. Isso inclui a geração do código de convite e todos os desafios " . Porém, como essa máquina não está mais ativa e é armazenada na seção "Máquinas aposentadas", apenas membros VIP têm acesso às máquinas nesta seção e nos registros, este artigo não viola nada e é totalmente legal. Então, vamos começar!

Coleta de informações
Vamos começar nossa exploração iniciando a verificação de portas com o nmap.

Do exposto acima, pode ser visto que as portas 21 (ftp), 22 (ssh), 53 (domínio), 80 (http), 139 (netbios-ssn), 443 (https) estão abertas. Vamos olhar para eles.
Enumerar 139 / tcp (netbios-ssn)
Usaremos o utilitário
enum4linux para listar recursos compartilhados no host. A partir da saída do utilitário, fica claro que é permitido inserir os recursos / general e / Development

Agora precisamos verificar esses recursos.
Usando
smbclient //10.10.10.123/general , encontramos o arquivo
creds.txt que contém algumas credenciais, salve-o.


Enumeração DNS
Usaremos o utilitário
dig , que possibilita verificar os registros no servidor DNS especificado para o domínio / subdomínio. O nome de domínio friendzone.red é obtido do certificado SSL CommonName (saída nmap para 443 / tcp).

Vamos para
10.10.10.123
Percebemos a caixa de correio info@friendportal.red e usamos dig novamente.

Inclua as entradas resultantes em
/ etc / hostsAgora temos uma lista de endereços que precisam ser revisados para os seguintes leads. Omitirei parte da história em que as páginas eram buracos de coelho. Consideramos apenas descobertas úteis.
Vamos para
administartor1.friendzone.red e inserimos as credenciais encontradas em //10.10.10.123/general/creds.txt


Visite /dashboard.php

Eles são solicitados a inserir certos parâmetros para obter imagens. Como resultado, 2 imagens estão disponíveis para nós.


Por tentativa e erro, entendemos que a página é vulnerável ao
LFI (inclusão de arquivo local) . E que podemos carregar o shell através do smbclient e acessá-lo usando esta vulnerabilidade. Nós tentamos!
Faça o download do shell em Desenvolvimentos.


Retornamos à página e nos referimos ao shell carregado.

Antes disso, é claro, executando o netcat para escutar na porta 1234.

Obtemos o shell do usuário www-data.
Depois de examinar o volunbox, encontramos o arquivo mysql_data.conf, que contém as credenciais do amigo do usuário.


Vamos tentar obter um terminal e fazer login como amigo.

Entramos no diretório inicial / home / friend e pegamos a bandeira do usuário.
Pegue o root.txt
Faça o download do pspy64 no volunbox para rastrear os processos em execução.
Título de spoilerO pspy é uma ferramenta projetada para rastrear processos sem a necessidade de privilégios de root. Permite ver comandos executados por outros usuários, tarefas cron etc. à medida que progridem.

Iniciamos o pspy64, antes de definir a "execução" para o arquivo chmod + x.

Observamos que o reporter.py é iniciado a partir de um usuário com UID = 0 (ou seja, root). Vamos ver o conteúdo do arquivo reporter.py

Quase todas as linhas são comentadas e não fazem sentido, exceto a primeira, onde o módulo OS é importado.
Seqüestro de biblioteca ?
Este módulo os.py tinha uma resolução de 777, para que pudéssemos fazer alterações com segurança do usuário Friend.
Adicionando o
sistema de linhas
(“cp /root/root.txt /home/Friend/root.txt”) ao módulo os.py e aguardando um pouco para o script iniciar.

Temos a bandeira raiz. Vitória!
