Information Security ˗ˋˏ ♡ ˎˊ˗

Security/Reversing

[악성코드동적분석] PracticalMalwareAnalysis-Lab03-02 분석

토오쓰 2020. 7. 28. 21:01

 

"실전 악성코드와 멀웨어 분석(Practical Malware Analysis) 책의

실습 부분을 공부하고 작성한 분석 보고서"

 

 

 

사용한 파일

[Lab03-2.exe]

[Lab03-2.dll]

 

가상 환경

Windows XP Professional

 

실습 3-2) 기초 동적 분석 도구를 이용해 Lab03-2.dll 파일에서 발견된 악성코드를 분석하라

라이브러리 파일 설치하는 방법

정직하게 보이는 것 보면 패킹은 되어있지 않은 것 같다.

[import 디렉터리]

네트워크와 관련된 라이브러리를 보고 네트워크 행위를 한다는 것을 알 수 있다.

ADVAPI32.dll

레지스트리와 관련된 라이브러리 존재, 서비스와 관련된 행위를 하는 모듈 존재, 서비스로 등록되면 악성코드가 자동으로 실행될 수 있도록 함. 서비스는 백신 같은 것들이 항상 검사를 해야 하니까 사용하는 것들인데 악성코드가 악용하는 것이다.

WS2_32.dll

네트워크와 관련된 라이브러리

KERNEL32.dll:

네트워크와 관련된 라이브러리

 

[export 디렉토리]

export 디렉터리 역할: dll이 사용하는 인자 값이 보임.

- ServiceMain: Lab03-02.dll이 서비스로 동작을 할 때, 실행되는 메인 함수이다.

- Lab03-02.dll을 설치하기 위해서 열어놓은 함수

-> install

-> installA

- Lab03-02.dll을 삭제하기 위해서 사용하는 함수

-> uninstallA

 

이 파일이 다른 라이브러리 DLL 파일을 실행시킬 때 함께 사용되는 시스템 파일이다.

파일 옮기기

 

인자 값으로 installA를 준다.

API 함수들 목록들

 

도메인 정보도 나옴

 

Description에 대한 설명

IPRIP 이상한 문자열

 

 

레지스트리에 어떤 것을 생성하는지 확인

[Regshot.exe]

SystemRoot%\System32\svchost.exe -k netsvcs을 이용하여 "C:\WINDOWS\system32\Lab03-02.dll" 파일이 로드되는 것을 알 수 있다.

DisplayName: "Intranet Network Awareness (INA+)"//서비스의 이름, 분석가들이 의심하지 못하게 하기 위해서 정상적인 서비스처럼 위장한다.

 

1) 악성코드 자체가 어떻게 설치됐는가? 

답: rundll32.dll을 사용하고 installA라는 인자 값을 주어서 설치가 되었다.

 

2) 설치 후 악성코드를 어떻게 실행할 수 있는가?

사용하는 프로그램: 프로세스 익스플로러

[Lab03-2.dll] 파일이 실행 중인 파일인지 확인한다.

실행 중은 아니고, 할일만 하고 꺼져버리는 것을 알 수 있다.

 

방법 1) 껐다가 다시 켠다.

방법 2) command에 명령어

방법 3) lceSword.exe

악성코드의 동작을 볼 수 있다.

실행되고 있는 것을 확인할 수 있다.

답: 명령어 netstat 서비스명

 

 

3) 악성코드가 동작할 때 어떤 프로세스를 발견할 수 있는가?

답: svchost.exe 파일에 Lab03-02.dll 파일이 로드돼서 동작하고 있다.

 

 

4) 정보를 수집하는 Procmon을 사용하기 위해 어떤 필터를 설정했는가?

-> 의미 없는 행위라고 느낌

4번 문제는파일의 행위를 관찰하기 위한 방법이다

프로세스 id 1152

아이디 값으로 svchost.exe가 파일을 로드해서 어떤 것을 하는지 관찰할 수 있다.

 

프로세스 모니터

필터 설정

 

 

5) 악성코드임을 의미하는 호스트 기반 표시자는 무엇인가?

답: HKLM\SYSTEM\ControlSet001\Services\IPRIP\을 이용하여 자기 자신을 레지스트리에 등록했다.

 

 

6) 악성코드에서 유용한 네트워크 기반 시그니처가 존재하는가?

스냅샷을 이용하여 재 실행시켜준다.

현재 실행이 됐고 서비스로 등록이 된다.
현재 실행시킨 행위 자체는 dll 전체가 실행된 것이 아니라 서비스로 자기 자신을 등록하는 행위까지만 한다. 
dll의 원래 악성 행위를 실행하기 위해서는 서비스로 등록된 dll을 실행시켜줘야 한다. 
등록된 서비스 이름: IPRIP

 

네트워크 행위를 보기 위해서 wireshark를 이용한다.

 

 

 

DNS 쿼리를 날린 결과 값 192.0.78.25로 패킷을 보냄.

 

GET을 통해 serve.html 파일을 가져온다.

Moved Permanently: serve.html 파일이 없어진다.

 

답: www.practicalmalwareanalysis.com/serve.html 파일이었고 전송하는 데이터는 user-agent로 pc의 계정명과 운영체제 정보가 가고 있는 것을 확인할 수 있었다.

 

 

 

참고

https://practicalmalwareanalysis.com/labs/

 

Labs

The Practical Malware Analysis labs can be downloaded using the link below. WARNING The lab binaries contain malicious code and you should not install or run these programs without first setting up…

practicalmalwareanalysis.com