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 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.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

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

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.

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

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

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 .


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 .


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




E da mesma forma, obtemos a senha.

E com as credenciais nos conectamos via SSH.

ROOT
Como sempre, enumeramos usando o script LinEnum.

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

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

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

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 .

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

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.

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

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

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

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.