Chapter 3. 컴퓨터! 커피 한 잔 마시고 올게, 전부 정리해놔! | 6개월 치 업무를 하...Byunghyun Ban
* SlideShare 오류로 빈 화면이 나올 경우 다운로드하여 이용해주시기 바랍니다.
<6개월 치 업무를 하루 만에 끝내는 업무 자동화, 2020, 생능출판사>의 수업용 PPT 자료입니다. 교재로 활용하실 경우 출판사를 통해 한 학기 분량의 PPT를 제공받으실 수 있습니다.
BSides Delhi CTF 2018 [Never Too Late Mister (Forensics 200pts)] WriteUp
1. BSides Delhi CTF 2018 WriteUp
Never Too Late Mister (Forensics 200points)
by 이 세 한 (Alchemic)
2. 2
BSides Delhi CTF 2018 WriteUp [Never Too Late Mister (Forensics 200points)]
다음과 같이 문제가 주어집니다.
문제의 설명으로 보았을 때, 메모리 덤프를 분석하는 내용으로 보여집니다.
3. 문제 파일은 압축 파일로 주어지며, 압축을 해제하면 다음과 같은 다양한 파일을 확인할 수
있습니다.
메모리 덤프 파일인 “Challenge.raw” 파일을 확인할 수 있습니다.
이제 [volatility]를 이용하여 메모리 덤프 파일을 분석해보도록 하겠습니다.
우선, 어떤 환경에서 만들어진 메모리 덤프인지 확인을 해보도록 하겠습니다.
3
BSides Delhi CTF 2018 WriteUp [Never Too Late Mister (Forensics 200points)]
4. 4
BSides Delhi CTF 2018 WriteUp [Never Too Late Mister (Forensics 200points)]
확인 결과, 본 문제에 주어진 메모리 덤프 파일은 Windows 7 Service Pack 1 x86 환경에서
만들어진 메모리 덤프 파일인 것을 확인할 수 있습니다.
이제 어떤 환경인지를 확인하였으므로, [volatility]를 이용하여 계속해서 분석을 진행하도록
하겠습니다.
우선, 어떤 명령 히스토리가 있는지를 보기 위해 ‘cmdscan’ 플러그인을 사용해보도록
하겠습니다.
5. 5
BSides Delhi CTF 2018 WriteUp [Never Too Late Mister (Forensics 200points)]
Python 스크립트를 실행한 명령 히스토리를 발견하게 되었습니다.
‘consoles’ 플러그인으로 해당 스크립트가 어떤 결과를 나타내는지를 확인해보도록
하겠습니다.
6. 6
BSides Delhi CTF 2018 WriteUp [Never Too Late Mister (Forensics 200points)]
파이썬 스크립트를 실행한 결과, ‘335d366f5d6031767631707f’ 라는 값이 나타난 것을
확인할 수 있습니다. 이는 HEX 문자열로 보여집니다.
하지만 이 데이터만으로는 무엇인지 알 수 없으므로 더 분석을 진행해보도록 하겠습니다.
7. 7
BSides Delhi CTF 2018 WriteUp [Never Too Late Mister (Forensics 200points)]
계속 분석을 진행하다가 ‘envars’ 플러그인을 이용하여 프로세스 환경 변수를 조사하다가
특이한 변수를 발견하게 되었습니다.
‘conhost.exe’(2424) 프로세스에서 “Thanos” 라는 변수를 확인하게 되었고, 그 변수값으로
“xor and password” 라는 문자열을 확인할 수 있습니다.
이는 문제를 해결하기 위한 힌트로 보여집니다.
8. 8
BSides Delhi CTF 2018 WriteUp [Never Too Late Mister (Forensics 200points)]
하지만 힌트를 보았을 때, 패스워드의 경우 Windows User Password를 뜻하는 것으로
파악되며, XOR의 경우에는 알 수 없으므로 직접 앞서 확인한 파이썬 스크립트 파일인
“demon.py.txt” 파일을 조사하도록 하겠습니다.
‘mftparser’ 플러그인과 grep 명령어를 이용하여 “demon.py.txt” 파일의 내용이 포함된
MFT(Master File Table) 영역의 내용을 확인하였고, 해당 offset과 데이터 일부를 찾아낼
수 있었습니다.
9. 9
BSides Delhi CTF 2018 WriteUp [Never Too Late Mister (Forensics 200points)]
MFT(Master File Table)는 윈도우 NT 계열 운영체제의 파일 시스템인 NTFS의 중요한 영역
입니다.
NTFS 볼륨의 모든 파일에 대하여 적어도 하나의 엔트리를 가지고 있으며, 파일 크기, 작성
일자, 사용 권한, 데이터 내용 등 파일에 관한 모든 정보가 저장되고 관리되는 영역이라고 볼 수
있습니다.
[Reference: “NTFS Master File Table (MFT) Structure”, http://www.ntfs.com/ntfs-mft.htm]
10. 10
BSides Delhi CTF 2018 WriteUp [Never Too Late Mister (Forensics 200points)]
Python script 파일 내용 확인
앞서 확인된 offset (0x7ca3c00) 을 이용하여 MFT 영역 조사
파이썬 스크립트의 내용을 확인할 수 있습니다!
앞서 확인된 힌트인 ‘xor and password’에서 XOR 힌트의 정답을 발견하였습니다!
11. 11
BSides Delhi CTF 2018 WriteUp [Never Too Late Mister (Forensics 200points)]
[volatility]의 ‘consoles’ 플러그인을 이용하여 확인한 HEX 문자열과 같은 값이 출력되는
것을 확인할 수 있습니다.
이로써 flag의 일부는 “1_4m_b3tt3r}” 인 것을 알 수 있습니다.
이제 flag의 나머지 부분을 찾아야 합니다.
힌트에서 “password” 라는 힌트를 보았으므로, Windows User Password 를 확인해보도록
하겠습니다.
12. 12
BSides Delhi CTF 2018 WriteUp [Never Too Late Mister (Forensics 200points)]
‘hashdump’ 플러그인을 이용하여 패스워드 해쉬 덤프를 확인해보도록 하겠습니다.
User는 ‘hello’ 이며, 패스워드는 NTLM Hash로 출력되는 것을 확인할 수 있습니다.
이를 crack 하기 위해 ‘mimikatz’ 플러그인을 사용하도록 하겠습니다. (mimikatz.py)
패스워드 확인 결과 flag의 다른 부분을 찾을 수 있습니다!
The flag is... flag{you_are_good_but1_4m_b3tt3r}