악성코드 분석/리버스 엔지니어링

실전 악성코드와 멀웨어 분석 실습 - 11-01

IT공부 2020. 2. 19. 20:58
반응형

실습 환경 

운영체제 : Windows XP 

가상화 : Vmware Workstation 12 

도구  : PEView , ProcMon , IDA Pro , Strings 

 

                                                                                      

 

 

먼저 기초 정적 분석으로 PEView 도구를 사용하여 GINADLL과 

SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 문자를 찾을 수 있었습니다.

그림 1-1
그림 1-2

그러하여 GINA 가로채기 악성코드라 짐작할 수 있었습니다.

 

그림 2-1
그림 2-1

그림 2-1 과 2-2를 보고 임포트 함수에는 Register를 변경하는 임포트 함수와 악성코드를 실행시킨 후에 ProcMon으로 본 결과 GinaDLL에 msgina32.dll 경로를 삽입하는 것을 볼 수 있습니다. 

 

그림 3-1

IDA pro를 사용하여 Lab11-01 파일을 확인하면 서브루틴이 0x401000과 0x401080 이 존재하는데 0x401000은 레지스트리 값 설정하는 함수인 것을 알았지만 0x401080 서브루틴은 정확히 어떤 행위를 하는지 알지 못하였습니다. 

 

 

msgina32.dll 분석

그림 4-1

msgina32.dll 을 Strings로 결과를 본 결과 그림 4-1 그림과 같은 결과 나왔습니다. 

레지스트리 winlogon에 경로와  로그 메시지로 보이는 문자를 담고 있는데 이 악성코드가 GINA를 가로채는 악성코드라면 사용자 계정을 로깅하는 데 사용할 수 있습니다. 

그리고 Wlx라는 접두사로 시작하는 많은 함수를 볼 수 있는데, 이 함수들은 GINA를 가로채기 위해서 필수적인 함수들을 이 DLL이 가지고 있다는 것으로 알 수 있다. 

 

 

그림 4-2

다른 함수들은 정확히 판단 하지 못하였지만 LoadLibrary 호출을 통해 윈도 시스템 라이브러리 내의 msgina.dll를 가져온다는 것을 알 수 있었다. 

(참고 : msgina.dll는 GINA를 구현한 윈도 DLL인 반면 msgina32.dll는 악성코드 제작자가 GINA를 가로채는 DLL입니다.)

 

 

정리 : LAb11-01.exe 파일은 GINA를 가로채는 설치 코드이고, 이 악성코드는 시스템에 DLL을 드롭해서 시스템 재부팅 후 사용자 계정을 탈취하는 악성코드임을 알 수 있습니다. 그리고 msutil32.sys.로 계정을 로깅합니다.