상세 컨텐츠

본문 제목

WhisperGate 악성코드 분석. 러시아와 우크라아이나 갈등

악성코드 Malware/Wiper

by 0xmh 2022. 5. 19. 19:25

본문

728x90

 

얼마 전에 사이버 전쟁에 대한 블로그를 썼는데 거기서 WhisperGate라는 새로운 악성 프로그램을 언급했습니다.

오늘은 그 프로그램을 리버싱을 하면서 분석할 것입니다.

Whispergate는 4개의 stage가 있는데 각 stage마다 MalwareBaazar에서 다운로드를 하실 수 있습니다.

Stage 1

리버싱을 하기 전에 파일을 pestudio로 열어보면 프로그램이 실행되면 hard drive가 corrupt 된다는 것을 알 수 있습니다. 이 프로그램은 Master Boot Record (MBR)를 덮어쓰고 컴퓨터를 껐다 켜보면 위 사진의 텍스트가 나옵니다. 10.000$짜리 비트코인 공격자들에게 보내주면 그들이 풀어주겠다고 하지만 이 악성 프로그램은 ransomeware인 척하는 겁니다. 개발자들은 ransom를 받는 데에 전혀 관심이 없고 이 악성파일의 목적은 피해자의 컴퓨터에 있는 모든 파일들을 corrupt 하는 것입니다. 즉, 피해자는 자기 컴퓨터를 더 이상 못 쓰게 되는 것이죠.

Stage 2

다음 stage도 stage1처럼 하는 것이 많이 없습니다. C# application이므로 dnspy으로 열어보면 다음 stage를 받을 수 있습니다. 신기한 것은 다음 stage는 discord에서 hosting 중이라는 것입니다

Stage 3

Stage 3도 C# 앱이기 때문에 계속 dnspy로 분석해 보았습니다.

그러나 열자마자 "stage3부터 좀 어렵겠네"라는 생각이 들었습니다. function들을 보니 obfuscation이 있습니다

삽질을 많이 하다가 개발자들은 "Eazfuscator.NET"라는 것을 쓰는 것을 깨달았습니다. 하지만 그것도 큰 도움이 안 되어서 그냥 breakpoint를 박아서 dynamic analysis를 시작했습니다. Invoke에 breakpoint를 박고 실행시키면 이 stage는 무엇을 하는지를 알 수 있습니다

malware가 가장 먼저 하는 것은 Admin 권한으로 실행되고 있는지입니다. 따라서 dnspy 다시 admin 권한으로 열어 계속 분석했습니다

그 후에 C:\Users\User Name\AppData\Local\Temp라는 폴더에 vbs 파일이 하나 dump 되며 powershell로 실행될 것입니다. 아울러 신기한 것은 MpPreference -ExclusionPath를 사용하는데 WindowsDefender는 이제 이 path를 확인하지 않겠다는 것입니다.

그 후에 파일이 하나 더 dump 되는데 이름은 AdvancedRun.Exe입니다. AdvancedRun.exe 악성 푸르고 램은 아니 자만 advancedrun으로 어떤 프로그램을 다른 설정으로 실행시킬 수 있습니다.

여기서는 아래의 output를 읽어보면 악성코드는 WindowsDefender를 끄겠다는 것을 알 수 있습니다.

파일이 하나 더 dump 됐습니다. 처음에는 이 파일을 보고 stage4인 줄 알았는데 아니더라고요. 분석을 더 하다 보니 PE injection용으로 쓰이는 것은 알게 되었습니다.

개발자들은 Injection을 위한 API call들을 base64로 encoding 했습니다. 나열하겠습니다

UmVzdW1lVGhyZWFk --> ResumeThread Injection U2V0@VGhyZ@WFkQ29udGV4dA== --> SetThreadContext R2@V0VGhyZWFkQ@29udGV4dA== --> GetThreadContext VmlydHVh@bEFsbG9@jRXg= --> VirtualAllocEx V3JpdGVQcm9j@ZXNzT@WVtb3J5 --> WriteProcessMemory WndVbm1h@cFZpZXd@PZlNlY3Rpb24= --> ZwUnmapViewOfSection Q3JlY@XRlU@HJvY2Vzc0E= --> CreateProcessA Q2xv@c2VI@YW5kbGU= --> CloseHandle Um@VhZFByb2N@lc3NNZW1vcnk= --> ReadProcessMemory

그 이후에 드디어 stage4 발견했습니다. 저장하고 ida/ghidra로 열어보면...

사실은 아주 복잡하고 세련된 malware가 아니라는 것을 알게 되었습니다. 아래 사진은 이 malware가 어떤 파일을 공격하는지 알 수 있습니다. 다 캡처하지 못하여 unit42가 분석한 이미지를 하나 빌리겠습니다 (https://unit42.paloaltonetworks.com/ukraine-cyber-conflict-cve-2021-32648-whispergate/)

이 function는 정확히 무엇을 하는지 아직 100% 확실하지는 않지만 제 생각에는 파일들의 내용은 '\xcc' 바이트로 덮어쓰는 것 같습니다.

분석은 여기까지입니다! 저는 아직 완전 초보자라서 다른 나라를 공격하기 위해 만들어진 악성코드를 과연 분석할 수 있을지 걱정되었는데 솔직히 말하자면 WhisperGate는 그렇게 어려운 malware가 아닌 것 같습니다. 초보자도 충분히 할만한 것이라고 생각합니다! 하지만 저는 아직 실력이 그렇게 좋은 편이 아니라서 빠진 부분이 있을 수도 있으나 이 malware의 가장 중요한 기능들을 요약했던 같습니다.

읽어주셔서 감사합니다!

관련글 더보기