리버스 엔지니어링/난독화 스크립트 분석

x64dbg를 활용한 doc 난독화 스크립트 분석

뿔맨 2018. 7. 15. 09:23
반응형


본 작성자는 초급 분석가이며, 피드백 환영합니다.


이번 작성할 글은 x64dbg를 사용해서 doc 매크로 분석하는 글 입니다.


목차

- 개요

- 분석

- 마치며


개요

올해 doc 매크로 악성코드가 많이 유포 되었다.

ms office 기능 중 매크로라는 기능이 있는데, 이 것을 활용한 악성코드 이다.

일반 사용자가 " 콘텐츠 사용 " 이라는 버튼을 클릭하게 되면 악성코드가 실행이 된다.


분석

파일을 열어보면 아래와 같이 상단에 보안 경고가 출력되어 있다.

"콘텐츠 사용"을 클릭하게 되면 악성코드가 실행이 된다. 그리고 매크로를 볼려면 "콘텐츠 사용"을 누를 수 밖에 없다.


아래는 난독화된 매크로이다.

보시다시피 엄청 복잡하게 되어있다. 우리가 분석할 것은 매크로가 실행이 되면서 생성되는 난독화 스크립트이다.


아래는 악성코드 실행순서 이다.

위 그림 중 흰색 아이콘은 현재 프로세스 종료가 되었음을 뜻한다.

WINWORD.EXE -> PowerShell -> 613.exe -> 613.exe -> perfhotspot.exe -> perfhotspot.exe 순이다.

본문에서는 난독화된 스크립트를 분석할 것이며, 생성된 바이너리 분석은 제외한다.


아래는 난독화된 매크로가 실행되면서 생성된 스크립트 이다.


아래는 난독화 해제한 스크립트 이다.

설명을 덧붙여보면 5개의 url을 순차적으로 접속하며, 중간에 접속이 되면 파일을 다운받으며 스크립트는 종료된다.

다시 말해 첫 번째 url이 접근이 가능하면 밑에 2,3번 째 url은 접속을 안하고 종료된다.


아래는 WireShark 패킷을 통해 다운받은 바이너리를 확인한 결과이다.

위 그림을 보면 /4A3bU8Pb/ 파일을 다운받는다. HTTP object를 보면 총 5개 url 중 4개의 url 밖에 존재하지 않는다.


이제 x64dbg로 난독화된 스크립트를 풀어보자.

PowerShell 로 난독화된 스크립트를 실행하므로 PowerShell 을 x64dbg로 불러오자.

F9를 눌러주면 PowerShell 이 출력이되며 입력받을 때 까지 x64dbg가 Running 상태가 된다.


그러면 아래와 같이 난독화된 스크립트를 붙여넣어 준다.

모자이크 처리한 이유는 해당 url에서 아직까지 악성코드를 유포하기 때문이다.

이번에는 추가적으로 DLL을 로드한 것은 없다. CPU 탭에서 Ctrl + G 를 눌러 아래 함수들에 BreakPoint 설정을 해준다.


Send - 연결된 네트워크 조회

CreateFileW - 생성된 파일 확인

WriteFile - 생성된 파일에 작성되는 buffer 확인

CreateProcessW - 생성되는 프로세스 확인


아래는 send 함수에 BreakPoint 설정한 결과 값이다.

마지막으로 4A3bU8Pb 에서 파일을 생성하며 WriteFile 에 BreakPoint 가 실행되면서 특정 데이터 값을 작성하는 것을 볼 수 있다.


613.exe 파일을 생성하며 WriteFile 함수를 사용하여 특정 데이터 값을 작성한다.

WriteFile을 5번 정도 실행하면서 데이터를 작성한다.


마지막으로 CreateProcess 함수를 사용하며 프로세스를 생성하면서 종료된다.


마치며

x64dbg로 스크립트를 분석하면서 DLL 공부와 함수 공부들을 많이하게 됩니다.

자주 사용하던 함수들이 어느 DLL에 있는지 알게되며, 레지스터들의 사용용도를 알게됩니다.

예를들어 WriteFile을 사용하게 되면 RDX는 (x64dbg 기준) buffer, RSI는 buffer 길이 등 ..

많은 공부가 되는거 같습니다.

아직  초급 분석가입니다. 많은 피드백을 받고있습니다.


반응형