티스토리 뷰

CTF/MEMLABS

CTF - A New World

Noctis41 2024. 6. 3. 15:29

해당 문제는 Github의 MemLabs의 A New World 문제에 대한 풀이입니다.


1. Challenge description

One of the clients of our company, lost the access to his system due to an unknown error. He is supposedly a very popular "environmental" activist. As a part of the investigation, he told us that his go to applications are browsers, his password managers etc. We hope that you can dig into this memory dump and find his important stuff and give it back to us.

Note: This challenge is composed of 3 flags.

 

2. 단서

  • 그는 매우 인기있는 환경운동가이다.
  • 그는 자신이 사용하는 애플리케이션이 브라우저, 비밀번호 관리자 등이라고 말했다.

3. 풀이

해당 문제는 volatility를 통해 분서을 해야 하므로 해당 이미지의 정보를 확인한다.

명령어: .\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone.exe -f .\MemLabs-Lab2\MemoryDump_Lab2.raw imageinfo

imageinfo

imageinfo에서는 많은 Profile을 제안해준다. 하지만 크게 생각할 것 없이 가장 처음 것을 사용해준다.

 

다음은 pslist를 통해 실행중인 프로세스를 확인해준다. 나는 .log파일 형식으로 만들어 보기 편하게 만든다.

명령어: .\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone.exe -f .\MemLabs-Lab2\MemoryDump_Lab2.raw --profile=Win7SP1x64 pslist > pslist.log

pslist

위 pslist를 통해 단서중 '자신이 사용하는 애플리케이션이 브라우저와 비밀번호 관리자라고 말하였다.'에서 chrome.exe는 브라우저인 것 같고 KeePass.exe는 안전한 방법으로 암호를 관리하는데 도움이 되는 무료 오픈 소스 암호 관리자인 것을 알 수 있었다.

 

keepass.exe 부터 조사를 해보면 keepass는 하나의 데이터베이스 파일에 모든 암호를 넣어두고, 마스터 암호 or 키 파일로 잠그는 시스템이다. 

KeePass는 .kdbx 확장자를 사용하여 데이터베이스에 비밀번호를 저장 하고 마스터 비밀번호로 찾는다.

그렇다면 .kdbx로 된 데이터베이스가 해당 pc에 있는지 찾아보아야 할 것 같다.

명령어: .\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone.exe -f .\MemLabs-Lab2\MemoryDump_Lab2.raw --profile=Win7SP1x64 filescan > filescan.log

`

filescan

이것의 오프셋 값을 가지고 파일 덤프를 해보자.

명령어: .\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone.exe -f .\MemLabs-Lab2\MemoryDump_Lab2.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000003fb112a0 -D .\memlabs\

 

이제 마스터 암호를 찾아야하는데 아까 추출한 filescan.log를 보다가 Alissa가 많이 있는 것을 볼 수 있었다.

그래서 Alissa를 검색해서 봐보니 Password.png가 있는 것을 볼 수 있었다. 이것을 추출해보자.

filescan

명령어: .\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone.exe -f .\MemLabs-Lab2\MemoryDump_Lab2.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000003fce1c70 -D .\memlabs\

 

추출된 파일의 확장자를 png로 바꾸고 열어보니 포스터 하나가 있었고 우측 하단을 보면 패스워드가 있는것을 볼 수 있다.

이젠 keepass를 직접 설치해서 마지막 플래그를 찾아야 한다.

설치 후 추출된 데이터베이스 확장자를 .kdbx 변경 후 열고 패스워드를 넣고 Recycle Bin FLAG 부분의 패스워드가 플래그 값이다.

KeePass

 

다음으로는 Chrome.exe를 조사해야한다.

아까 추출한 filescan에서 chrome history를 찾아야 한다. 그래서 chrome의 history 경로를 검색해주었다.

filescan

여기서 뒤에 그냥 History를 file dump를 해준다.

명령어: .\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone.exe -f .\MemLabs-Lab2\MemoryDump_Lab2.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000003fcfb1d0 -D .\memlabs\

후에 확장자를 .db로 변경 후 SQLite를 통해 열어준다.

url 부분으로 가보니 mega 파일 공유 사이트에 접속한 것을 볼 수 있었다. 여기서 무엇을 다운받았는지 해당 경로로 접속해보자.

SQLLite
mega.nz

important.zip을 다운 후 지난번에 사용했던 WinRAR에 넣어 확인해보니 패스워드가 필요하고 패스워드는 Lab-1문제의 stage 3의 flag값을 sha1 해시로 계산을 해야하는 나온다.

WinRAR

 

그래서 지난번 Lab-1의 stage 3의 플래그 값은 flag{w3l_3rd_stage_was_easy}이다. 이것을 그대로 CyberChef에 sha1에 넣으니 아래와 같이 나왔다. 

CyberChef

저 Output 값을 그대로 패스워드로 넣으니 풀리는 것을 볼 수 있었다.

WinRAR

이제 마지막으로 첫 단서인 그는 환경운동가인 것을 주목해야한다. Lab 0문제에서도 동일하게 나왔던 것으로 환경변수를 살펴보면 된다. 

envars.log

뭔가 인코딩 되어있어보이는 문자가 있었다. 이것을 base64로 디코딩 해보자

decoding

 

'CTF > MEMLABS' 카테고리의 다른 글

CTF - Black Tuesday  (1) 2024.06.12
CTF - Obsession  (2) 2024.06.04
CTF - The Evil's Den  (0) 2024.06.03
CTF - Beginner's Luck  (1) 2024.06.02
CTF - Never Too Late Mister  (0) 2024.05.07