티스토리 뷰
OlympicDestroyer - Volatility Contest 2018 #1
Noctis41 2024. 3. 12. 18:24해당 포스트에서는 Volatility Contest2018에서의 OlympicDestroyer 문제에 대한 분석입니다.
0. 배경
1. 운영체제 식별
해당 파일을 다운로드하여 이미지의 정보를 확인
명령어:volatility_2.6_win64_standalone.exe -f '.\Windows 7-1a1299dc.vmem' imageinfo
2. 프로세스 확인
위 imageinfo 사진에 Suggested Profile(s) 부분에 있는 운영체제 버전 중 아무거나 선택해서 프로세스에 대해 분석을 해보겠다.
명령어:volatility_2.6_win64_standalone.exe -f '.\Windows 7-1a1299dc.vmem' --profile=Win7SP1x86 pslist > pslist.log
pslist 명령어를 pslist.log 파일형식으로 저장해서 열어보았다, 추가적으로 psscan, pstree, psxview, cmdline, cmdscan, consoles, netscan, filescan 명령을 통해 프로세스를 더 자세히 확인해보자.
명령어:OlympicDestoryer> volatility_2.6_win64_standalone.exe -f '.\Windows 7-1a1299dc.vmem' --profile=Win7SP1x86 psscan > psscan.log
명령어: volatility_2.6_win64_standalone.exe -f '.\Windows 7-1a1299dc.vmem' --profile=Win7SP1x86 pstree > pstree.log
명령어: volatility_2.6_win64_standalone.exe -f '.\Windows 7-1a1299dc.vmem' --profile=Win7SP1x86 psxview > psxview.log
명령어: volatility_2.6_win64_standalone.exe -f '.\Windows 7-1a1299dc.vmem' --profile=Win7SP1x86 cmdline > cmdline.log
명령어volatility_2.6_win64_standalone.exe -f '.\Windows 7-1a1299dc.vmem' --profile=Win7SP1x86 cmdscan > cmdscan.log
명령어: volatility_2.6_win64_standalone.exe -f '.\Windows 7-1a1299dc.vmem' --profile=Win7SP1x86 consoles > consoles.log
명령어: volatility_2.6_win64_standalone.exe -f '.\Windows 7-1a1299dc.vmem' --profile=Win7SP1x86 netscan > netscan.log
명령어: volatility_2.6_win64_standalone.exe -f '.\Windows 7-1a1299dc.vmem' --profile=Win7SP1x86 filescan > filescan.log
3. 분석하기
해당 파일들중 pstree.log로 먼저 pid와 ppid를 연관하여 확인해본 결과
위 사진만 보면 powershell.exe를 통해 OlympicDestroy가 트리거 된걸 볼 수 있다.
OlympicDestroy를 통해 3개의 _xut.exe, teikv.exe,ocxip.exe 프로세스가 생성된 것을 볼 수 있다.
또한 WmiprvSE.exe는 마이크로소프트 윈도우 관리 계측에서 사용되는 WMI용 Microsoft의 공급자 호스트 서비스로 기본적으로는 C:\WINDOWS\System32\wbem 하위 디렉토리에 속해있어야 한다.
하지만 여기서는 여른 프로세스의 하위 디렉토리에 있으므로 의심해봐야 한다.
이외의 프로세스들도 확인해보자
위 프로세스들을 확인해보니 OSPPSVC.EXE는 마이크로소프트에서 자사 오피스를 보호하기위해 제작된 프로그램이다.
이 프로세스가 왜 의심스럽냐면 공격의 최초 감염경로가 스피어 피싱, 이메일을 통한 공격이기 때문이다.
이것은 MS 오피스 Outlook이나 Excel과 같은 프로그램에 악성코드를 달고 왔을 수 있기 때문이다.
그 아래 taskong.exe은 작업 스케쥴러엔진으로 작업 스케쥴러는 해커가 지속적으로 컴퓨터에서 실행을 시키기 위해 사용하는 경우가 많다.
이제 시간 순서대로 확인해기 위해 pslist.log를 확인해보자.
우리가 확인했던 실행파일만 보면 WmiPrvSE.exe가 가장 먼저 실행됐고 그 이해 9시간 정도 뒤에 OSPPSVC.exe가 실행된 후 인접한 시간에 powershell.exe과 conhost.exe가 실행됐다.
이것만 봤을 땐 마이크로소프트 오피스 프로세스를 통해 powershell.exe를 실행시켰다고 1차 시나리오를 생각할 수 있다.
다만 이것이 실행된 후 9시간뒤에 악성코드가 확실하다고 생각하는 OlympicDestroy가 실행됐고 후에 ocxip.exe, teikv.exe, _xut.exe가 바로 실행됐고 잠시후 taskeng.exe,cmd.exe, conhost.exe가 실행됐다.
다만 여기서 이상한건 의심스러운 파일들이 9시간 간격으로 실행됐다는 것이다.
이 부분은 지금은 알 수 없으니 netscan.log에서 네트워크를 한 번 확인해보자.
netscan.log에서 확인한 것으론 powershell.exe가 많이 보였지만 외부 원격 주소는 모두 없었다.
해당 pc의 주소는 192.168.111.130으로 보이고 해당 pc와 유일하게 원격으로 통신하고 있는 pc의 ip는
192.168.111.128:49154로 현재로는 의심스럽다고 하긴 어렵고 알아두기만 하면 될 것 같다.
네트워크부분에서는 정보가 특별히 없었다. 이번엔 cmdline에서 확인해보자.
cmdline에서 우리가 처음 의심스러워 했던 프로세스들로 살펴보면 OSPPSVC.EXE는 경로가 의심스러운 경로는 아니였단걸 알 수 있다.
OlympicDestroy의 경로는 C:\Windows\System32\OlympicDestroyer3.exe라는 것을 알 수 있고
그의 자식 프로세스인 _xut.exe도 실행경로가 C:\Users\VM\AppData\Local\Temp\_xut.exe 알 수 있다.
이제 consoles.log로 더욱 상세히 봐보자.
확인해보니 conhost.exe가 powershell.exe를 실행한 것으로 볼 수 있다.
그럼 다시pslist.log를 확인하며 시간을 다시 체크해보자.
powershell.exe가 먼저 실행한 것 같지만, 시간을 확인하면 동일한 시간에 실행된 것으로 볼 수 있다.
그렇다면 conhost.exe는 누가 실행했는지 확인하면
pstree로 확인하면 csrss.exe의 자식 프로세스로 나오지만 csrss.exe는 클라이언트/서버 런타임 하위 시스템으로 딱히 의심스러워 보이진 않지만 그래도 체크만 해보겠다.
이제 의심스러운 파일 경로를 추출하기 위해 filescan.log에서 오프셋 값을 확인하자.
OlympicDestroyer3.exe, _xut.exe 데이터 섹션, 이미지 섹션 추출하기
OlympicDestroyer3.exe
폴더 생생: mkdir files
명령어: volatility_2.6_win64_standalone.exe -f '.\Windows 7-1a1299dc.vmem' --profile=Win7SP1x86 dumpfiles -Q 0x000000007fc8b888 -n -D .\files\
_xut.exe
명령어: volatility_2.6_win64_standalone.exe -f '.\Windows 7-1a1299dc.vmem' --profile=Win7SP1x86 dumpfiles -Q 0x000000007f891570 -n -D .\files\
추출한 것들을 Virustotal에 넣어 바이러스 여부를 확인해보자.
일단 _xut.exe와 OlympicDestoryer는 완전히 악성프로그램이란것까지 증명했다.
글이 너무 길어져 나눠 써야겠다.
'Digital Forensics > Memory Forensic' 카테고리의 다른 글
Memory Forensics 개념 및 volatility 사용 (0) | 2025.03.17 |
---|---|
OlympicDestroyer - Volatility Contest 2018 #2 (0) | 2024.03.28 |
Volatility 정리 (0) | 2024.03.09 |