꿈을꾸는 파랑새

반응형

오늘은 김수키(Kimsuky) 개인정보 유출 의심 확인 요청으로 유포되는 악성코드-고객현황_202604.lnk 에 대해서 알아보겠습니다. 해당 악성코드는 기업의 실무 담당자를 대상으로 삼아 여러 차례 메일을 주고받으며 신뢰를 쌓고 악성 파일을 실행하도록 유도하는 방식을 사용하고 있습니다.
파일명:2603vvip고객현황.lnk
사이즈:1 MB
MD5:c8ce5c23d4644aa089455c479e52dae3
SHA-1:c0bd4da40aa929e0f6f851781728719ec71b88ba
SHA-256:7f9fe5839a2ffaa627685f673ee5d4ba5a30857c24d4cf141ab408c7a18e3f4a

악성코드 에 포함된 PowerShell 코드
악성코드 에 포함된 PowerShell 코드

분석

1.LNK 실행
현재 경로에서 크기가 정확히 121,594 bytes 인 .lnk 파일을 찾고
공격자는 LNK 파일 크기를 고정값으로 맞춰 두었으면 이후 자기 자신으로 추정되는 LNK를 열고 내부 데이터를 두 구간으로 나눠 추출
1:미끼 XLSX
시작 offset:0x12AE
크기:0x1ACEC
종료 offset:0x1BF9A
생성 파일:원본 .lnk 와 같은 이름의.xlsx
목적:사용자를 속이는 미끼 문서 실행
2: 암호화된 추가 페이로드
시작 offset:0x1BF9A
종료 offset:0x1DAFA
암호화:XOR 0xBF
복호화 결과:TAR archive
압축 해제 위치:C:\ProgramData\NuGetx

악성코드 실행시 화면
악성코드 실행시 화면

3.작업 스케줄러에 등록 후 지속성 확보
Intel(R) Ethernet2 Connection 1209-LG
정상적인 Intel 네트워크 어댑터 이름처럼 보이지만 실제로는 wscript.exe로 JS 파일을 실행
4. 은닉 및 위장 기법
.xlsx 아이콘 사용: 사용자가 엑셀 문서로 착각하도록 하는 목적
LNK 내부 데이터 카빙:XLSX와 페이로드를 LNK 내부에 삽입

작업스케줄러 에 등록 및 vaccine 숨겨져 있는 폴더 내 모습
작업스케줄러 에 등록 및 vaccine 숨겨져 있는 폴더 내 모습

XOR 암호화: 페이로드를 단순 정적 탐지에서 숨김
TAR archive 사용:Windows 기본 tar.exe 를 이용해 별도 압축 해제 도구 없이 작동
attrib +h +s:디렉터리를 숨김+시스템 속성으로 설정
정성스러운 이름인 것처럼 꾸밈:vaccine,NuGetx,Intel(R) Ethernet...
JS 실행 :wscript.exe 기반 스크립트 페이로드
예약 작업 지속성: 재부팅 이후 또는 주기적으로 재실행 가능
자기 삭제:원본 .lnk 와 임시 archive joyment98 삭제

악성코드 미끼 파일 고객현황
악성코드 미끼 파일 고객현황

IOC

C:\ProgramData\vaccine\
C:\ProgramData\vaccine\user-config.js
C:\ProgramData\vaccine\joyment98
C:\ProgramData\NuGetx\
C:\ProgramData\NuGetx\user-config.js
Intel(R) Ethernet2 Connection 1209-LG
cmd.exe /k for /f..

user-config.js 내용
user-config.js 내용

user-config.js 분석

Scripting.FileSystemObject:파일 읽기/쓰기
WScript.Shell:외부 명령 실행
k = "Secure20@^":복호화 키
inf = "C:\\ProgramData\\NuGetx\\Web12.config:암호화된 다음 단계 페이로드
B(dat):Base64 디코딩
R(k, B(dat)):RC4 유사 알고리즘으로 복호화
CreateTextFile(p, 1):복호화 결과를 임시 .ps1로 저장
sh.Run(..., 0, 1):PowerShell을 숨김 창으로 실행하고 완료까지 대기
Base64로 인코딩된 RC4 암호화 PowerShell payload
RC4 복호화 key = Secure20@^

파워셀 난독화 전
파워셀 난독화 전

PowerShell 스크립트로 복원 실행

난독화 해제 후 분석

Dropbox API URL
hxxps://content(.)dropboxapi(.)com/2/files/upload
hxxps://content.dropboxapi(.)com/2/files/download
hxxps://api.dropboxapi(.)com/2/files/move_v2
hxxps://api.dropboxapi(.)com/oauth2/token
자체 C2 도메인을 쓰지 않고 Dropbox 정상 API를 악용
피해자 ID 생성 방식
GoI는 연결된 네트워크 어댑터의 MAC 주소를 가져옴
그다음 MAC 주소를 SHA256 해시 앞 4바이트만 hex로 사용
Pan05A25_(MAC_SHA256_앞_4바이트)
결과 획득
그러며 해당 값이 Dropbox 안에서 피해자별 식별자로 사용
수집 정보
gpi 함수가 수집
OS 버전: 평문
공인 IP:RC4 + Base64 
사용자 정보:평문
프로세스 목록:RC4 + Base64
공인 IP 조회:
208.67.222.220 은 OpenDNS resolver
myip(.)opendns(.)com 질의를 통해 외부 IP를 알아내려는 목적
암호화 방식
EoR 함수는 RC4와 거의 같은 구조

난독화 해제
난독화 해제

암호화 키:Se!cure32
수집한 공인 IP와 프로세스 목록을 암호화하고 Base64로 인코딩
즉 업로드 파일 안의 일부 값은 바로 읽히지 않음
업로드 동작
HoU 함수가 정보 업로드
asdsad_a1adsad4/06:20---14:31.txt
Dropbox upload API
hxxps://content(.)dropboxapi(.)com/2/files/upload
업로드 내용
OSVersion
암호화된 공인 IP
USERDOMAIN@@USERNAME
암호화된 프로세스 목록
명령 다운로드 및 실행
가장 위험한 함수 HoD함수는 Dropbox에서 다음 경로를 다운로드
다운로드 성공 시 로컬에 BAT 파일로 저장
다음 숨김 창으로 실행->공격자가 Dropbox에 BAT 명령 파일을 올려두면 감염 PC가 주기적으로 받아서 실행할 수 있게 설정해 놓음
_buy 의 의미
명령 파일을 다운로드한 뒤 해당 함수를 호출
HoR 는 Dropbox의 파일을 이동 및 이름 변경
그런데 해당 엑셀 파일 내용을 보던 중 대한민국 정책브리핑 도메인도 보이는 것이 특징 
정리하면 다음과 같습니다.
요약
사용자 .lnk 실행->cmd.exe /k->SysWOW64 32-bit powershell.exe 실행->현재 위치에서 특정 크기의 .lnk 검색->.lnk 내부에서 정상 XLSX 미끼 문서 추출->XLSX 실행->.lnk 내부 후반부에서 XOR 암호화된 TAR 페이로드 추출->TAR 압축 해제->user-config.js를 C:\ProgramData\vaccine\ 로 이동->wscript.exe로 user-config.js 실행하는 예약 작업 생성->원본 .lnk 및 임시 페이로드 삭제
1.피해자 ID 생성->Pan05A25+MAC 주소 SHA256 일부
2.Dropbox OAuth access_token 발급->refresh_token,client_id,client_secret 사용
3.시스템 정보 수집
OS 버전
공인 IP
USERDOMAIN@@USERNAME
실행 중인 프로세스 목록
4.일부 수집 정보 암호화
RC4 유사 알고리즘
Base64 인코딩
키:Se!cure32
5.Dropbox에 정보 업로드->/Pan05A25_<hash>/MM:dd---HH:mm.txt
6.Dropbox에서 명령 파일 다운로드 시도->/Pan05A25_(hash)_cafe
7.다운로드 성공 시 BAT로 저장->%TEMP%\cafebucket(random).bat
8.cmd.exe /c 로 숨김 실행->Dropbox 원격 파일명을 _buy로 변경->명령 처리 완료 표시
120초 대기 후 로컬 BAT 삭제
앞서 이야기한 것처럼 대한민국 정책브리핑실 도메인이 있는 것이 흥미로움 만약 해당 이메일 주소가 실제 존재한다면 저거 내가 아는 상식으로 회사 내에서 접속이 가능 한 걸로 알고 있는데…. 더는 이야기 했다가 드럼통 갈 것 같은 느낌
아무튼, 우리 김수키 동무의 악성코드인 2603vvip고객현황.lnk을 해보았습니다.

728x90

공유하기

facebook twitter kakaoTalk kakaostory naver band