-
실전 악성코드와 멀웨어 분석(Practical Malware Analysis) [실습 3-2]IT/악성코드 분석 공부 2018. 3. 12. 09:00
본 포스팅은
"실전 악성코드와 멀웨어 분석(Practical Malware Analysis) 책의 실습 부분을
공부하고 작성한 풀이 및 보고서 입니다.
그림 1 실습 3-2 질문
실습 3-2에서 분석할 파일은 EXE 파일이 아닌 DLL 파일이다. 윈도우는 DLL의 자동 실행 방법을 알지 못한다.
먼저 Lab03-02.dll 파일의 익스포트 함수에 대해서 알아본다. 아래 그림 2는 Lab03-02.dll 파일의 익스포트 함수이다. 익스포트 함수는 다른 프로그램이나 라이브러리가 호출할 수 있는 파일 내의 함수이다. 즉, installA 함수를 통해서 악성코드를 설치하고 uninstallA 함수를 통해서 악성코드를 제거하는 것이 가능하다.
그림 2 Lab03-02.dll 익스포트 함수
아래 그림 3은 Lab03-02.dll 파일의 임포트 함수이다. HttpSendRequestA 함수로 보아 HTTP 통신을 하는 것을 알 수 있다. 그 밖에 ADVAPI32.DLL의 RegSetValueExA 함수를 사용해서 레지스트리 값을 수정하는 것이 가능하다. 그리고 CreateServiceA 함수를 통해서 새로운 서비스를 생성하는 것을 짐작할 수 있다.
그림 3 Lab03-02.dll 임포트 함수
Lab03-02.dll 파일의 문자열을 확인해 본다. 레지스터리 위치, 도메인명, IPRIP, serve.html 등의 문자를 확인할 수 있다.
그림 4 Lab03-02.dll 문자열
DLL 파일의 실행을 위해 system32 디렉터리에 있는 rundll32.exe 파일을 이용한다. 사용방법은 “rundll32.exe [DLLNAME] , [Export arguments]” 이다. 이와 함께 레지스트리의 변화를 확인한다.
아래 그림 5는 일부가 편집된 Regshot의 결과이다. 악성코드는 자신을 서비스 IPRIP로 설치했음을 보여준다.
그림 5 Lab03-02.dll Regshot 결과
ImagePath를 svchost.exe로 설정하고 있으며, 이는 악성코드가 svchost.exe 프로세스에서 실행되는 것임을 의미한다.
그림 6 Lab03-02.dll 레지스트리
동적분석을 준비하고 IPRIP 서비스를 실행한다. Process Explorer의 Search 기능을 이용한다. Handle or DLL substring 값을 Lab03-02.dll로 검색을 한다. 그러면 해당 dll을 사용하는 프로세스를 확인할 수 있다. PID가 1132인 svchost.exe 프로세스가 실행된 것을 확인할 수 있다.
그림 7 Lab03-02.dll Process Explorer
ApateDNS를 보면 practicalmalwareanalysis.com에 DNS 요청을 수행하고 있다.
그림 8 Lab03-02.dll ApateDNS 결과
또한 Wireshark를 통해 네트워크 패킷을 확인해 보면 serve.html 페이지를 HTTP GET 요청을 하는 것을 볼 수 있다.
'IT > 악성코드 분석 공부' 카테고리의 다른 글
실전 악성코드와 멀웨어 분석(Practical Malware Analysis) [실습 3-4] (2) 2018.03.14 실전 악성코드와 멀웨어 분석(Practical Malware Analysis) [실습 3-3] (0) 2018.03.13 실전 악성코드와 멀웨어 분석(Practical Malware Analysis) [실습 3-1] (0) 2018.03.11 실전 악성코드와 멀웨어 분석(Practical Malware Analysis) [실습 1-4] (0) 2018.03.10 실전 악성코드와 멀웨어 분석(Practical Malware Analysis) [실습 1-3] (0) 2018.03.09 댓글