본문 바로가기

Analysis

87. Lazarus's Beavertail (MacOS)

얼마 전, Lazarus 그룹이 MacOS 화상통화 앱에 악성코드를 삽입해 정보를 탈취하는 등의 악성행위를 수행했던 것이 밝혀졌다. 본 글에서 해당 샘플을 분석한다.

 

해당 악성코드는 FreeConference 앱을 위장한 악성코드이다. FreeConference 앱의 기능을 가지고 있음과 동시에 공격자가 삽입한 악성코드가 동작하는 형태로 피해자의 정보를 탈취한다.

 

먼저, 해당 악성코드는 Mach-O64 파일이다. 맥 환경에서 동작하는 악성코드이며 공격자는 맥 환경의 사용자들을 대상으로 유포한 것으로 추측된다.

파일 정보

 

해당 악성코드는 정상적인 FreeConference 앱에 Lazarus 그룹이 자신들의 코드를 삽입한 형태로 동작한다. 따라서, 악성코드 내부에는 FreeConference 동작과 관련된 코드나 문자열들이 존재한다.

freeconference 로그인 관련 문자열

 

피해자에게는 FreeConference 앱이 동작하는 것처럼 보여지지만 실제로는 공격자의 C2 서버에 연결 및 피해자의 각종 정보를 탈취한다. 탈취 정보에는 크롬,오페라,브레이브 브라우저의 데이터 및 환경설정 정보 등과 피해 PC의 키체인, 지역정보, 확장 프로그램 정보 등이 포함된다.

C2 서버 연결
브라우저 관련 정보 탈취
키 체인 정보 탈취

 

탈취 대상 정보는 아래와 같다.

- 크롬 브라우저 관련 데이터

  - 유저 데이터

  - 환경 설정 값

  - 확장 프로그램 관련 데이터

- 브레이브 브라우저 관련 데이터

  - 유저 데이터

  - 환경 설정 값

  - 확장 프로그램 관련 데이터

- 오페라 브라우저 관련 데이터

  - 유저 데이터

  - 환경 설정 값

  - 확장 프로그램 관련 데이터

- 키 체인 파일

- 유저 프로필

- 지역 정보

- 로그인 정보

- 확장 프로그램 관련 정보

 

위 정보들을 모두 탈취하면 지정된 C2 서버로 해당 정보들을 전송한다.

정보 전송

 

악성코드에는 C2 서버로부터 추가적인 악성코드(파이썬 스크립트)를 다운로드 받는 기능도 존재한다. 해당 기능은 C2 서버의 특정 endpoint를 통해 동작한다. 먼저, /pdown endpoint로 접근할 경우 파이썬 스크립트 동작에 필요한 파이썬 모듈 등 각종 파일들을 다운로드 한다.

/pdown endpoint
다운로드 된 파일들

 

또한, 메인 파이썬 스크립트는 /client/[id] endpoint를 통해 동작한다. 해당 endpoint로 접근할 경우 메인 파이썬 스크립트가 다운로드 되는 형태이다.

/client/[id] endpoint

 

추가 악성코드 다운로드가 완료되고 나면 python.exe 파일을 통해 메인 파이썬 스크립트를 실행한다.

파이썬 스크립트 실행

 

메인 파이썬 스크립트는 인코딩 된 데이터를 실행시키는 형태로 동작한다.

인코딩 데이터 실행

 

해당 인코딩 데이터는 약 50번의 디코딩 과정을 거친다. 아래 그림은 첫 디코딩 과정 후 나타난 파이썬 코드이다.

1차 디코딩 완료 코드

 

최종 디코딩이 완료되면 아래와 같은 파이썬 코드가 나타난다. 해당 코드에는 주석 처리된 변수도 존재한다. 또한, 해당 코드에서 각각 변수명은 아래와 같은 의미를 가지는 것으로 보여진다.

- sType: 피해자 식별 번호

- gType: 구동 권한

- ot: 피해 PC 운영체제 정보

- home: 피해자 PC 홈 경로

- host1: C2 서버 주소

- host2: C2 서버 주소 + 포트

- pd: 홈 경로 아래 .n2 경로

- ap: pd 경로 아래 pay 폴더

최종 파이썬 코드 중 일부

 

해당 파이썬 코드에서는 피해자 식별 번호 등을 통해 C2 서버로부터 또 다른 페이로드 등을 다운로드한다. 다운로드 한 데이터들을 각각 pd 변수 경로 아래에 /pay, /bow, /mlip 경로에 저장한다.

- /pay: 페이로드 저장 경로 (http://185[.]235[.]241[.]208:1224/pay/[id]/root)

- /bow: 브라우저 관련 데이터 저장 경로 (http://185[.]235[.]241[.]208:1224/brow/[id]/root)

- /mlip: (http://185[.]235[.]241[.]208:1224/mclip/[id]/root)

페이로드 저장 코드

 

/bow 폴더에 저장된 brow99.py 스크립트의 경우 피해자의 각종 브라우저 데이터를 탈취함과 동시에 브라우저에 저장된 카드 정보, 로그인 정보 등을 SQL 쿼리를 통해 탈취한다.

- 탈취 대상 브라우저: 크롬, 오페라, 브레이브, 얀덱스, 엣지

브라우저 정보 탈취
카드 정보 탈취
로그인 정보 탈취

 

/pay 폴더에 저장된 pay99.py 스크립틔 경우 피해자의 각종 시스템 정보 등을 탈취한다. 

피해자 PC 시스템 정보 탈취

 

또한, 피해 PC에 존재하는 metamask 등 코인 관련 정보나 .git 등 중요 디렉토리 정보를 탈취한다.

중요 정보 탈취

 

또한, 클립보드 정보 등도 탈취하는 등 피해 PC에 전반적인 파일 탈취/키로깅 등을 수행한다.

키로깅/클립보드 정보 탈취

 

해당 악성코드는 Lazarus 그룹이 위장 구인을 통해 피해자들에게 유포한 악성코드이다. 피해자는 악성코드 감염 시 피해 PC의 여러 정보를 C2 서버로 탈취당한다. 해당 정보에는 코인 관련 지갑 정보나 키로깅, 파일 탈취 등 중요 정보를 탈취당할 수 있는 기능을 포함하고 있다.

 

IoC

- 24b89c77eaeebd4b02c8e8ab6ad3bd7abaa18893ecd469a6a04eda5e374dd305 : MacOS 악성코드

- dfb8c0525681d6fa8f65bbd62293c619a778f4080ebe29e41fe31b4f122000cf : 메인 파이썬 스크립트

- 6a104f07ab6c5711b6bc8bf6ff956ab8cd597a388002a966e980c5ec9678b5b0 : 파이썬 모듈 압축파일

- 9ece783ac52c9ec2f6bdfa669763a7ed1bbb24af1e04e029a0a91954582690cf : brow99.py

- 8298e52f33b15c6507cb51580a4f9a876e2f9adb312968572064a7de54c3528a : pay99.py

- http://185[.]235[.]241[.]208:1224 - C2 서버

반응형

'Analysis' 카테고리의 다른 글

88. Lazarus's BeaverTail 2 (Python)  (0) 2024.10.14
86. UNC2970 correlation with Lazarus  (1) 2024.09.24
85. Kimsuky's Twitch - Payment Plan.msc  (1) 2024.09.12
84. Head Mare correlation  (0) 2024.09.09
83. Kimsuky's rhfueo)@@) lnk malware  (1) 2024.09.06