본문 바로가기

디지털포렌식 with CTF

(91)
[메모리 포렌식] GrrCON 2015 #11 #10 문제에서 공격자가 옮긴 도구 중 한 가지로 데이터를 전송했을 것입니다. nbtscan, rar, wce 중 wce.exe는 윈도우 계정의 비밀번호 해시 정보와 문자열 정보를 추출해 보여주는 도구입니다. 도구의 특징 상 wce.exe 실행프로그램을 사용한 것으로 추측할 수 있습니다. volatility의 cmdscan 명령어를 통하여 어떠한 명령어들이 입력되었는지 살펴보겠습니다. 실행 결과를 보면 wce.exe 프로그램의 결과를 w.tmp 파일에 저장하였습니다. w.tmp 파일을 복구하기 위하여 먼저 filescan 플러그인과 findstr 플러그인으로 파일의 오프셋 값을 찾아보겠습니다. Temp 폴더에 저장된 w.tmp 파일이 나옵니다. 이제 dumpfiles 플러그인과 -Q 옵션을 사용하여 파일..
[메모리 포렌식] GrrCON 2015 #10 공격자가 옮긴 도구를 찾는 문제입니다. 먼저 멀웨어가 담긴 프로세스인 iexplore.exe 프로세스를 memdump 플러그인으로 덤프하고, strings 프로그램으로 txt 파일로 저장해줍니다. (앞 문제 참고) frontdesk로 검색하다 보면 위와 같이 임시 폴더인 Temp 폴더에 담긴 파일들이 나옵니다. .exe 형식이고, g로 시작하지 않으므로 nbtscan.exe, Rar.exe, wce.exe 3개의 실행파일을 얻을 수 있습니다.
[메모리 포렌식] GrrCON 2015 #9 관리자 계정의 NTLM 암호 해시를 구하는 문제입니다. NTLM 암호 정보는 volatility의 hashdump 플러그인으로 확인할 수 있습니다. Admin의 NTLM 암호 해시를 hashdump 플러그인을 통하여 구할 수 있습니다.
[메모리 포렌식] GrrCON 2015 #8 이번 문제는 volatility의 mftparser 플러그인으로 MFT를 분석해보겠습니다. mftparser로 출력된 MFT를 분석하다 보면 User name 중 zerocool이라는 이름을 발견할 수 있습니다. zerocool이라는 이름은 1995년 개봉한 영화 Hackers에 등장하는 주인공의 사이버 공간 닉네임이라고 합니다. 고로 이 해커가 나오는 영화의 이름은 Hackers입니다.
[메모리 포렌식] GrrCON 2015 #7 책에서 위 지문과 같은 내용은 멀웨어의 뮤텍스를 생각해볼 수 있다고 합니다. 뮤텍스는 스레드들 간에서 공유가 배제되는 객체라고 합니다. volatility의 handles 플러그인을 통하여 뮤텍스 정보를 확인해 볼 수 있습니다. -t 옵션은 오직 특정한 타입의 handles만 표시해준다고 합니다. 그러므로 -t 옵션을 사용하여 Mutant 옵션만 표시하도록 해주었습니다. Mutant 타입의 handles들을 확인해보니 멀웨어가 fsociety0.dat라는 파일명을 사용하는 걸 확인할 수 있습니다.
[메모리 포렌식] GrrCON 2015 #6 비밀번호를 찾아야 하는 문제입니다. #5번에서 찾은 pid가 2996인 프로세스를 memdump 플러그인으로 덤프해보겠습니다. -p 옵션으로 pid를 지정해주고, -D 옵션으로 저장할 위치를 설정해줍니다. 그리고 strings 프로그램으로 가시성이 좋게 변환해줍니다. #5에서의 레지스트리 키인 MrRobot을 검색해보면, Password1234 형식의 문자열인 GrrCon2015가 나옵니다.
[메모리 포렌식] GrrCON 2015 #5 재부팅 후에도 지속성을 유지하기 위하여 사용하는 레지스트리를 찾는 문제입니다. 재부팅 후에도 지속성을 유지하는 레지스트리 키는 Microsoft\Windows\CurrentVersion\Run 레지스트리입니다. Volatility의 printkey 플러그인을 통하여 Microsoft\Windows\CurrentVersion\Run 레지스트리 하위에 존재하는 레지스트리 Key가 나옵니다. VMware User Process, MrRobot 2개의 레지스트리 키가 나오는데, 멀웨어가 사용하는 key는 MrRobot입니다.
[메모리 포렌식] GrrCON 2015 #4 인젝션된 프로세스의 PID를 찾아야 합니다. volatility의 pstree 플러그인으로 프로세스 목록을 살펴보겠습니다. 위와 같이 나옵니다. 책에서는 Volutility 플러그인을 사용하여서 풀었는데, 설치 과정이 복잡하여 다른 방법을 찾아보았습니다. iexplore.exe 프로세스는 실행 시 explorer.exe 프로세스의 하위에 위치하여야 하는데, 위의 pstree에서는 독립적으로 실행되고 있습니다. 그러므로 고의적으로 악성코드에 인젝션된 프로세스임을 알 수 있습니다. iexplore.exe의 pid는 2996입니다.
[메모리 포렌식] GrrCON 2015 #3 GrrCON #2에서 공격자가 AnyConnectInstaller.exe를 다운로드하도록 하였으므로, filescan 플러그인과 findstr 플러그인을 사용하여 AnyConnectInstaller.exe 문자열이 들어가 있는 파일들을 찾아줍니다. 그럼 위에서부터 AnyConnectInstaller.exe가 있는 경로들을 보여줍니다. 그럼 dumpfiles 플러그인을 통하여 해당하는 파일을 덤프해줍니다. -Q 옵션은 파일이 저장된 주소를 통하여 파일을 선택하겠다는 의미입니다. 위에서부터 덤프를 하며 VirusTotal 웹사이트에서 감염되었는지 확인해봅니다. 3df1cf00 주소에 저장된 프로그램이 바이러스에 감염된 것을 확인할 수 있습니다. 58개의 서비스에서 바이러스를 탐지하였습니다. 위와 같이 XTR..
[메모리 포렌식] GrrCON 2015 #2 GrrCON #1과 같은 파일이 주어집니다. GrrCON #1에서 구한 OUTLOOK.EXE 프로세스의 dump 내용을 확인해 보면 될 것 같습니다. KEY Format에 exe 형태의 실행프로그램이라는 힌트를 주었으니, .exe로 검색해 보았습니다. 누군가가 Mr.Wellick에게 보안을 위해 아래 링크를 다운받으라고 보낸 exe 파일을 확인할 수 있습니다.