워너크라이 분석
단순한구조로 되어있습니다. 004078E9 함수에서 워너크라이의 모든 동작들이 실행되고, 004078F2에서 끝이 납니다. 004078E9 함수 내부를 살펴보겠습니다.
004020BB
현재 침투한 파일의 현재 실행 경로를 반환합니다.
그리고 현재 프로세스의 디렉토리를 변경합니다.
004020C3
Software/WanaCrypt0r (아마 HKLM에) 경로에 레지스트리 키를 새로 생성하고 설정 하는 것을 확인했습니다. 따라서 해당경로에 VSE,ENS 액세스 보호 규칙을 사용하면, WNCRYT, .WNCRY 및 / 또는 .WCRY 확장자를 포함하는 암호화 루틴을 방지할 수 있습니다.( McAfree 참고)
004020D0
지정한 디렉토리 내부에 (본 환경에선 바탕화면의 악성코드 폴더) 기본적인 동작에 필요한 파일들을 설치합니다. 아직 @WananaCry@파일은 생성되지 않습니다. 최종 감염되면 모든 폴더에 악성 파일들이 생성되는데 현 단계에서는 워너크라이가 존재하는 폴더에만 설치합니다.
00401E82함수 내부확인 모습입니다. memcpy, strcpy함수와 파일 생성/작성 을 실행하고 있습니다.
0040205
비트코인 주소가 있는 부분입니다. 00401EC5함수는 C.wnry파일을 읽습니다. C.wnry파일은 위에서 생성하는 파일들중 가장 먼저 생성된 파일인데, 문자열을 살펴보니 비트코인 결제를 위한 딥웹인 토르, onion 연결관련 파일로 추정됩니다.
004020E1
새로운 프로세스를 생성합니다. 커맨드 라인이 attrib +h 인데 attrib의 파일특성 설정 기능중 숨김 설정인 +h로 판단됩니다. 워너크라이를 실행 시키면, 악성파일이 최초 침투한 디렉토리는 숨김으로 설정이 바뀌는데, 그러한 행동을 하기위한 프로세스로 추정됩니다.
004020ED
마찬가지로 새로운 프로세스를 생성하고. Icacls * /grant Everyone:F /T /C /Q 커맨드를 실행합니다.
액세스 권한을 얻기 위한 커맨드입니다. Full access 하면서, T: 현 디렉토리+하위 디렉토리 모두 조작하고, C: 오류 또한 무시합니다. 그리고 Q: 성공 메시지는 출력하지않습니다.
004020F5
Iertuil.dll 관련 모듈을 사용하는 것으로 추정됩니다. 다른 멀웨어들의 사례로 봤을 때 iertutil.dll 인 것 처럼 위장하기 위한 행동으로 판단됩니다.
함수 내부로 더 진입하다 보면 CryptoAPI들이 보입니다. CSP호출하고 BLOB암호화를 전송하는데 어차피 암호화 되어있을 부분이라 자세히 확인하지는 않았습니다. CryptDestroyKey 함수전에 CryptExportKey 함수를 이용해서 패치하면 CSP내부 키값 을 알아낼 수 있을거 같습니다.
주석
전체적으로 정리하면 이런 형태로 진행됩니다. 마지막에 “TaskStart” 문자열을 비교하여 진행되고, 콜백하면서 감염이 됩니다.