꿈을꾸는 파랑새

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

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

악성코드 분석

해당 악성코드는 Windows\SysWow64\WindowsPowerShell\v1.0\powershell.exe를 가지고 실행을 합니다.
dir 명령어를 사용해서 powershell.exe의 위치를 동적으로 찾아내어 실행하는 것이 특징입니다.
dir 명령어를 보면 s /b /od 이라는 것을 볼수가 있는데 명령어 설명은 다음과 같습니다.
/s:현재 폴더뿐만 아니라 모든 하위 폴더까지 전부 검색
/b:파일 크기나 날짜 같은 상관없이 bare format 부분만 실행
/od날짜(Date) 순으로 정렬하여 출력
그리고 나서 악성코드에서는 XOR 를 통해서 정상적인 파일을 추출을 진행합니다.
0x00000000~0x000012A9:LNK 파일 헤더+바로가기 설정+악성코드 명령 문자열
0x000012AA~0x0001BF93:숨겨진 정상적인 엑셀 문서
0x0001BF94~0x0001DB78:XOR 0xBF로 암호화된 페이로드
악성코드에 포함된 디코이 파일 등은 파이썬으로 뽑아 버리면 쉽게 확보 가능합니다.
파이썬으로 풀며 다음과 같은 파일들을 확보 가능합니다.
바로가기 실행 정보
피해자에게 보여줄 정상 Excel 문서

악성코드 미끼 파일 내용
악성코드 미끼 파일 내용

실제 JS payload taz 압축 파일

미끼 파일은 저번 2603vvip고객현황.lnk 내용하고 같음
그리고 나서 사용자가 컴퓨터를 전원을 넣고 실행을 하면 계속 악성코드가 계속 동작을 하려고 작업 스케줄러에 등록
작업 이름:Intel(R) Ethernet2 Connection 2509-PM
실행 명령:wscript.exe /B /NoLogo C:\ProgramData\vaccine\WCF35Setup(.)js
실행:컴퓨터 실행 기준 1분 뒤
반복: 16분마다 재실행
특징: 노트북 같은 경우 배터리 사용을 해도 계속 작업 노트북 사용자 환경을 생각한 것 같습니다.
다음 명령어
-AllowStartIfOnBatteries:노트북 배터리 로 사용 중이어도 예약 작업 시작 허용
-DontStopIfGoingOnBatteries:AC 전원 연결해서 실행 중이도 작업이 중지하지 않음

작업스케줄러 에 등록
작업스케줄러 에 등록

WCF35Setup 분석

WCF35Setup.js 에 포함된 자바스크립트
WCF35Setup.js 에 포함된 자바스크립트

1.난독화된 URL 복원
코드 초반에 보면 CoC1,CoC2,CoC3 등이 보일 것인데 이것은 문자열을 char 로 쪼개서 URL을 감추는 방식을 사용하고 있습니다. 그러면 복원을 하면 다음과 같은 결과를 확인이 가능 합니다.
UoR:hxxps://content(.)dropboxapi(.)com/2/files/upload
DoR:hxxps://content(.)dropboxapi(.)com/2/files/download
RoR:hxxps://api(.)dropboxapi(.)com/2/files/move_v2
AoR:hxxps://api(.)dropboxapi(.)com/oauth2/token
Dropbox 정상 API를 사용하는 것이 특징
2.EoR 함수 에 포함된 RC4+Base64 암호화
입력 문자열->UTF-8 바이트 변환->C4 방식으로 XOR 스트림 암호화->Base64 인코딩
사용하는 키
Se!cure32
해당키로 감염 컴퓨터에 내용을 암호화하고 Base64 로 인코딩하고 수집된 정보를 전송하는 방식을 사용
3.감염 컴퓨터 정보 수집
공인 IP:nslookup myip(.)opendns(.)com->208.67.222.220 오픈 DNS를 사용하는 것이 특징
OS 버전수집:System.Environment]::OSVersion
실행 중 프로세스 목록 수집:Get-Process
도메인 및 사용자명:USERDOMAIN@@USERNAME
공인 IP 조회 부분

WCF35Setup 디코딩 결과
WCF35Setup 디코딩 결과

4. 감염자 식별자 생성
SHA256(MACAddress),GoI("Pan05A26") 등을 통해서 
즉 각각 악성코드 감염된 피해자를 Dropbox 경로가 만들어집니다.
그리고 공격자는 MAC 주소를 그대로 쓰지 않고 SHA256 해시 앞 4바이트 부분만 사용을 하며 이렇게 해서 피해자를 구분하게 됩니다.
5.Dropbox access token 발급
Dropbox OAuth2 토큰 엔드포인트에 요청해서 access token을 받아 오는 역할
refresh token:장기 토큰
client id:Dropbox 앱 ID
client secret:Dropbox 앱 secret
6.감염된 컴퓨터 정보 업로드
gpi 로 수집한 감염된 컴퓨터 정보를 임시 파일에 저장 하고 나서 Dropbox에 업로드 하는 역할을 합니다.
감염된 피해자 /MM:dd---HH:mm.txt 방식으로 업로드
그리고 수집되는 컴퓨터 정보
OS 버전
암호화된 공인 IP
도메인, 사용자이름
암호화된 프로세스 목록
7.Dropbox에서 명령 BAT 다운로드 후 실행
다운로드에 성공을 하게 되면 
Start-Process cmd.exe /c... 부분을 통해서 피해자 PC에서 숨긴 상태에서 실행합니다. 즉 사용자 몰래 실행을 하는 것

아무튼, 이렇게 해당 악성코드인 고객현황_202604.lnk 에 대해 분석을 해 보았습니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band