악성코드분석/실전 악성코드와 멀웨어 분석

실전 악성코드와 멀웨어 분석 실습 6-2

111-000-111 2021. 11. 20. 21:48

파일 Lab06-02.exe에서 발견한 악성코드를 분석하라.

 

 

 

 

 

 

 

 

1. main 함수가 호출하는 첫 번째 서브루틴은 무슨 오퍼레이션을 수행하는가?

 

 

InternetGetConnectedState 함수의 리턴 값을 통해 if문으로 분기하여 문자열을 출력하는 명령을 수행한다.

 

 

 

 

 

 

 

 

 

 

2. 0x40117F에 위치한 서브루틴은 무엇인가?

 

 

sub_40117F에 들어오는 인자를 보니 이스케이프 시퀀스가 포함된 문자열인 것을 알 수 있다. 따라서 해당 함수는 printf 함수라고 추측할 수 있고, 알아보기 편하게 이름을 printf로 변경해준다.

 

 

 

 

 

 

 

 

 

 

3. main 함수가 호출하는 두 번째 서브루틴은 무엇인가?

 

 

main함수가 호출하는 두 번째 서브루틴 sub_401040이다. 

Internet Explorer 7.5/pma라는 User-Agent를 설정한 후,

http://www.practicalmalwareanalysis.com/cc.htm 주소의 웹 페이지를 다운로드 한다.

 

 

 

버퍼에 있는 데이터와 특정 값을 비교하는 명령이 있다.

 

 

 

각각의 값은 우클릭을 통해 어떤 값인지 알 수 있다.

이 값은"<!--"로, 위에서 다운로드한 페이지의 앞부분의 HTML 주석을 파싱하기 위해 비교하는 명령이다.

 

 

성공적으로 파싱한 경우 해당 문자를 출력하고 나서 1분간 Sleep한다. (0EA60h == 60,000)

그 후, 프로그램이 종료된다.

 

 

 

4. 이 서브루틴이 사용한 코드 구조는 어떤 유형인가?

 

InternetReadFile 함수를 통해 URL에 있는 데이터를 버퍼에 수신한다. 그리고 해당 버퍼와 html 주석의 앞부분을 비교하는 루틴이다. 앞의 4개의 문자가 일치하면 다섯 번째 문자를 AL에 넣고 함수를 반환한다. 이러한 리턴 값을 가지고 메인 함수로 돌아가서 리턴 값이 0인지 검증하는 과정을 거친 뒤, 0일 경우에 파싱한 문자와 함께 파싱에 성공했다는 문자열을 출력한다.

 

 

 

 

 

 

 

5. 이 프로그램에서 네트워크 기반의 행위(indicator)가 존재하는가?

 

 

넷캣을 통해 80번 포트를 리스닝 한 결과이다.

 

 

strings를 통해 Lab06-02.exe의 문자열을 분석한 결과이다.

위 정보들을 보면, Internet Explorer 7.5/pma의 User-Agent를 이용하여 www.practicalmalwareanalysis.com/cc.htm  을 을 다운로드 하는 것이 네트워크 기반의 행위라고 할 수 있다.

 

 

 

 

 

 

 

6. 이 악성코드의 목적은 무엇인가?

 

인터넷 연결이 되어있는지 확인한 후, 결과에 따른 문자열을 출력한다.
Internet Explorer 7.5/pma라는 User-Agent로
http://www.practicalmalwareanalysis.com/cc.htm 주소의 웹 페이지를 다운로드 한다.
그리고 주석을 파싱하여 해당 문자를 출력해 준 후, 1분간 Sleep한 후 프로그램을 종료한다.