Lab11-03.exe와 Lab11-03.dll에서 발견되는 악성코드를 분석하자. 분석하는 동안 2개의 파일이 동일한 디렉터리에 있어야 함을 명심하자.
1. 기본 정적 분석을 통해 발견할 수 있는 재미있는 분석 단서는 무엇인가?
Lab11-03.exe는 cisvc.exe(Content Index service)라는 문자열을 포함하고 있는 것으로 보아, 서비스 관련된 작업을 하는 것으로 추측할 수 있다.
Lab11-03.dll은 GetForegroundWindow와 GetAsynKeyState 함수를 Import하고 있는 것으로 보아, 폴링 키로거로 의심해볼 수 있다.
키로깅에서 GetAsynKeyState 함수는 키가 눌렸는지 여부를 인식한 후 가장 최근의 GetAsynKeyState 호출 이후 해당 키가 눌렸는지 인식한다. GetForegroundWindow는 어떤 애플리케이션이 키보드 앤트리를 위해 사용되는지를 키로거에게 알려주기 위해 현재 사용중인 윈도우를 파악하는데 사용된다.
또한, 위와 같은 의심스러운 문자열을 포함하고 있어 눈여겨 볼 필요가 있다.
특히 zzz69806582는 Lab11-03.dll의 export 함수이다.
2. 이 악성코드를 실행하면 어떤 일이 일어나는가?
Lab11-03.exe를 SysAnalyzer를 통해 동적 분석한 결과이다.
Lab11-03.dll 파일이 inet_epar32.dll라는 이름으로 복사가 되었고, cisvc.exe 파일도 생성된 것을 확인하였다.
또한 cmd를 실행시켜 /c net start cisvc 명령을 실행시켜 cisvc 명령을 실행시킨다.
3. Lab11-03.exe은 Lab11-03.dll을 어떻게 영구적으로 설치하는가?
Lab11-03.dll을 inet_epar32.dll이라는 이름으로 시스템 디렉토리에 복사해주고 있고, cisvc.exe 문자열과 시스템 경로 문자열을 합쳐준 다음, 서브루틴 401070으로 넘겨주고 있다.
서브루틴 401070의 일부를 디컴파일러로 확인한 결과이다.
위에서 넘겨받은 cisvc.exe를 생성해서 메모리에 매핑해주고 있다. 매핑 시작 주소를 lpBaseAddress라는 변수에 담아주고 있다.
UnmapViewOfFile을 해주기 전에 이루어지는 lpBaseAddress를 상대로 하는 연산을 디스어셈블 코드로 자세히 살펴보자.
edi에 lpBaseAddress를 담아주고 있고, add명령을 통해 대상 오프셋을 조절해준다.
mov 명령을 통해 ecx에 4E*4(DWORD)=312만큼 공간을 확보한다.
그리고 esi에 오프셋 409030의 데이터를 옮겨주는데, 이는 아래와 같다.
inet_epar32.dll의 경로와 그것이 포함하고 있는 익스포트 함수 zzz69806582이다.
즉, Lab11-03.exe는 cisvc.exe 파일에 악성 dll의 경로와 그 익스포트 함수를 호출하게 하여 Lab11-03.dll을 설치하게 한다.
4. 악성코드는 어떤 윈도우 시스템 파일을 감염시키는가?
위에서 확인했듯, 악성코드는 cisvc.exe를 감염시켜, inet_epar32.dll을 로드하고 익스포트 함수 zzz69806582를 호출하게 한다.
5. Lab11-03.dll은 무엇을 하는가?
MZ라는 이름의 뮤텍스를 생성하고, 시스템 디렉터리에 kernel64x.dll이라는 파일을 생성한다.
파일 포인터를 파일의 끝으로 설정하고 서브루틴 10001380을 호출한다.
서브루틴 10001380에서는 서브루틴 10001030이 실패하지 않으면 파일에 내용을 쓰는 작업을 한다.
서브루틴 10001030에서는 GetAsyncKeyState 호출 이후 해당 Shift키가 눌렸는지 인식한다.
그 전에 서브루틴 10001000에서 현재 포커스를 가진 윈도우를 먼저 인식하는 작업을 한다.
즉, Lab11-03.dll은 폴링 키로거이다.
6. 악성코드는 수집한 데이터를 어디에 저장하는가?
C:\Windows\System32\kernel64x.dll에 저장한다.
'악성코드분석 > 실전 악성코드와 멀웨어 분석' 카테고리의 다른 글
실전 악성코드와 멀웨어 분석 실습 12-1 (0) | 2022.11.09 |
---|---|
실전 악성코드와 멀웨어 분석 실습 11-2 (0) | 2022.10.27 |
실전 악성코드와 멀웨어 분석 실습 11-1 (0) | 2022.10.26 |
실전 악성코드와 멀웨어 분석 실습 9-3 (0) | 2022.01.09 |
실전 악성코드와 멀웨어 분석 실습 9-2 (0) | 2022.01.08 |