논문파일을 위장한 악성코드 유포 주의 (Kimsuky 그룹)
최근 AhnLab SEcurity intelligence Center(ASEC)은 Kimsuky 그룹이 교수를 대상으로 논문 심사 요청을 가장한 피싱 메일 공격 정황을 확인하였다. 메일에 악성 OLE 개체가 삽입된 한글 문서 파일을 첨부하여 파일 실행을 유도했다. 해당 문서에는 비밀번호가 설정되어 있어, 메일 본문에 포함된 비밀번호를 입력해야 열람할 수 있으며, 문서를 열면 %TEMP%(임시 폴더) 경로에 6개의 파일이 자동으로 생성된다. 사용자가 내용을 더 확인하도록 문서 본문에 포함된 “더보기…” 문장에는 생성된 파일 중 하나인 “peice.bat” 파일을 실행하는 하이퍼링크가 삽입되어 있다. 문서 열람 시 생성되는 파일 목록은 아래 [표 1]과 같다.

[그림 1] 악성 OLE개체가 포함된 한글 문서파일
| 번호 | 파일이름 | 기능 |
|---|---|---|
| 1 | app.db | 정상 서명된 EXE |
| 2 | get.db | 프로세스 리스트, 설치된 AV정보 수집 및 추가 파일 다운로드 하는 파워쉘 스크립트 |
| 3 | hwp_doc.db | 정상 미끼 한글 문서 파일 |
| 4 | mnfst.db | 1번(app.db)파일이 읽는 설정 파일 |
| 5 | sch_0514.db | 12분마다 2번(get.db)을 실행하는 XML 스케줄러 파일 |
| 6 | peice.bat | 1~5번 파일들에 대한 작업 수행 |
[표 1] 생성된 파일들
“peice.bat” 파일이 실행되면 생성한 파일들을 특정 경로에 복사하는 행위를 수행하며 정확한 행위는 아래와 같다.
- 악성 OLE 개체가 삽입된 한글 문서 파일 삭제
- 3번 파일명을 “러·우 전쟁을 통해본 밀리테크와 미래전쟁 대비방향.hwp”로 변경 및 실행
- 5번 파일을 “GoogleTransltatorExtendeds” 이름으로 스케줄러 등록
- 1번 파일을 “C:\Users\Public\Music\”경로에 “cool.exe”로 복사
- 4번 파일을 “C:\Users\Public\Music\” 경로에 “cool.exe.manifest”로 복사
- 2번 파일을 “C:\Users\Public\Music\” 경로에 “template.ps1”로 복사
5번 파일 “sch_0514.db“은 매 12분마다 1번 파일 “cool.exe”를 실행하도록 설정된 스케줄러 XML 파일이다. 스케줄러에 의해 “cool.exe”가 실행되면, 해당 실행 파일은 4번 “cool.exe.manifest” 파일을 읽는다. 이 파일에서 “<!–BEGIN_VBSEDIT_DATA” 와 “END_VBSEDIT_DATA–>” 문자열 사이에 포함된 BASE64 인코딩 데이터를 추출하여 디코딩한 후 실행하게 되며, 이 과정에서 2번 “C:\Users\Public\Music\template.ps1” 파일을 실행하는 기능이 포함된 VBScript가 동작한다.

[그림 2] (상) 원본 설정 파일 (하) 디코딩된 설정 파일
“template.ps1”은 사용자 시스템에서 프로세스 목록과 설치된 백신(AV) 정보를 수집한 후, 이를 “park_년_월_일_시_분_info.ini” 형식으로 저장하고 공격자의 Dropbox로 전송한다. 이후 “park_test.db_sent” 파일을 “C:\Users\Public\Music\pol.bat” 경로에 다운로드한 뒤 실행하지만, 분석 당시 해당 파일은 확보되지 않았다.

[그림 3] template.ps1 코드 일부
위 사례와 다른 공격에서 사용된 “template.ps1” 파일도 수집하였으며 해당 파일은 “jsg_test.db_sent” 파일을 “C:\Users\Public\Music\1.bat” 경로로 다운로드한 뒤 실행하는데 분석 당시 “1.bat” 파일 다운로드에 성공하였으며 C2에서 추가 파일 다운로드 및 복사 행위를 수행하여 자세한 내용은 아래 [표 2] 및 [표 3]과 같다.
| 번호 | 행위 |
|---|---|
| 1 | curl을 통해 C2에서 “myapp, mnfst, attach, sch_0, vpost, bimage” 6개의 파일 다운로드 |
| 2 |
“bimage” 파일을 “User_Feed_Synchronization-{0DDC1BD9-E733-425C-B92B-ABAC149AB11232}” 이름으로 스케줄러 등록 |
| 3 |
“myapp, mnfst, attach” 파일을 각각 “%APPDATA%\microsoft\windows” 경로에 아래 이름으로 복사 “myapp” : default_an.vbs “mnfst” : default_an.ps1 “attach” : default_an.exe |
| 4 |
“sch_0, vpost” 파일을 각각 “%APPDATA%\AnyDesk” 경로에 아래 이름으로 복사 “sch_0” : service.conf “vpost” : system.conf |
[표 2] “1.bat” 기능
| 번호 | 파일 이름 (변경된 파일 이름) | 기능 |
|---|---|---|
| 1 | myapp (default_an.vbs) |
C:\Users\Public\Videos\default_an.ps1을 실행하는 VBScript |
| 2 | mnfst (default_an.ps1) | 5초마다 default_an.exe를 실행하고 창 및 트레이 아이콘을 숨김 처리 |
| 3 | attach (default_an.exe) | 정상 AnyDesk 파일 |
| 4 | sch_0 (service.conf) | AnyDesk 연결에 필요한 키와 솔트 기법이 적용된 해쉬화된 비밀번호가 포함된 설정 파일 |
| 5 | vpost (system.conf) | AnyDesk 연결ID와 설정 값이 포함된 파일 |
| 6 | bimage | default_an.vbs를 실행하는 스케줄러 XML 파일 |
[표 3] 파일별 기능
“1.bat” 파일이 다운로드하는 모든 파일은 “%APPDATA%\Microsoft\Windows” 경로에 복사되지만, 실제로 다운로드된 파일들은 “C:\Users\Public\Videos” 경로로 설정되어 있어 유연하게 실행되지 않는다. 공격자 의도와 다르게 잘못 제작 된 것으로 보인다. 모든 파일 경로가 동일하게 설정되어 있다고 가정할 경우, “default_an.ps1” 파일이 스케줄러에 의해 실행되면 정상적인 AnyDesk 실행 파일인 “default_an.exe”를 실행시키며, 이때 AnyDesk의 트레이 아이콘과 창을 숨김 처리하여 사용자가 인지하지 못하도록 했다.
AnyDesk는 기본적으로 실행 시 “%APPDATA%\Anydesk” 폴더에 “service.conf”, “system.conf” 등의 설정 파일을 생성하는데, 공격자는 이 설정 파일들을 자신이 설정한 파일로 바꿔치기하여 사용자 시스템에 접근하려는 의도를 가진 것으로 보인다.

[그림 4] Anydesk 설정 파일들
AnyDesk가 정상적으로 실행되더라도, PowerShell 스크립트에 의해 트레이 아이콘과 창이 숨김 처리되기 때문에 사용자는 프로세스 목록을 직접 확인하지 않는 이상 원격 제어가 이루어지고 있는 사실을 인지하기 어렵다. 아래 [그림 5]에서 왼쪽 이미지는 트레이 아이콘이 표시된 상태이며, 오른쪽 이미지는 트레이 아이콘뿐만 아니라 연결 시 표시되는 창과 AnyDesk 메인 화면도 나타나지 않는 모습을 보여준다.
※아래 사진은 설정 파일에서 연결 ID는 “1 699 290 623”으로 설정되어 있지만, 비밀번호는 알 수 없기 때문에 임의로 비밀번호를 변경하여 연결한 사진이다.

[그림 5] (좌) 일반적인 AnyDesk 연결화면 (우) 숨김처리된 AnyDesk 연결 화면
Kimsuky 그룹은 과거부터 타인을 사칭해 특정인을 대상으로 한 APT 공격을 지속적으로 수행해 왔다. 최근에는 정상 소프트웨어를 공격에 악용하거나, Google 및 Dropbox 등 공유 드라이브를 C2(Command and Control) 저장소로 활용하는 사례가 점차 증가하고 있다. 본 사례와 같이 이러한 APT 공격은 주로 대상자의 업무나 관심사와 관련된 내용으로 위장되어 있어, 사용자가 악성코드에 감염될 위험이 크다. 따라서 출처가 불분명한 파일은 실행을 자제하고, 파일의 확장자를 반드시 확인하는 등 각별한 주의가 필요하다.