Malware

cb-bitcoinstealer.exe (비트코인 주소를 바꾸는 악성코드)

wsoh9812 2020. 8. 23. 12:16

 

해당 악성코드는 C#으로 컴파일 되어있어서

'dotPeek'이라는 c#디컴파일러로 디컴파일 을 진행하여 정적분석을 진행하였습니다.

 

특정 폴더에 있는 파일을 레지스트리에 등록하여 자동실행

 

해당 파일을 레지스트리에 올리는 것을 정적분석을 통해 확인

 

grpconv32.exe 와 rekevwiz64.exe를 특정 경로에 복사

 

생성된 2개의 파일이 서로 같은 것을 확인

결론은

cb-bitcoinstealer.exe는 자기 자신을 

다음과 같은 경로에 복사를 하는 것을 확인 할 수있고,

이후 rekeywiz64.exe를 자식프로세스로 생성합니다.

 

 

rekeywiz64.exe가 실행되면

객체 생성

[중요]

FormBackground 객체를 생성합니다.

악성코드의 주요행위는 FormBackground에 있습니다.

 

이제부터 FormBackground를 분석해 보겠습니다.

 

 

AddClipboardFormatListener API를 통해 클리보드 모니터링

 

이제부터 클립보드의 대한 통제권은 해당 악성코드가 가지게 됩니다.

[핵심] WndProc가 클립보드의 메세지를 받게 됩니다.

[ 코드 분석1 ]

'm.Msg != 797' --> 797은 클립보드가 변환되면 같는 message입니다.

즉 , 클리보드가 비어있거나, 변환된게 없으면 그냥 return해 버립니다.

 

 

[ 코드 분석2 ]

WndProc코드 중 일부
ProbablyBtcAddress 메소드

'기존 클립보드와 새로 들어온 클립보드가 같다' or '특정 정규식 이랑 같다'

위와 같은 결과가 나오면 return 해버리고 끝냅니다.

 

[ 코드 분석3 ]

클립보드의 문자를 가지고 SetMostSimilarBtcAddress 메소드로 진입

 

 

[중요] 클립보드text를 바꿔치기 하는 코드

클리보드Text를 특정 비트코인주소로 바꿔치기하는 부분

 

핵심 함수인 SetMostSimilarBtcAddress 함수를 분석해보겠습니다.

 

[ 코드 분석4 ]

리소스에서 문자열을 가지고 온다.

[중요] 해당 문자열은 아래의 사진이다. ( 해커의 비트코인 주소 )

 

original 주소와 가장 비슷한 비트코인 주소를 바꿔치기한다.

 

끝~