GandCrab은 2018년 4.0월 마지막 주부터 활동해 왔습니다. 이 기간 동안 GandCrab은 자신의 실수에서 끊임없이 학습했고, GandCrab의 민첩한 개발 방식은 많은 보안 연구원들의 관심을 끌었습니다. 첫 번째 침해 이후 서버를 Namecoin 기반 최상위 도메인(.BIT TLD) 서버로 이전한 후, 암호화 및 통신 프로세스 시퀀스의 어리석은 실수에서 교훈을 얻으며 계속해서 발전해 왔습니다. 최근 관찰된 바와 같이, 버전 5.0 이후 최신 버전인 XNUMX 역시 수많은 기기를 감염시켰고 지금까지 여러 변종이 발견되었습니다.
5.0.9 버전은 2018년 5.0월 첫째 주에 처음 보고되었으며, 다른 GandCrab XNUMX 버전과 유사한 동작을 보였습니다. 하지만 새해가 시작되기 전에 GandCrab이 기억에서 사라지는 것을 막기 위해 이 버전은 "곧 돌아올 거예요! ;)"라는 메시지 상자를 표시합니다. 여러 가지 요인을 고려할 때, 작성자가 러시아인이고 영어가 모국어가 아닌 사용자이기 때문에 이러한 문장 구조가 잘못되었다고 볼 수 있습니다. 따라서 "곧 돌아올 거예요! ;)"라는 메시지가 정확한 메시지라고 예측할 수 있습니다.

그림 1. 메시지 상자
감염 벡터
GandCrab은 악성 첨부 파일이 포함된 악성 메일 캠페인이나 심지어 성범죄 캠페인을 통해 확산됩니다. DOC 파일이 진짜처럼 보이는 파일 이름으로 첨부된 메일에 첨부되어 있으며, 사용자는 매크로를 활성화하거나 다운로드 플러그인을 업데이트해야 합니다. 이러한 동작으로 인해 GandCrab이 감염됩니다.
처음에는 사용자 이름, 컴퓨터 이름, 작업 그룹, IP 주소 등 사용자와 관련된 모든 데이터를 수집합니다. 이 정보는 암호화된 형태로 'PCData'로 저장되며, 이후 기기를 식별하는 데 사용됩니다.
주요 실행 부분으로 넘어가기 전에 실행 중인 모든 프로세스에 대해 인기 있는 바이러스 백신 서비스를 확인합니다.

그림 2. AV 프로세스 목록
해당 기기에 있는 드라이브를 파악하기 위해 모든 알파벳과 드라이브의 문자를 비교하여 드라이브 번호를 확인합니다. PCData에서 기기와 관련된 모든 필수 정보를 수집한 후, IV 문자열 'jopochlen'을 사용하여 RC4 알고리즘으로 암호화합니다. 또한, 이 데이터는 다시 base64 형식으로 변환되어 PCData 섹션에 랜섬노트로 첨부됩니다.
확장을 위해 GandCrab은 이전 두 변종의 고정 길이 난수 문자열을 따랐습니다. 이 형식은 최대 13자 난수 길이 문자열을 사용하는 이 버전에서도 그대로 유지됩니다.
키 암호화
메인 페이로드에는 salsa20 알고리즘을 사용하여 암호화된 RSA 공개 키가 포함되어 있으며, 이 암호화된 키는 바이트 키 5와 다시 XOR 연산을 거칩니다. 이 키를 복호화한 후 CryptExportKey 함수를 사용하여 내보냅니다. Salsa20 알고리즘은 원래 Daniel Bernstein(트위터 아이디: @hashbreaker)이 개발했습니다. 이 샘플에서는 salsa20의 사용자 지정 버전이 사용됩니다. 파일에서 '@hashbreaker Daniel J. Bernstein, 살사 춤 추자 <3'라는 간단한 코멘트를 볼 수 있습니다.
![]()
그림 3. 살사 식별자.
두 개의 레지스트리 키가 생성됩니다.
소프트웨어/키__데이터/데이터 (이전 버전에서는 소프트웨어/키__데이터/데이터) 소프트웨어/ext_data/데이터
암호화된 파일에 추가되는 무작위로 생성된 확장자는 레지스트리 키의 'ext' 값에 저장됩니다.
소프트웨어/ext_data/데이터
Microsoft Enhanced Cryptographic Provider CryptoAPI CryptGenKey를 사용하여 새로운 RSA-2048 키 쌍이 생성됩니다.

그림 4. CryptGenKey RSA-2048
이 키 쌍의 RSA 개인 키는 SALSA20 알고리즘으로 암호화됩니다. 이 공개 키와 암호화된 개인 키 쌍은 '소프트웨어/키__데이터/데이터' 공개 및 비공개 값을 가진 레지스트리입니다. 여기에 사용된 Salsa20 키는 파일 자체에서 복원된 RSA 공개 키로 다시 암호화됩니다.
암호화된 랜섬웨어는 페이로드의 .data 섹션에 저장됩니다. 이 랜섬웨어는 바이트를 0x10과 XOR 연산하여 복호화됩니다. 이 랜섬웨어는 'extension_name-DECRYPT.txt'라는 파일명으로 저장됩니다.
파일 암호화
파일 암호화를 시작하기 전에 문서, 엑셀 시트, 데이터베이스 등의 파일을 사용하는 몇 가지 중요한 프로세스를 종료합니다. 이는 사용 중인 파일 중 암호화되지 않은 파일이 없는지 확인하기 위한 것입니다.

그림 6. 종료할 프로세스 목록
또한, 암호화될 모든 확장자 목록이 파일에 포함되어 있습니다. GandCrab은 암호화 과정에서 Program Files, Windows, TOR(맬웨어 작성자에게 연락하기 위해 필요) 등 몇몇 중요 디렉터리를 제외합니다. boot.in, ntuser.dat와 같은 일부 파일도 암호화 대상에서 제외됩니다.

그림 7. 암호화 파일 구조
암호화하는 동안 전체 파일은 Salsa20으로 암호화됩니다. Salsa20 키는 CryptGenRandom으로 생성되며 각 파일마다 다릅니다. 암호화에 사용되는 Salsa20 키는 로컬에서 생성된 RSA 공개 키로 다시 암호화됩니다.
모든 파일이 암호화된 후, 100개가 넘는 도메인에 연결을 시도합니다. 호스트 이름을 보면 이 도메인들이 진짜 웹사이트이며 어떤 식으로든 침해된 것이 분명합니다. 침해된 URL을 생성하기 위해 목록에서 도메인 이름을 검색한 후, 미리 정의된 7개의 문자열 중 하나를 추가합니다. 여기에 다시 미리 정의된 8개의 문자열(images, image, pictures, graphic, assets, pics, imgs, tmp) 중 선택한 두 번째 문자열을 추가합니다. 마지막으로, 이 문자열은 무작위로 생성된 이미지 이름과 4개의 확장자(jpg, gif, png, bmp) 중 선택한 확장자 하나를 연결합니다.
예 : https://[Genuine 도메인 이름]/content/graphic/dekakadake.jpg

그림 8. URL 형성
전체 URL을 검색한 후 PCData에 저장된 암호화된 사용자 정보를 호스트로 전송합니다.

그림 9. HttpSendRequest
몸값
GandCrab v5.0.9에 대한 랜섬웨어 메시지는 다음과 같습니다.

맺음말
GandCrab은 처음부터 모듈식 접근 방식을 보여주었고 시간이 지남에 따라 발전해 왔습니다.
몇 가지 주요 기능은 다음과 같습니다.
- 인기 AV 서비스 실행 확인
- 모든 파일을 암호화하는 애플리케이션 종료
- 더 나은 성능을 위해 살사를 사용하면서도 RSA 2048을 계속 사용합니다.
- 통신을 위해 손상된 사이트 사용
시작 부분에 표시되는 메시지 상자는 새로운 변종의 다음 대규모 배포를 나타냅니다. 따라서 이에 맞서기 위해 우리는 항상 경계해야 합니다.
IOC
44C289E415E4C12B883003082194D76C
주제 전문가:
자예쉬 B. 쿨카르니 | 퀵힐 보안 랩스




