꿈을꾸는 파랑새

오늘은 북한 해킹 조직인 코니(Konni) 에서 만든 네이버 로그인 사칭 악성코드인 210930-001.png.lnk 에 대해 알아보겠습니다. 해당 악성코드는 이미지 파일로 돼 있는 것으로 보이지만 실제로는 lnk 파일로 구성이 되어져 있으며 해당 파일을 실행하거나 파이썬으로 풀어 보면 이미지 파일과 cab 파일로 구성이 되어져 있는 것으로 확인할 수가 있습니다.
파일명:210930-001.png.lnk
사이즈:42 MB
MD5:f14fd02f65b036b7c0ae160e63c851f8
SHA-1:184fc35e8853d677cafb65349ac88be53632bb2b
SHA-256:fb7a17d7b79ee2831820134a31e15db0a43dd19050914fcdc01dbfdc6a58c134

악성코드 실행시 생성 되는 가짜 네이버 로그인 페이지
악성코드 실행시 생성 되는 가짜 네이버 로그인 페이지

악성코드 분석

1.CMD 난독화 부분
문자열에서 문자 하나씩 뽑아 조합하여 실제 명령을 만듦
복호화 결과:
powershell
-windowstyle hidden
사용자에게 보이지 않게 PowerShell 실행하는 것이 목적
2.PowerShell 동작 분석
PowerShell은 다음 위치에서 .lnk 파일을 찾음
1. 현재 디렉터리
2. %TEMP% 디렉터리
.lnk AND 파일 크기 = 0x02980000
0x02980000 =43,515,904 bytes (약 41.5MB)
사전에 제작된 악성 LNK 컨테이너
3.LNK 내부에서 첫 번째 페이로드 추출 & 실행
.lnk 파일을 바이너리 파일로 직접 열어서 특정 오프셋에서 데이터를 읽어들임
오프셋:0x1B28(6,952)
크기:0x13283(78,467 bytes)
저장 파일명:
확장자는 .png

악성코드 에 포함된 파일들
악성코드 에 포함된 파일들

실제로는 실행 가능한 바이너리
두 번째 페이로드 (CAB->BAT)
악성코드 실행 이후 추가로 또 다른 데이터를 추출
오프셋:0x14DAB
크기:0x105E (4,190 bytes)
동작 흐름:
1.원본.lnk 파일 강제 삭제
2.%PUBLIC%\batchsv392.cab 생성
3.%PUBLIC%\Libraries 에 압축 해제
4.avtue483.bat 실행
5.CAB 파일 삭제
4.IOC
파일/경로
210930-001.png
%PUBLIC%\batchsv392.cab
%PUBLIC%\Libraries\avtue483.bat
크기0x02980000 인.lnk 파일

윈도우 공용 펄더 라이브러리 에 생성된 악성코드
윈도우 공용 펄더 라이브러리 에 생성된 악성코드

avtue483.bat 에 포함된 내용

avtue483.bat 에 포함된 내용
avtue483.bat 에 포함된 내용

문자열 인덱싱(substring indexing) 기반 암호화 를 사용
한 줄에 길게 넣어둔 랜덤 문자열에서 특정 위치의 문자 1개씩을 뽑아 실제 명령어를 조립하는 방식을 취함
1.사용된 난독화 기법
환경변수 1개에 알파벳 를 숨김
MWFLWjqveWBWj 라는 무작위 변수명에 길고 의미 없는 문자열을 저장
해당 문자열이 실제로는 문자 저장소(lookup table) 역할을 함
%VAR:~N,1% 서브스트링으로 글자 하나씩 추출
:~33,1 =33번째 위치 문자 1개
이런 조각들을 수십 개 이어붙여 pushd,schtasks, move 같은 명령어 및 옵션 그리고 경로를 만듦
사람이 보기엔 의미 없는 기호 나열처럼 보여서 정적 탐지,시그니처를 회피하기 위한 목적
정상 소프트웨어 경로, 작업명 으로 위장
명령이 최종적으로 만드는 문자열에는
삼성을 사칭을 하고 있는 것이 특징

작업스케줄러에 포함된 삼성 업데이트 사칭
작업스케줄러에 포함된 삼성 업데이트 사칭

\Samsung\SamsungUpdate\... 같은 정상적인 작업 스케줄러 경로처럼 보이는 이름
.lnk를 스케줄 작업 실행 대상으로 지정
실제로는 삼성하고 전혀 상관없는 부분
복호화했을 때의 실제 동작
1.실행 위치 고정
첫 줄 조립 결과
스크립트가 있는 폴더로 이동 (%~dp0 사용)
보통 pushd "%~dp0" 또는 유사 동작
목적:상대 경로 기반으로 옆에 있는 악성 파일(.lnk 등)을 안정적으로 참조
2.지속성(Persistence) 심기:작업 스케줄러 등록
두 번째 긴 줄은 schtasks 명령으로 조립
분(minute) 단위 반복 실행
7분마다(/mo 7) 실행
작업 이름은 정상 프로그램처럼 위장
예:\Samsung\SamsungUpdate\UpdateCheckTaskMachine
실행 대상(/tr)은 같은 폴더의 특정 lnk
/f 로 기존 작업이 있어도 강제로 덮어쓰기
목적: 재부팅/로그오프와 상관없이 주기적으로 악성 LNK를 실행하게 하여 지속성 확보
SamsungUpdate:삼성 컴퓨터와 삼성 노트북에 최적화된 최신의 바이오스, 드라이버 및 어플리케이션을 쉽게 설치하거나 업데이트할 수 있도록 도와주는 프로그램으로 위장했으리라 생각이 됨

교체 된 파일 내용
교체 된 파일 내용

3.파일명 교체/정리
마지막 줄은 move 를 조립
어떤 BAT 파일을 다른 이름으로 덮어쓰기 이동
예:move /y bxcyv197.bat avtue483.bat
목적:
드롭된 배치 파일의 이름을 기대되는 이름(avtue483.bat)로 맞춰 이후 단계가 찾게 하거나,
임시 이름을 정상화하면서 분석 및 추적을 어렵게 하기 위한 목적
4.요약
난독화 방식: 환경변수에 난수 문자열 저장->%VAR:~index,1% 로 문자 1개씩 뽑아 명령어 조립
실제 기능: 작업 폴더 이동->schtasks 로 7분 주기 실행 작업 생성(정상 작업 명으로 위장,실행 대상은 악성 LNK)->BAT 파일명 이동 및 교체

bxcyv197.bat 분석

bxcyv197.bat 내용
bxcyv197.bat 내용

1.실행 위치 고정
BAT가 있는 폴더로 이동
이후 호출되는 uplokli567.bat,chbbie400.bat 등을 같은 폴더에서 찾기 쉽게 만듦
2.사용자 파일 존재 여부 및 목록 정찰 (대량 디렉터리 열람)
다운로드,문서,바탕화면 하위 전체를 재귀(/s)로 읽어 들어서 파일 목록을 수집
/a 로 숨김/시스템 포함 가능
/od 는 날짜 정렬(보통 최근/오래된 파일 패턴을 보려는 목적)
사용자가 어떤 문서, 자료를 가졌는지를 빠르게 파악
3. 설치된 프로그램/환경 정보 수집
설치된 프로그램 흔적(디렉터리)을 통해 보안 제품, 업무 프로그램 추정
systeminfo 로 OS 버전,패치,도메인, HW 정보 등 상세 환경정보 수집
환경 파악(보안 제품 회피,권한,취약점,전개 전략 선택)
4. 공인 IP 확인(OpenDNS 이용)
외부에서 보이는 공인 IP 확보
공격자가 피해자 네트워크 위치 파악하거나 업로드 기록과 매칭할 때 사용
5.실행 중 프로세스,스케줄러,자동실행 수집
tasklist:현재 실행 중인 프로세스(백신,업무앱)
schtasks:스케줄 작업 목록
HKCU\...\Run:사용자 자동실행
탐지 가능성 평가+지속성 및 방어 상태 파악
6.시간 지연
네트워크 업로드 전 잠깐 쉬어 EDR 타이밍 회피, 혹은 파일 생성 완료 대기
7.C2 업로드 엔드포인트 지정
hxxps://atlasstours(.)com/wp-includes/class-wp-style(.)php
8.수집 파일 업로드 시도
uplokli567.bat에 URL+데이터파일 을 인자로 넘김
반복 호출로 여러 .data를 순차 업로드하는 구조
핵심은 uplokli567.bat 내부
9.흔적 삭제+다음 단계로 교체
업로드 도구 역할의 uplokli567.bat을 삭제->증거 제거
chbbie400.bat 을 avtue483.bat 으로 이름 바꾸기(덮어쓰기)
앞 단계(PowerShell/CAB)에서 avtue483.bat 실행이 있었던 흐름과 연결

10.생성/유출 대상 아티팩트(호스트 IOC)
생성되는 파일들:
cuserdown.data
cuserdocu.data
cuserdesk.data
cprog.data
cprog32.data
ipinfo.data
tsklt.data
schinfo.data
regInfo.data
systeminfo.data
삭제 및 변경:
uplokli567.bat (삭제됨)
chbbie400.bat->avtue483.bat로 이름 변경
네트워크 IOC:
atlasstours(.)com
hxxps://atlasstours(.)com/wp-includes/class-wp-style(.)php
교체된 파일 분석
통신,다운로드,정리
%COMPUTERNAME%를 URL에 붙여 피해자 식별
title/pop3/push2 변수로 도구명,URL.파일명을 감춘 채 조립
if exist로 파일 존재 체크
있으면 삭제 또는 다음 단계 실행,교체 수행

uplokli567.bat 분석

uplokli567.bat 내용
uplokli567.bat 내용

1.pushd "%~dp0"
BAT 파일이 있는 폴더로 작업 디렉터리를 이동
즉 %2 파일을 항상 이 폴더 기준으로 찾게 하며 수집 파일(*data )이 해당 폴더에 생성되는 구조
2.curl~~~
해당 줄이 핵심
HTTP 메서드:POST
전송 형식:multipart/form-data
폼 필드 2개:
name=%COMPUTERNAME%
피해자 식별값(컴퓨터 이름)
data=@%~dp0%2
%2 파일을 첨부파일로 업로드
@ 는 curl에서 파일 업로드 를 의미
%1:업로드 대상 URL
앞 스크립트에서 %cowboy% 같은 변수로 전달되던 URL이 여기로 들어옴
로컬 파일(%2)을 외부 서버(%1)로 업로드
del /f /q %2
업로드가 성공했든 실패했든(에러 체크 없음) 무조건 파일 삭제
/f 강제 삭제,/q 조용히 삭제
정보 수집 BAT 가 만든 파일들을(예:cuserdown.data, systeminfo.data 등)
하나씩 업로드하고 즉시 삭제 목적

Libraries 에 파일을 푸는 코드
Libraries 에 파일을 푸는 코드

vxnklcn989.vbs 분석

LNK에서 CAB 추출
CAB를 %PUBLIC%\Libraries에 풀기
avtue483.bat 생성 및 교체
해당 VBS가 avtue483.bat를 숨김 실행
일단은 파일을 실행하면 컴퓨터 정보를 털어가는 악성코드이며 네이버 피싱 화면을 어설프게 보여주는 것이 이상함 아무튼 작업 스케줄러에서는 삼성 업데이트 사칭을 하는 악성코드입니다.

네이버 피싱 부분은 진짜 성의 없게 만들어 놓음

 

공유하기

facebook twitter kakaoTalk kakaostory naver band