상세 컨텐츠

본문 제목

Wannacry Ransomware 분석 및 Malware 방법론

악성코드 Malware/랜섬웨어

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

본문

728x90

주의사항: Malware 혹은 악성코드를 분석할 때 원래 쓰는 운영체제를 절대 쓰지 마세요. 항상 악성코드를 위한 랩 환경을 쓰세요!! Vmware, Vbox 등!

안녕하세요~ 오늘 블로그는 제가 malware를 분석할 때 저의 방법론에 대해 알려 드리면서 Wannacryt이라는 Ransomware 예시로 실습하겠습니다.

1) 랩 환경

왼쪽 사진: Remnux이라는 VM을 사용합니다. Remnux는 특별히 Reverse-Engineering 하고 Malware 분석을 위한 VM입니다. 여기서는 inetsim이라는 tool을 쓰며 http, smb 같은 네트워크 서비스들을 모방하는 역할을 해줍니다.

오른쪽 사진: flareVM이라는 VM을 사용합니다. flareVM는 악성코드 분석의 Kali Linux이라고 할 수 있다고 생각합니다. Malware를 분석할 때 필요한 모든 Software가 다 있습니다. Ida (공짜 버전), Binary Ninja, PeStudio, PeBear, ProcessHacker, Ghdira 등... 없는 것이 거의 없습니다.

그럼 분석을 시작합시다!!

2) IOC (Indicators of Compromise) 분석

a) Debugger나 Disassembler 쓰기 전에 항상 PeStudio를 먼저 돌립니다.

Malware를 실행시키지 않아도 꽤 많은 정보를 얻을 수 있죠? 가장 먼저 나오는 정보는 md5,sha1, sha256 hash이고, 이 hash를 가지고 한번 VirusTotal에 들어갑시다.

Wannacry가 66개의 AntiVirus Software 중에 62개에게 걸렸네요. 보니까 Trojan, Ransomware Malware 인가 보네요!

다시 PeStudio로 돌아갑시다

Malware에 나오는 strings를 보여 주는 것입니다. 대부분 string들은 쓸데없는 암호화된 string이지만 Wannacry가 쓰는 WinAPI도 나오네요! 딱 보면 Internet에 대한 WinAPI가 있네요! Wannacry도 자기 C2 서버에 연락할까? 이따가 더 자세하게 알아봅시다. 위에 IsDebuggerPresent도 있네요. IsDebuggerPresent가 존재할 때는 연구자들이 Wannacry를 Debugger로 분석할 때 Wannacry가 실행되지 않고 바로 꺼집니다.

b) Wireshark 및 TCP View

Malware를 실행시킬 때가 됐습니다!

실행시키고 나서 Wireshark를 보면 HTTP 연결이 있네요! 근데 이상한 것은.... wannacry가 실행되지 않네요? 아무리 Run as Administrator를 눌러도 변함이 없네요... 무슨 일일까요? 일단 TCP View를 봅시다.

HTTP 말고도 smb 연결도 있나 보네요. 보시다시피 Wannacry는 Port 445를 쓰고 그 이유는 Eternalblue라는 취약점 때문입니다.

Eternalblue는 미국 국정원 (NSA) 개발한 exploit인데 Windows에게 취약점이 있다는 것을 알려 주지 않고 결국에는 나쁜 해커들로 의해 악용됐습니다. 아무튼 이 블로그는 정치 말고 해킹에 대한 블로그라서 이 무주의를 넘어갑시다.

c) Process Manager

실행되는 순간부터 Malware가 무엇을 하는지 Process Manager가 다 알려줍니다. 파일 만들기, Registry 접근 등. 한번 봅시다!

가장 먼저 눈에 띄는 것은 이 CreateFile입니다. Wannacry는 tasksche.exe이라는 파일을 만듭니다. 혹시 모르니까 tasksche.exe도 한 번 더 자세하기 보겠습니다.

tasksche.exe도 하는 것이 많네요. Registry도 접근하고 이상한 이름을 갖고 있는 파일도 만드네요. 그 파일은 뭐 하냐면

서비스를 만드네요!! 이게 바로 Wannacry의 Persistence입니다. 간단하게 설명해 드리자면 컴퓨터를 껐다 켜도 Windows가 booting 할 때 악성코드가 실행된 다는 것입니다.

d) IDA, Cutter 등 사용

가장 중요한 IOC들을 발견했으니 잠깐 IDA나 Cutter 같은 Disassembler를 봅시다. 아까 Malware 실행되자 않았다는 이유도 여기서 나올 겁니다.

아하! 바로 첫 번째로 위 function이 나오는데 이상한 웹주소가 나오네요? 이 웹주소가 바로 wannacry의 "killswitch"입니다. 무슨 말이냐면 wannacry가 이 웹주소를 접근할 수 있다면 wannacry 실행되지 않는다는 것입니다.

당연히 ida로 남은 코드 (예를 들어 아까 본 Persistence)를 분석할 수 있지만 오늘 블로그는 간단하게 Malware IOC를 찾는 방법에 대해 설명하려고 했습니다.

관련글 더보기