
Código de prova de conceito do Pyrescom Termod para CVE-2020-23160, CVE-2020-23161 e CVE-2020-23162
Este é o código de prova de conceito (PoC) de exploração para três vulnerabilidades descobertas por Jonas Mattsson e Hugo van den Toorn na Outpost24 Ghost Labs. Essas vulnerabilidades foram descobertas no componente do servidor web de uma máquina de controle de tempo Pyrescom Termod4. Elas podem ser encadeadas e permitem que um atacante remoto ignore a autenticação, leia arquivos do sistema de arquivos local e execute comandos arbitrários. Os seguintes IDs de CVE podem ser usados para referenciar essas vulnerabilidades: CVE-2020-23160, CVE-2020-23161 e CVE-2020-23162.

Essas vulnerabilidades são identificadas por três IDs de CVE, descritos abaixo.
Execução remota de código em dispositivos de gerenciamento de tempo Pyrescom Termod4 anteriores a 10.04k permite que atacantes remotos autenticados executem comandos arbitrários como root nos dispositivos. Veja MITRE CVE
Inclusão local de arquivos em dispositivos de gerenciamento de tempo Pyrescom Termod4 anteriores a 10.04k permite que atacantes remotos autenticados percorram diretórios e leiam arquivos sensíveis através do menu Manutenção > Logs e manipulando o caminho do arquivo na URL. Veja MITRE CVE
Divulgação de informações sensíveis e criptografia fraca em dispositivos de gerenciamento de tempo Pyrescom Termod4 anteriores a 10.04k permite que atacantes remotos leiam um arquivo de sessão e obtenham credenciais de usuário em texto simples. Veja MITRE CVE
Ataque encadeado contra dispositivos Termod4, permitindo que um atacante não autenticado:
Clone este repositório, (opcionalmente) configure um ambiente virtual Python e instale as dependências. Supondo que você tenha Python3 e python3-venv instalados (apt-get install python3-venv).
(opcional) Configure um virtualenv chamado 'Pyrescom-CVE': python3 -m venv Pyrescom-CVE, mude de diretório cd Pyrescom-CVE e ative-o . bin/activate.
Clone o repositório no diretório atual:
git clone https://github.com/Outpost24/Pyrescom-Termod-PoC.git .
python -m pip install -r requirements.txt
python Pyrescom-poc.py
O uso básico deste PoC é o seguinte:
python Pyrescom-poc.py http://<URI ou IP do alvo>python Pyrescom-poc.py http://<URI ou IP do alvo> -spython Pyrescom-poc.py http://<URI ou IP do alvo> <comando>python Pyrescom-poc.py -hDistribuído sob a Licença GPL3. Veja LICENSE para mais informações.
Detalhes sobre essas vulnerabilidades e como foram descobertas podem ser encontrados em nosso blog - Tales from the frontline: Outsmarted by smart devices.
As vulnerabilidades foram corrigidas, detalhes exatos sobre as versões de patch são desconhecidos e não reconhecidos pelo fornecedor. Descobrimos as vulnerabilidades na versão 10.02r e verificamos que na versão 10.04k as vulnerabilidades são corrigidas. Como as versões intermediárias são afetadas é desconhecido, portanto, recomendamos atualizar para a versão de firmware estável mais recente disponível para seu dispositivo.
Informações sobre nossa política de divulgação responsável podem ser encontradas em nosso site.
Jonas Mattsson - LinkedIn
Hugo van den Toorn - @HugovdToorn - LinkedIn
Muitos agradecimentos ao Jonas, que tem o ótimo hábito de encontrar as descobertas mais incríveis nos lugares mais estranhos. Infelizmente para nós, hoje é seu último dia na Outpost24. Então gostaríamos de celebrar sua partida com esses três CVEs e desejamos a você tudo de melhor em seus futuros empreendimentos.
Isso pode ter sido um pouco fora do escopo...
Da Ghostlabs com amor <3
| Dia # | Data | Atividade |
|---|
| 0-day | 18-12-2019 | Contato inicial com o fornecedor. |
| 2 days | 20-12-2019 | Segunda tentativa de contato com o fornecedor. |
| 21 days | 08-01-2020 | Terceira tentativa de contato com o fornecedor. |
| 29 days | 16-01-2020 | Reunião com o fornecedor agendada através do nosso cliente. |
| 40 days | 27-01-2020 | Reunião com o fornecedor e nosso cliente; o fornecedor reconheceu os problemas e recebeu o relatório completo. |
| 82 days | 09-03-2020 | Atualização lançada e implementada; realizou breve reteste para nosso cliente. Vulnerabilidades resolvidas. |
| 83 days | 10-03-2020 | Confirmada eficácia do patch com o fornecedor. Cronograma de divulgação proposto, sem resposta do fornecedor. |
| 124 days | 20-04-2020 | Cronograma de divulgação proposto, sem resposta do fornecedor. |
| 141 days | 07-05-2020 | Solicitada reserva de CVE. Mais de 100 dias desde a confirmação pelo fornecedor. |
| 401 days | 22-01-2021 | Múltiplas solicitações ao Mitre para atualização/CVE nos últimos 204 dias. Após reenvio, os IDs de CVE foram liberados em 22 de janeiro. |
| 408 days | 29-01-2021 | Lançamento deste blog, IDs de CVE e PoC. |