Cobalt Strike와 MS Exchange Server 취약점을 이용한 침해사례 포렌식 분석

Cobalt Strike와 MS Exchange Server 취약점을 이용한 침해사례 포렌식 분석

 

안랩 ASEC 분석팀은 이전 블로그들을 통해 국내 기업을 타겟으로 유포중인 내용에 대해서도 언급한 바 있듯, 최근 보안 이슈 중 하나인 Cobalt Strike의 활동을 지속해서 모니터링 하고 있다. (본 게시글 하단에 이전 블로그 링크 존재)

모니터링 중 특정 IP에서 7월 15일과 8월 2일에 Cobalt Strike 활동이 발생했음을 감지하고 해당 IP의 고객사에 분석을 권하여 포렌식 분석을 수행했다. 해당 침해 시스템에서 공격자의 행위를 추적한 결과, 지난 3월 유행한 MS Exchange Server 취약점을 통해 침해된 것으로 확인됐다.

MS Exchange Server 취약점 4개는 ProxyLogon이라 불리며, 지난 3월에 공개됐다. 이 취약점을 이용하면 악성 HTTP를 요청해  백엔드 시스템 인증을 우회할 수 있고, 임의의 파일 쓰기가 가능하다. 

  • CVE-2021-26855 (Microsoft Exchange Server 원격 코드 실행 취약성)
  • CVE-2021-26857 (Microsoft Exchange Server 원격 코드 실행 취약성)
  • CVE-2021-26858 (Microsoft Exchange Server 원격 코드 실행 취약성)
  • CVE-2021-27065 (Microsoft Exchange Server 원격 코드 실행 취약성)

공격자는 외부에서 MS Exchange Server를 운영하는 고객사의 OWA(Outlook Web App) 사이트에 접속해 백엔드 시스템의 인증을 우회(CVE-2021-26855)하고, 파일 쓰기 취약점(CVE-2021-26858, CVE-2021-27065)을 이용해 웹셸을 업로드했다.

해당 고객사의 이메일 서버에는 취약점이 공개된 직후인 3월 3일부터 총 60개의 IP에서 MS Exchange Server 취약점을 노린 공격이 유입된 것으로 확인됐다. 유입된 공격은 공격 시점, IP, 악성 행위 등을 기준으로 3개의 그룹으로 분류해 볼 수 있다. 

[그림1] – 침해 흐름도

공격 그룹 1

공격 그룹 1은 3월 3일 취약점 공격을 시도했으나, 웹셸을 생성하거나 추가적인 악성 행위를 수행하지는 않았다. 다만 이때 사용된 86.105.18[.]116 IP는 “The Opera Cobalt Strike”라 불리는 공격 그룹의 C2 IP중 하나인 것으로 확인됐다.

항목 공격 그룹 1 특징
공격 시점 – 2021년 3월 3일 16시 48분 14초
공격자 IP – 86.105.18[.]116
악성 행위 – MS Exchange Server 취약점 공격
취약점 공격 파일명 – /ecp/y.js
웹셸 파일명 – 없음 (웹셸 미호출)
UserAgent – python-requests/2.18.4
– ExchangeServicesClient/0.0.0.0

[표 1] – 공격 그룹 1 특징

[그림 2] – 공격 그룹 1의 침해 공격 흔적 (IIS Log)

공격 그룹 2

취약점만 테스트한 공격 그룹 1과는 달리, 공격 그룹 2로 분류한 공격은 취약점 공격 이후 웹셸을 생성하고, 이를 이용해 Cobalt Strike 이용한 후속 공격을 수행했다.

공격자는 웹셸을 이용해 C:\Windows\System32에 Cobalt Strike Stager인 oci.dll 파일을 생성하고, 이를 통해 Cobalt Strike Beacon을 msdtc.exe 프로세스 메모리에 로딩해 실행했다. 이러한 Cobalt Strike Beacon의 활동은 안랩의 모니터링 시스템에 7월 15일 및 8월 2일에 탐지됐다.

공격자는 AD 계정 정보를 수집하기 위해서 AD의 DB 파일인 ntds.dit와 레지스트리 하이브 파일인 SYSTEM, SECURITY 파일을 C:\test 폴더에 복사 후 유출했다.  또한, 윈도우에 로그온하는 계정 정보를 수집하기 위해서 NPLogonNotify API를 후킹해 패스워드를 수집하는 기능을 갖는 악성코드인 ns.dll을 사용했다. 그 결과 공격자는 60개의 로컬 및 도메인 계정의 평문 패스워드를 확보하고 유출했다.

항목 공격 그룹 2 특징
공격 시점 – 2021년 3월 3일 18시 52분 29초
공격자 IP – 158.247.227[.]46
악성 행위 – MS Exchange Server 취약점 공격
– Cobalt Strike Beacon 실행
– 계정명 패스워드 수집 악성코드 실행 (ns.dll) 
– 60개의 계정명과 평문 패스워드 수집 및 유출
– Active Directory DB 파일 유출 (ntds.dit) 
– 레지스트리 하이브 파일 유출 (SYSTEM, SECURITY)
– psloggedon64.exe, pvefindaduser.exe를 이용해 로그온 계정 확인
– 확보된 관리자 계정을 이용해 내부 시스템 추가 침해
취약점 공격 파일명 – /ecp/x.js
웹셸 파일명 – error.aspx
– logout.aspx
UserAgent – python-requests/2.23.0
– python-requests/2.25.1
– ExchangeServicesClient/0.0.0.0
– Mozilla/5.0+(compatible;+Nmap+Scripting+Engine;+hxxps://nmap[.]org/book/nse.html)
– antSword/v2.1 (웹셸 관리 Opensource 툴)

[표 2] – 공격 그룹 2 특징

[그림 3] – 공격 그룹 2의 침해 흔적 (IIS Log)

공격 그룹 3 

앞서 설명한 공격 그룹 1 및 2와는 구분되는 침해 흔적도 발견됐다. 3월 4일 웹셸이 호출되고 또 다른 유형의 PE 백도어 악성코드가 서비스로 등록됐다.

항목 공격 그룹 3 특징
공격 시점 – 2021년 3월 4일 22시 14분 59초
공격자 IP – 115.144.69[.]20
– 103.127.124[.]117
악성 행위 – MS Exchange Server 취약점 공격이 IIS 로그상에서 확인되지 않음 
– PE 백도어 실행
취약점 공격 파일명 – 확인되지 않음
웹셸 파일명 – shell.aspx
UserAgent – antSword/v2.1 (웹셸 관리를 위한 OpenSource 툴)

[표 3] – 공격 그룹 3 특징

[그림 4] – 공격 그룹 3의 침해 흔적 (IIS Log)

공격 그룹 3은 3월 4일 취약점 공격 성공 후 백도어 악성코드(TosBtKbd.dll)와 블루투스 키보드 프로그램(avupdate.exe)을 다운로드 했다.

avupdate.exe의 원래 파일명은 TosBtkbd.exe로 2008년 7월 24일에 컴파일되고, TOSHIBA사에서 정상적으로 서명한 블루투스 키보드 관련 프로그램이다. 이 프로그램은 실행될 때 동일 폴더에 위치한 TosBtKbd.dll 파일을 로딩하는 취약점을 가지고 있어, 공격자가 악성 DLL을 로딩하기 위해 유입시킨 것으로 보인다. avupdate.exe가 실행되면 백도어인 TosBtKbd.dll이 로딩된다.

PE 백도어 실행 외에 추가 악성 행위는 확인되지 않았다.

[그림 5] – TosBtKbd.exe (= avupdate.exe) 파일 서명 정보

결론

  • 원데이 취약점 공격은 보안 패치가 공개된 직후 알려진 취약점을 이용한 공격으로, 실시간 패치가 어려운 환경에서는 이러한 공격에 취약할 수밖에 없다.
  • 취약점이 공개되면 다수의 공격 그룹이 이를 이용한 공격에 집중하게 되며, 이 중 일부는 단순 스캔에 그치지 않고, 실질적인 피해를 입힌다.
  • 공격자는 취약점 공격에 성공해 시스템 제어권을 확보한 후에는 Cobalt Strike나 자체 제작한 백도어를 이용해 정보를 수집하고, 내부 네트워크에 침투했다.
  • 공격자의 목표는 계정 정보 수집으로 보이며, 60여개의 직원 계정 패스워드가 노출됐으므로, 직원 개개인이 이용 중인 타 온라인 서비스에도 2차 피해가 발생할 우려가 있다.
  • 정상 서명된 실행 파일도 공격 시 활용될 수 있다.
  • AD 서버는 외부에 노출되지 않도록 내부에서 운영하고, 인터넷 직접 접근을 차단해야 한다.
  • 내부 시스템들은 관리자 계정인 administrator의 비밀번호를 모두 동일하게 사용했기 때문에, 내부망의 전체 시스템이 손쉽게 장악됐다. 패스워드의 복잡도를 높이고, 시스템 별 계정/패스워드를 동일하지 않게 설정해야 한다.

해당 침해 시스템에서 발견된 파일들에 대한 V3탐지 정보와 IOC 정보는 아래와 같다.

[파일 진단]

Exploit/ASP.Cve-2021-27065.S1406
WebShell/JSP.Chopper
InfoStealer/Win.WinAuthSniff
Downloader/Win.Stager
Unwanted/Win.Proxy
Backdoor/Win.Agent.R437776
Exploit/ASP.Cve-2021-27065.S1406
Exploit/ASP.Cve-2021-27065.S1406
Exploit/ASP.Cve-2021-27065.S1406
Exploit/ASP.Cve-2021-27065.S1406
Exploit/ASP.Cve-2021-27065.S1406
Trojan/Win32.RL_Cometer

 

[관련 게시글 정보]

국내 기업을 타겟으로 유포 중인 코발트 스트라이크 – ASEC BLOG

코발트 스트라이크(Cobalt Strike)는 상용 침투 테스트 도구이다. 기업이나 기관의 네트워크 및 시스템에 대한 보안 취약점을 점검하기 위한 목적으로 사용 가능한 도구로서 침투 테스트 각 단계별로 다양한 기능들을 지원한다. 하지만 크랙 버전이 공개됨에 따라 다양한 공격자들에 의해 악성코드로서 사용되고 있으며, 특히 다수의 랜섬웨어 공격자들이 내부 시스템 장악을 위한 중간 단계로써 사용하고 있는 사례가 늘고 있다. 2020년 11월, 코발트 스트라이크의 소스 코드가 유출되었고 최신 크랙 버전도 유포됨에 따라 더 많은 공격자들에게…

국내 기업을 타겟으로 유포 중인 코발트 스트라이크 (2) – ASEC BLOG

ASEC 분석팀은 코발트 스트라이크 해킹 툴에 의한 공격을 모니터링하고 있으며, 여기에서는 과거 다루었던 블로그 이후부터 현재까지 확인된 코발트 스트라이크 공격에 대해 정리하도록 한다. 4월 23일 확인된 공격을 보면 코발트 스트라이크 beacon이 다음과 같은 커맨드라인을 갖는 프로세스에 의해 실행되었다. 코발트 스트라이크를 이용하는 공격자들은 보통 정상 프로세스로 위장시키기 위해, 정상 프로세스에 특정 인자까지 지정한 후 실행하고 여기에 실제 백도어인 beacon을 인젝션하는 방식을 사용한다. 이는 코발트 스트라이크 해킹 툴에서…

MD5

1b1bacf2c91e8a48eaf813ae69c5e30c
321b04fcdd6ba92cea4435e5da269036
377e5d1bf1c2f64d7032607641dd938f
38f58dd9cec38f9026527e3f0285354e
5e4c5509e09ae780c3b3f9cf29259005
URL

http[:]//172[.]105[.]228[.]71/9Aot
http[:]//172[.]105[.]228[.]71/ptj
http[:]//34[.]90[.]207[.]23/ip
http[:]//cloudflare[.]linker[.]best/nova_assets/Sys/_Getcode/keywords=ed4520486
http[:]//p[.]estonine[.]com/p?e
FQDN

back[.]rooter[.]tk
kr3753[.]co[.]in
lab[.]symantecsafe[.]org
mm[.]portomnail[.]com
rawfuns[.]com
IP

103[.]127[.]124[.]117
115[.]144[.]69[.]116
115[.]144[.]69[.]20
139[.]162[.]123[.]108
141[.]164[.]34[.]38

AhnLab TIP를 구독하시면 연관 IOC 및 상세 분석 정보를 추가적으로 확인하실 수 있습니다. 자세한 내용은 아래 배너를 클릭하여 확인해보세요.