SUA 2주차 B과제 & 3주차 A과제 관련
Volatility Wiki 페이지에서 제공하고 있는 Cridex 이미지에 대한 분석
imageinfo 플러그인을 이용하였고, 메모리덤프의 운영체제는 WinXPSP2x86
로 추정된다.
총 4개의 플러그인, pslist, psscan, pstree, psxview를 이용하였다.
우선 pstree부터 보면, reader_sl.exe
이외에는 정상 프로세스로 별다른 특이사항은 없어 보인다. 추가적으로 reader_sl.exe
를 실행한 explorer.exe
정도는 짚고 넘어갈 만하다.
psscan과 psxview를 이용하여 숨김 프로세스가 있는지 확인하였으나, 존재하지 않았다.
-> 따라서 현재까지 의심해볼만한 프로세스는 reader_sl.exe
(1640), explorer.exe
(1484)이다.
총 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와 통신한 흔적을 발견할 수 있다.
총 3개의 플러그인, cmdline, cmdscan, consoles를 이용하였다.
우선 프로세스가 실행될 때의 인자 값을 확인해주는 cmdline의 결과를 보면, 아래와 같이 Reader_sl.exe
프로세스가 실행된 흔적은 있으나 추가적으로 얻을 수 있는 정보는 없었다.
cmdscan과 consoles 플러그인에서는 결과를 출력하지 않았다.
앞에서 explorer.exe
(1484)와 reader_sl.exe
(1640)이 의심스러운 프로세스임을 식별하였다.
해당 프로세스들에 대한 심층 분석을 진행하려 한다.
총 3개의 플러그인, procdump, filescan, dumpfiles를 이용하였다.
procdump 플러그인을 이용하여 프로세스의 실행 파일을 추출하였다.
추출한 실행 파일은 모두 Virustotal에서 악성 파일로 탐지되었다 (순서대로 1484, 1640)
filescan 플러그인을 이용하여 프로세스의 실행 파일이 디스크에 남아있는지 확인하였다. filescan 명령어를 실행한 결과에 notepad++ 을 이용하여 프로세스 이름을 검색한 결과이다.
dumpfiles 플러그인을 이용하여 위의 오프셋에 존재하는 파일을 추출하였다.
Virustotal에 업로드해본 바 해당 파일들 모두 5개 미만의 벤더에서 악성코드로 탐지하였다. 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.exe
과 reader_sl.exe
는 부모-자식 관계를 가지는 프로세스이고,wuapihost.exe
(1588, 1136) 역시 연관된 프로세스로 판단할 수 있음. 추가적으로 인터넷을 검색한 결과, any.run
사이트에서 샘플파일 및 실행결과도 구할 수 있었다.
추출한 실행파일에서 문자열 데이터를 추출하기 위해 strings 명령어를 이용하였다.
exe 파일을 strings로 추출한 데이터는 용량이 그리 크지 않아서 별도의 검색어 없이 전체를 스캔하였다.
해당 파일들 전부에서 실행파일 문자열 검색으로는 사건과 관련된 데이터를 획득하지 못했다.
memdump 플러그인을 이용하여 메모리 덤프를 추출하고, strings를 이용하여 메모리 덤프 내부의 문자열을 추출하였다.
strings를 이용한 문자열 파일(1484, 1640 모두)에서 이전에 발견한 키워드들을 검색하였다.
41.168.5.140:8080
, 125.19.103.198:8080
/zb/v_01_a/in/
이라는 패턴으로 다시 검색한 바, 아래와 같이 PHP 파일도 확인할 수 있으며, html 코드도 확인할 수 있다. -> 따라서 1484, 1640 두 악성코드는 은행과 관련된 일을 하는 것으로 보이며, 은행의 목록들과 C&C 서버들의 목록을 추출할 수 있었다.
실행파일의 메모리 덤프를 수행하기 위해 memdump 플러그인을 이용하였다.
메모리 덤프 내부에서 문자열을 추출하기 위해 strings 명령어를 이용하였다.
우선 두 실행파일이 악성파일이 맞는지 알아보기 위해 검색을 수행하였다.
KB00207877.exe
등의 키워드로 검색을 수행한 바, 아래와 같은 결과를 발견할 수 있었다.41.168.5.140:8080
URL에 요청을 보내는 것도 확인할 수 있었다.-> 두 실행파일은 악성 행위를 하는 것으로 보인다.
추가적인 악성행위 검색 결과
메모리 덤프 분석 중 발견한 레지스트리(Software\Microsoft\Windows\CurrentVersion\Run
)를 추출하여 프로세스의 자동 실행과 관련된 흔적을 분석한다.
아래와 같이 KB00207877.exe
파일이 자동 실행으로 등록되는 것을 확인할 수 있다. 해당 파일을 filescan의 결과에서 추출하여 virustotal에 검색해보면,
아래와 같이 악성 프로그램임을 알 수 있다. 이외에도 아까 보았던 /zb/v_01_a/in/
형태의 URL과 연관된 파일임을 알 수 있다.
-> 따라서 이 악성코드는 컴퓨터가 새로 시작될 때마다KB00207877.exe
를 실행시켜, 악성행위를 이어가는 것으로 보인다.
응용프로그램의 사용 흔적과 관련된 userassist 플러그인을 이용하여 분석한다.
분석 결과 cridex1.exe
라는 응용프로그램이 노출되고 있으나, 추가적으로 해당 응용 프로그램에 대해 얻을 수 있는 정보는 없었다.
프로세스들이 가지고 있는 핸들의 리스트를 분석하여, 어떤 프로세스와 키들을 가지고 있었는지를 분석한다.
handles 플러그인을 이용하여 분석했으나, 의미있는 결과를 얻을 수 없었다.
분석 중 발견한 /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
를 우리는 발견할 수 있었다.
혹시 설명이 부족하거나, 이해가 되지 않는 점이 있으시면 언제나 질문주시길 바랍니다!
더 분석이 가능한 부분이나, 해석이 틀린 지점에 대한 지적도 언제나 환영입니다 :)