Volatility Cridex 문제풀이

8957 단어 포렌식포렌식

SUA 2주차 B과제 & 3주차 A과제 관련
Volatility Wiki 페이지에서 제공하고 있는 Cridex 이미지에 대한 분석


1. 기초 분석

1.1. 운영체제 식별

imageinfo 플러그인을 이용하였고, 메모리덤프의 운영체제는 WinXPSP2x86 로 추정된다.

1.2. 프로세스 식별

총 4개의 플러그인, pslist, psscan, pstree, psxview를 이용하였다.

우선 pstree부터 보면, reader_sl.exe 이외에는 정상 프로세스로 별다른 특이사항은 없어 보인다. 추가적으로 reader_sl.exe를 실행한 explorer.exe 정도는 짚고 넘어갈 만하다.

psscan과 psxview를 이용하여 숨김 프로세스가 있는지 확인하였으나, 존재하지 않았다.

-> 따라서 현재까지 의심해볼만한 프로세스는 reader_sl.exe(1640), explorer.exe(1484)이다.

1.3. 네트워크 식별

총 4개의 플러그인, connections, connscan, sockets, sockscan을 이용하였다.

우선 활성화된 TCP 연결을 찾아주는 두 플러그인, connections와 connscan을 보면, 아래와 같이 의심스러운 IP 2개를 얻을 수 있다. (connections 결과는 중복이라 제외)

다음 소켓에 대한 정보를 찾아주는 두 플러그인, sockets와 sockscan을 이용한 결과를 보면, 위에서 의심스럽다고 체크해두었던 explorer.exe(1484)가 ANY(0.0.0.0)을 향해 소켓을 열고 있는(혹은 열었거나) 흔적을 찾을 수 있다.

-> 따라서 explorer.exe(1484) 프로세스가 41.168.5.140:8080, 125.19.103.198:8080 2개의 의심스러운 IP와 통신한 흔적을 발견할 수 있다.

1.4. 콘솔 명령어 흔적

총 3개의 플러그인, cmdline, cmdscan, consoles를 이용하였다.

우선 프로세스가 실행될 때의 인자 값을 확인해주는 cmdline의 결과를 보면, 아래와 같이 Reader_sl.exe 프로세스가 실행된 흔적은 있으나 추가적으로 얻을 수 있는 정보는 없었다.

cmdscan과 consoles 플러그인에서는 결과를 출력하지 않았다.

2. 프로세스 심층 분석

앞에서 explorer.exe(1484)와 reader_sl.exe(1640)이 의심스러운 프로세스임을 식별하였다.
해당 프로세스들에 대한 심층 분석을 진행하려 한다.

2.1. 프로세스 실행 파일 추출

총 3개의 플러그인, procdump, filescan, dumpfiles를 이용하였다.

procdump 플러그인을 이용하여 프로세스의 실행 파일을 추출하였다.

추출한 실행 파일은 모두 Virustotal에서 악성 파일로 탐지되었다 (순서대로 1484, 1640)

filescan 플러그인을 이용하여 프로세스의 실행 파일이 디스크에 남아있는지 확인하였다. filescan 명령어를 실행한 결과에 notepad++ 을 이용하여 프로세스 이름을 검색한 결과이다.

dumpfiles 플러그인을 이용하여 위의 오프셋에 존재하는 파일을 추출하였다.

Virustotal에 업로드해본 바 해당 파일들 모두 5개 미만의 벤더에서 악성코드로 탐지하였다. virustotal을 이용한 자세한 분석 결과는 별도의 목차를 이용해서 기술한다.

2.2. 실행파일 Virustotal 검색 결과

Virustotal에서 reader_sl.exe 실행파일에 대해 분석해준 결과를 정리해보면 아래와 같다.

IP Traffic
  8.252.195.126:80 (TCP) 등등 -> 우리가 조사한 내용과 일치 X

Files Deleted & Files Dropped
  C:\ProgramData\Microsoft\Windows\WER\Temp\WER149C.tmp 
  C:\ProgramData\Microsoft\Windows\WER\Temp\WER1598.tmp.txt 등등 -> filescan에서 검색 불가능

Processes Tree
   2980 - %WINDIR%\explorer.exe
     3692 - %SAMPLEPATH%\AcroSpeedLaunch.exe -> reader_sl.exe의 또다른 이름임을 알 수 있다.
   624 - C:\Windows\System32\svchost.exe
     3492 - C:\Windows\System32\wuapihost.exe -> svchost.exe에서 wuapihost.exe로 이어지는 새로운 흐름 발견

virustotal 결과로부터 svchost.exe(1004) 와 wuapihost.exe(1588, 1136)를 새롭게 의심해볼 수 있었고 추가적으로 분석을 진행하였다.

virustotal 검색 결과 svchost.exe는 악성 파일이 아니었지만, 2개의 wuapihost.exe는 악성 파일로 의심된다.

정리하자면, Virustotal 검색 결과로 부터 아래와 같은 결과들을 얻을 수 있었다.

  • reader_sl.exe의 또다른 이름은AcroSpeedLaunch.exe 이고,
  • explorer.exereader_sl.exe는 부모-자식 관계를 가지는 프로세스이고,
  • wuapihost.exe(1588, 1136) 역시 연관된 프로세스로 판단할 수 있음.

추가적으로 인터넷을 검색한 결과, any.run 사이트에서 샘플파일 및 실행결과도 구할 수 있었다.

2.3. 실행파일 strings 분석

추출한 실행파일에서 문자열 데이터를 추출하기 위해 strings 명령어를 이용하였다.
exe 파일을 strings로 추출한 데이터는 용량이 그리 크지 않아서 별도의 검색어 없이 전체를 스캔하였다.

해당 파일들 전부에서 실행파일 문자열 검색으로는 사건과 관련된 데이터를 획득하지 못했다.

2.4. 실행파일 메모리 덤프 분석(1484,1640)

memdump 플러그인을 이용하여 메모리 덤프를 추출하고, strings를 이용하여 메모리 덤프 내부의 문자열을 추출하였다.

strings를 이용한 문자열 파일(1484, 1640 모두)에서 이전에 발견한 키워드들을 검색하였다.

  • IP 주소: 41.168.5.140:8080, 125.19.103.198:8080
    유사한 형태의 URL이 검색되는 것을 확인할 수 있다.

    /zb/v_01_a/in/ 이라는 패턴으로 다시 검색한 바, 아래와 같이 PHP 파일도 확인할 수 있으며, html 코드도 확인할 수 있다.

    추가적으로 은행의 목록으로 추정되는 문자열들도 발견할 수 있다.

-> 따라서 1484, 1640 두 악성코드는 은행과 관련된 일을 하는 것으로 보이며, 은행의 목록들과 C&C 서버들의 목록을 추출할 수 있었다.

2.5. 실행파일 메모리 덤프 분석(1136, 1588)

실행파일의 메모리 덤프를 수행하기 위해 memdump 플러그인을 이용하였다.

메모리 덤프 내부에서 문자열을 추출하기 위해 strings 명령어를 이용하였다.

우선 두 실행파일이 악성파일이 맞는지 알아보기 위해 검색을 수행하였다.

  • KB00207877.exe 등의 키워드로 검색을 수행한 바, 아래와 같은 결과를 발견할 수 있었다.
  • 41.168.5.140:8080 URL에 요청을 보내는 것도 확인할 수 있었다.

-> 두 실행파일은 악성 행위를 하는 것으로 보인다.

추가적인 악성행위 검색 결과

  • 은행 URL, C&C 서버와의 통신, HTML 코드가 존재하는 것을 확인할 수 있으며,
  • WinSCP, PuTTY와 같은 파일 전송 도구를 이용한 것을 볼 수 있는데, 이것이 구체적으로 어떻게 연결되는지까지는 확인이 불가하였다. (수상한건 분명한데, cridex가 침투할 때 썼는지, 추가적 악성행위를 할 때 썼는지가 불분명)

3. 기타 추가 분석

3.1. printkey 플러그인

메모리 덤프 분석 중 발견한 레지스트리(Software\Microsoft\Windows\CurrentVersion\Run)를 추출하여 프로세스의 자동 실행과 관련된 흔적을 분석한다.

아래와 같이 KB00207877.exe 파일이 자동 실행으로 등록되는 것을 확인할 수 있다. 해당 파일을 filescan의 결과에서 추출하여 virustotal에 검색해보면,

아래와 같이 악성 프로그램임을 알 수 있다. 이외에도 아까 보았던 /zb/v_01_a/in/ 형태의 URL과 연관된 파일임을 알 수 있다.

-> 따라서 이 악성코드는 컴퓨터가 새로 시작될 때마다KB00207877.exe를 실행시켜, 악성행위를 이어가는 것으로 보인다.

3.2. userassist 플러그인

응용프로그램의 사용 흔적과 관련된 userassist 플러그인을 이용하여 분석한다.

분석 결과 cridex1.exe라는 응용프로그램이 노출되고 있으나, 추가적으로 해당 응용 프로그램에 대해 얻을 수 있는 정보는 없었다.

3.3. Handles 플러그인

프로세스들이 가지고 있는 핸들의 리스트를 분석하여, 어떤 프로세스와 키들을 가지고 있었는지를 분석한다.
handles 플러그인을 이용하여 분석했으나, 의미있는 결과를 얻을 수 없었다.

3.4. 공개출처정보(OSINT) 분석 결과

분석 중 발견한 /zb/v_01_a/in/cp.php와 같은 키워드로 검색한 결과, 해당 악성코드의 배경 및 그룹 정보, 악성 행위에 대한 구체적 정보를 확인할 수 있었다.
https://eternal-todo.com/blog/sopelka-botnet-feodo-tatanga-citadel-panel

이 악성코드는 2012년 5월부터 9월까지 발견되는 악성코드로, Sopelka Botnet의 일종이다. 유럽 기관, 주로 스페인과 독일의 은행뿐 아니라 네덜란드, 이탈리아, 몰타의 은행 자격 증명을 수집하는 것이 목표이며, 아래와 같은 5개의 변종 가운데 Feodo를 우리는 발견할 수 있었다.


혹시 설명이 부족하거나, 이해가 되지 않는 점이 있으시면 언제나 질문주시길 바랍니다!
더 분석이 가능한 부분이나, 해석이 틀린 지점에 대한 지적도 언제나 환영입니다 :)

좋은 웹페이지 즐겨찾기