Hack The Box - Passo a passo AI. SQLi no texto da API para Sreach, encaminhamento SSH e RCE no JDWP

imagem

Continuo publicando 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. Neste artigo, vamos nos familiarizar com a conversão de texto em voz e encontrar a injeção de SQL na API, enviar uma porta através do SSH e também executar o RCE usando o Java Debug Wire Protocol para depuração remota.

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 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 Organizacionais
Especialmente 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.163, que eu adiciono ao / etc / hosts.

10.10.10.163 ai.htb 

Primeiro, examinamos portas abertas. Como leva muito tempo para varrer todas as portas com o nmap, primeiro farei isso com o masscan. Examinamos todas as portas TCP e UDP da interface tun0 a uma velocidade de 1000 pacotes por segundo.

 masscan -e tun0 -p1-65535,U:1-65535 10.10.10.163 --rate=1000 

imagem

Em seguida, você precisa coletar mais informações sobre portas conhecidas. Para fazer isso, use o nmap com a opção -A.

 nmap -A ai.htb -p22,80 

imagem

Como segue no relatório nmap, o SSH e um servidor da web estão em execução no host. Indo ao site e vagando um pouco pelas páginas, selecionamos a mais interessante - no formulário para enviar um arquivo WAV.

imagem

Mas, por precaução, verifiquei os diretórios com o gobuster. Nos parâmetros, especifique o número de fluxos 128 (-t), URL (-u), dicionário (-w) e extensões que nos interessam (-x).

gobuster dir -t 128 -u ai.htb -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html, php, conf, txt

imagem

A página db.php não forneceu nada, mas o intelligence.php fornece informações sobre o site.

imagem

O site usa um intérprete de fala. Ou seja, o arquivo que enviamos será interpretado em texto. Vamos testar a suposição com o seguinte interpretador de texto on-line no WAV .

imagem

imagem

As premissas estão corretas - o site interpreta o texto.

Ponto de entrada


Por alguma razão, eu tinha certeza do SSTI, mas após a falha, lembrando-se do db.h, enviaremos uma cotação. Mas apenas o envio não funciona, pois o site usa API, que interpreta os caracteres de maneira diferente. A lista completa pode ser encontrada aqui .

imagem

imagem

E nós obtemos o erro SQL. Agora faça a injeção.

USER


imagem

imagem

imagem

imagem

E da mesma forma, obtemos a senha.

imagem

E com as credenciais nos conectamos via SSH.

imagem

ROOT


Como sempre, enumeramos usando o script LinEnum.

imagem

Após visualizar a saída do script, paramos em um processo interessante que é executado como root - um programa Java.

imagem

Mas o mais interessante é que o programa suporta uma conexão com a porta 8000.

imagem

Isso também é confirmado pela lista de compostos ativos.

imagem

Você também pode ver que ele usa o Java Debug Wire Protocol (JWDB), um protocolo para comunicação entre o depurador remoto e a JVM. Após procurar explorações, encontramos um script que ajuda a criar o RCE .

imagem

Esse script usa como argumento o endereço do host, a porta e o comando a ser executado.

imagem

Vamos começar com a porta 8000.

 ssh -L 8000:localhost:8000 alexa@10.10.10.163 

Um console ssh comum será aberto nessa janela, mas agora todas as chamadas para a porta 8000 do host local serão automaticamente transferidas para a porta 8000 da máquina remota.

Vamos verificar: em outro terminal, estamos tentando conectar-se a essa porta usando jdb.

imagem

Como a conexão passa, escreveremos um shell reverso no host, que será executado como uma equipe.

imagem

Execute o script baixado com todos os parâmetros necessários.

imagem

E após a mensagem sobre o comando executado com sucesso, observamos a conexão.

imagem

Como você pode ver, temos acesso administrativo.

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 nos ajudar em qualquer problema de segurança da informação e da TI.

Source: https://habr.com/ru/post/pt485522/


All Articles