study/악성코드 분석

WannaCrypto t.wnry 복호화

lucykorea414 2024. 3. 26. 17:49
728x90

저번에 b.exe로 저장한 taskche.exe를 IDA로 다시 열어보자

 

이 실행파일 내에서 t.wnry를 사용하는 부분을 찾아야 하기 때문에 strings 에 들어가서 찾아준다!

 

그러면 요기에 이렇게 보인다.

더블클릭해서 들어가서 ctrl+x 누르면 XREF 따라갈 수 있음!! (또는 그냥 XREF 부분 더블 클릭)

 

 

그러면 이쪽으로 온다 (Win Main 함수임)

 

 

여기에서 자세히 보면

 

이렇게 밑에서 함수를 호출하는 것을 볼 수 있다!!

 

이 함수를 들어가서 더 자세하게 분석을 해보면,

 

함수 호출 전 오프셋으로 지정한 파일명(t.wnry)의 파일을 열고 사이즈 얻고 등등 작업을 해주고

 

파일 시그니처가 WANACRY! 가 맞는지 확인 하는 부분이 있다.

 

이 부분은 전 게시글에서도 파일 분석하면서 적어놨지만 t.wnry의 파일 시그니처는 특이하게 WANACRY로 되어있는것을 확인했다.

이전 글: 2024.03.25 - [study/보안] - WannaCrypto 리소스 파일 내용 분석

 

WannaCrypto 리소스 파일 내용 분석

2024.03.23 - [study/보안] - WannaCrypto 리소스 파일 추출 WannaCrypto 리소스 파일 추출 워너크립토 랜섬웨어를 실행하게 되면 킬스위치, 네트워크 전파, 파일 드로핑 되는 것 까지 나와있음 그 다음에는

lucykorea414.tistory.com

 

그리고 밑으로 쭉 이 부분들은 복호화(압축을 푸는) 과정이다!

 

그리고 복호화(압축 풀기)가 끝나면 아래와 같이 TaskStart 라는 function에서 이제 실행을 하는 것이다!

 

 

 

IDA 말고 올리디버거에서 보도록 하자.

 

 

두번째 bp를 걸어놓은 부분을 보면 TaskStart를 실질적으로 실행하는 CALL EAX 라는 코드가 보인다!

 

그래서 실행을 해보면

 

압축을 정상적으로 출게 되면 10005AE0 로 점프를 하게 된다!

 

사실 이 부분을 찾으려고 메모리에서 보게 된다면

 

이렇게 아무것도 없는 것을 볼 수 있다.

사실 할당된 공간이 아닌데 t.wnry를 가지고 와서 이 메모리에 압축을 해제 하고 나서 실행을 하는 구간이다.

 

일단 엔터를 눌러서 들어가보면

 

이렇게 뜨는데 밑으로 쭉 내려가다 보면

 

GetModuleFileName와 SetCurrentDirectory 해서 파일 이름과 현재 디렉토리 얻게 되고,

 

 

리소스와 pky, eky (공개키, 개인키)가 나오는것을 볼 수 있고

 

 

파일을 삭제하는 부분도 있는것을 볼 수 있다!

 

이 부분을 자세하게 분석하기 위해서 덤프를 뜨자.

메모리 부분에서 10000000번 주소에서 덤프를 뜨자.

 

덤프를 누르게 되면 MZ 헤더가 나온다.

 

이 덤프를 한것을 파일로 저장해주자

 

파일로 저장을 해주고 IDA 로 다시 열어준다!

이때, PE 파일로 열게 되면 에러가 나기 때문에 그냥 바이너리 파일로 열어준다.

32비트 모드로 열어준다.

 

엔트리 포인트는 아까 call eax에서 확인했던 10005AE0이므로 이 주소로 들어가준다.

 

처음에는 이렇게 분석이 안된 채로 뜨게 되는데, 여기서 C 버튼을 누르게 되면 아래와 같이 분석이 된다. (어셈블리로 변환)

 

 

728x90