목차 :
- 개요
- 위협 프로필
- 감염 사슬
- 캠페인-1
- 미끼 분석:
- 기술 분석
- ROKRAT 악성코드의 지문
- 캠페인-2
- 미끼 분석
- 기술적 분석
- 디코딩된 tony31.dat의 상세 분석
- 맺음말
- Seqrite 보호
- MITRE 공격:
- IoC
소개 :
Seqrite Labs의 보안 연구원들은 최근 APT 그룹 "Kimsuky", 일명 "Black Banshee"가 실행한 두 가지 별도의 캠페인을 발견했습니다. 이 그룹은 진화하는 전술을 사용하여 한국을 적극적으로 공격해 왔습니다. 이 캠페인에서 위협 행위자들은 한국 정부를 주제로 한 두 개의 문서를 미끼로 유인했으며, 특히 한국 내 정부 기관을 표적으로 삼았습니다.
이 블로그에서는 분석 과정에서 발견된 캠페인의 기술적 세부 사항을 자세히 살펴보겠습니다. LNK(바로가기) 파일 첨부 파일이 포함된 피싱 이메일부터 시작하여 감염의 다양한 단계를 살펴보겠습니다. LNK 파일은 난독화된 VBA(Visual Basic for Applications) 스크립트를 배포하도록 설계되었습니다. 스크립트의 난독화를 해제한 후, 두 개의 추가 파일(PDF 파일 하나와 ZIP 파일 하나)을 배포하는 역할을 한다는 것을 발견했습니다. ZIP 파일에는 네 개의 악성 파일이 포함되어 있었습니다. 로그 파일 두 개(1.log 및 2.log), VBA 스크립트(1.vba), PowerShell 스크립트(1.ps1)가 있었습니다. 두 캠페인 모두 동일한 악성 파일 집합을 포함하고 있었습니다.
감염 사슬:

초기 결과:
캠페인-1:
첫 번째 캠페인에서 저희는 세금 감면 및 세수입 관련 세금 납부 관련 문서를 발견했는데, 이 문서에는 동일한 악성 LNK 첨부 파일이 포함되어 있었습니다. 이 첨부 파일은 이후 악성 VBScript를 배포하여 추가적인 침해를 야기했습니다.

초기 조사 결과에 따르면, 공격자는 동일한 LNK 파일 내용이 포함된 다른 문서를 사용했다는 사실을 발견했습니다.
캠페인-2:
캠페인 2에서 한국이 성범죄자의 재범 방지를 위한 새로운 정책을 시행하고 있다는 사실이 알려졌습니다. 이 정책은 관련 규정을 담은 상세 문서를 각 가정, 어린이집, 유치원, 그리고 읍·면·동 주민센터를 포함한 여러 지방행정기관에 배포하는 것을 포함합니다. 그러나 사이버 범죄자를 포함한 해커들은 유해한 첨부 파일이 포함된 사기성 이메일을 발송하는 방식으로 이러한 배포 과정을 악용하고 있습니다. 이러한 이메일은 거주 지역 주민과 지방행정기관의 핵심 인력을 표적으로 삼고 있습니다.

적대자들은 이 정보와 문서를 이메일로 유포하고 파일 이름으로 위장하여 배포하는 방식을 이용했습니다. 성범죄자 신상정보 고지.pdf.lnk (성범죄자 개인정보보호 고지.pdf.lnk). 이 첨부 파일에는 악성 LNK 파일이 포함되어 있으며, 이는 수신자에게 사이버 보안 위협을 초래합니다.
기술적 분석 및 방법론:
캠페인 1 & 2:
campaign-28에서 2f68822fcece38c72310e911c007ef8f8bd711fd2080844f666f7b371f9e1e1.lnk라는 파일을 다운로드했고, campaign-2에서 이메일을 통해 공유된 "성범죄자 신상정보 고지.pdf.lnk"(성범죄자 개인정보 고지.pdf.lnk)라는 파일을 다운로드했습니다. 이 LNK 파일을 분석하는 동안 아래 스냅샷에서 볼 수 있듯이 외부 C2 서버에서 추가 파일을 가져오는 것으로 보입니다.


해당 파일은 위에 제공된 URL에서 다운로드되어 아래에 표시된 대로 Temp 폴더에 저장되었습니다.




C2 서버에서 다운로드된 파일은 난독화된 VBScript인 것으로 보입니다. DE가 스크립트를 난독화하는 과정에서 PDF 파일 하나와 ZIP 파일 하나, 두 개의 파일을 추가로 발견했습니다.

파일의 첫 번째 섹션은 Base64 문자열로 인코딩되었습니다.

디코딩 후 PDF 파일 하나를 찾았습니다.

VBScript의 두 번째 부분도 Base64로 인코딩되어 있습니다. 디코딩해 보니 ZIP 파일이 발견되었습니다.


Zip 파일에는 아래와 같은 개수의 파일이 포함되어 있습니다.

ZIP 아카이브 내에서 VBScript, PowerShell 스크립트, 그리고 Base64로 인코딩된 두 개의 텍스트 파일, 이렇게 네 개의 파일이 발견되었습니다. 이 인코딩된 텍스트 파일에는 난독화된 데이터가 저장되어 있으며, 이를 심층 분석하면 악성코드의 기능과 목표에 대한 중요한 정보를 얻을 수 있습니다. 다음 그림은 두 텍스트 파일의 인코딩된 내용을 보여줍니다. 이후 이 내용은 공격 체인의 다음 단계를 밝히기 위해 디코딩 및 분석될 예정입니다.


1.vbs 파일은 고급 난독화 기법을 사용하는데, chr() 및 CLng() 함수를 사용하여 문자를 동적으로 생성하고 런타임에 명령을 실행합니다. 이 전략은 시그니처 기반 탐지 메커니즘을 효과적으로 우회하여 스크립트가 실행 중에 탐지를 피할 수 있도록 합니다.
스크립트 종료 시, 연결된 문자들이 완전한 명령을 형성하고 이후 실행됩니다. 이 명령은 1.ps1 PowerShell 스크립트를 호출하고, 추가 처리를 위해 1.log를 인수로 전달하도록 설계되었을 가능성이 높습니다.

VBScript의 난독화를 해제하려고 시도한 결과, 다음과 같은 명령줄 실행이 발견되었으며, 이는 이후 추가 처리를 위해 PowerShell 스크립트를 트리거합니다.

1.vbs 파일을 실행하면 아래 스냅샷에서 볼 수 있듯이 1.ps1 파일이 호출됩니다.


1.ps1 스크립트에는 64.log 파일에서 Base1로 인코딩된 데이터를 디코딩하고 결과 스크립트를 실행하도록 설계된 함수가 포함되어 있습니다.


1.ps1 스크립트는 손상된 호스트에서 고유 시스템 식별자인 BIOS 일련 번호를 검색합니다. 이 일련 번호는 이후 시스템의 임시 폴더 내에 전용 디렉터리를 생성하는 데 사용되며, 위 스냅샷에서 볼 수 있듯이 공격 관련 파일이 손상된 시스템의 특정 위치에 저장됩니다.
VM 인식 샘플로서, 이 스크립트는 가상 머신 환경에서 실행 중인지 확인합니다. 가상 머신을 감지하면 공격과 관련된 네 개의 파일(1.vbs, 1.ps1, 1.log, 그리고 일련 번호 이름을 딴 디렉터리에 저장된 모든 페이로드 파일)을 모두 삭제하여 그림과 같이 공격 실행을 사실상 중단합니다.
이 스크립트는 데이터 유출, 암호화폐 지갑 정보 유출, 그리고 명령제어(C11) 통신 구축 등 악성코드 작동의 후속 단계를 정의하는 2가지 기능을 포함하고 있습니다. 이러한 기능은 공격 실행에 필수적이며, 악성코드의 목표를 달성하고 위협 행위자와의 지속적인 통신을 보장합니다.
1개 로그 파일에서 검색된 악성 기능 목록:
- 업로드파일 () :
업로드 함수는 데이터를 1MB 단위로 서버로 전송하여 유출시켜 대용량 파일을 효율적으로 처리할 수 있도록 합니다. 스크립트는 서버로부터 응답을 기다리다가 HTTP 상태 코드 "200"을 수신하면 추가 실행을 진행합니다. 응답이 일치하지 않으면 스크립트는 작업을 종료합니다. 각 청크는 HTTP POST 요청을 통해 전송되며, 함수는 각 업로드 반복의 성공 여부를 확인한 후 작업을 계속 진행합니다.

- GetExWFile():
The GetExWFile 이 함수는 암호화폐 지갑 확장 프로그램을 포함하는 미리 정의된 해시 테이블 집합을 반복합니다. 일치하는 항목이 발견되면 해당 확장 프로그램과 연결된 ".ldb" 및 ".log" 파일을 식별하여 유출합니다. 이러한 파일은 지정된 대상 폴더로 전송됩니다. $스토어패스 변하기 쉬운.

- GetBrowserData():
이 스크립트는 Edge, Firefox, Chrome, Naver Whale 등 브라우저가 실행 중인지 확인하여 쿠키, 로그인 정보, 북마크, 웹 데이터 등 사용자 프로필 데이터를 추출합니다. 이 정보를 수집하기 전에 스크립트는 브라우저 프로세스를 종료하여 원활한 접속을 보장합니다. 그런 다음, 식별된 각 브라우저에 대해 설치된 확장 프로그램 및 캐시 파일(예: webcacheV01.dat)의 데이터를 검색합니다. 특정 브라우저의 경우, 암호화된 키를 잠금 해제하기 위한 복호화 작업을 수행하여 민감한 정보를 추출하고, 이 정보는 복호화된 마스터 암호화 키와 함께 저장됩니다.

- 파일 다운로드() :
파일 다운로드 기능은 C2 명령에 따라 모든 파일을 다운로드합니다.

- RegisterTask() :
이는 "1.log" 및 "1.vbs" 파일에 대한 지속성을 생성합니다.

- 보내다 ():
send() 함수는 수집된 모든 정보를 "init.zip"이라는 이름의 ZIP 파일로 압축하여 서버에 업로드합니다. 그런 다음 ZIP 파일의 이름을 "init.dat"로 변경하고, 업로드 후 시스템에서 모든 백업 파일을 삭제합니다.

함수의 실행 흐름은 공격 내에서 여러 동작이 수행되는 순서를 따릅니다. 이러한 함수 중 하나는 키로깅 활동을 수행하는 2.log 파일을 호출하는 또 다른 PowerShell 명령을 트리거합니다.



2.log 파일의 디코딩된 내용은 위에 나와 있습니다. 이 파일에는 키 입력 감지, 창 제목 검색, 키보드 상태 관리를 위한 필수 Windows API 함수를 가져오는 스크립트가 포함되어 있습니다. 이 스크립트는 클립보드 모니터링, 키 입력 로깅, 창 제목 기록 등의 작업을 실행합니다.


맺음말
관찰된 바와 같이, 위협 행위자들은 시간 소모적이고 다중 구성 요소를 사용하는 기법들을 서로 연결하여 회피 능력을 강화하고 있습니다. 다른 스틸러들과 달리, 이 스틸러는 주로 네트워크 관련 정보에 초점을 맞추며, 이는 적극적인 정찰에 활용될 수 있습니다. 스틸러가 민감한 사용자 데이터를 표적으로 삼는다는 점을 고려할 때, 오늘날의 디지털 환경에서는 Seqrite Antivirus와 같은 신뢰할 수 있는 보안 솔루션을 사용하여 자신을 보호하는 것이 매우 중요합니다. Seqrite Lab은 최신 위협으로부터 보호하는 것 외에도 감염의 다양한 단계에서 이러한 스틸러에 대한 탐지 기능을 제공합니다.
Seqrite 보호:
- 트로이 목마.49424.SL
- 트로이 목마.49422.C
미터 공격:
| 초기 액세스 | T1566.001 | 피싱: 스피어피싱 첨부 파일 |
| 실행 | T1059.001
T1059.005 |
명령 및 스크립팅 인터프리터: PowerShell
명령 및 스크립팅 인터프리터: Visual Basic |
| 고집 | T1547.001 | 부팅 또는 로그온 자동 시작 실행: 레지스트리 실행 키/시작 폴더 |
| 방어 회피 | T1140 | 파일 또는 정보의 난독화/디코드 |
| 자격 증명 액세스 | T1555.003 | 암호 저장소의 자격 증명: 웹 브라우저의 자격 증명 |
| 발견 | T1082 | 시스템 정보 검색 |
| 수집 | T1056.001 | 입력 캡처: 키로깅 |
| 명령 및 제어 | T1071.001 | 애플리케이션 계층 프로토콜: 웹 프로토콜 |
| 여과 | T1041 | C2 채널을 통한 유출 |
IoC:
| MD5 | 사진이름 |
| 1119A977A925CA17B554DCED2CBABD8 | *.lnk |
| 64677CAE14A2EC4D393A81548417B61B | 1.로그 |
| F0F63808E17994E91FD397E3A54A80CB | 2.로그 |
| A3353EA094F45915408065D03AE157C4 | 예방.hta |
| CE4549607E46E656D8E019624D5036C1 | 1.vbs |
| 1B90EFF0B4F54DA72B19195489C3AF6C | *.lnk |
| 1D64508B384E928046887DD9CB32C2AC | 성범죄자 신상정보 고지.pdf.lnk |
C2
- hxxps[:]//cdn[.]glitch[.]global/
- hxxp[:]//srvdown[.]ddns.net
작성자
딕시트 판찰
카르틱 지바니
소우멘 버마



