https://otterctf.com/challenges
1 - What the password?
먼저 파일을 다운로드하고 압축을 풀어 imageinfo 명령어로 확인해보았다.
volatility 경로로 이동 → python vol.py -f "파일" imageinfo
vmem 파일이 win7SP1x64 환경에서 찍힌 것을 확인할 수 있다.
다음으로 hivelist 명령어를 이용해 어떤 레지스트리가 있는지, 각 레지스트리의 가상 메모리 주소는 무엇인지 알아냈다.
python vol.py -f "파일" --profile=[운영체제종류] hivelist
얻은 주소로, SYSTEM과 SAM을 조합하여 hashdump를 통해 윈도우 비밀번호를 추출할 수 있다.
python vol.py -f "파일" --profile=[운영체제종류] hashdump -y [SYSTEM하이브파일] -s [SAM하이브 파일]
위와 같이 암호화된 해시값으로 출력되고, 계정 정보를 확인할 수 있다.
패스워드가 시스템 LSA 암호에 저장되어 있을 수도 있기 때문에 lsadump 플러그인을 이용해 조회했다.
python vol.py -f "파일" --profile=[운영체제종류] lsadump
Flag: MortyIsReallyAnOtter
2 - General Info
IP 조회를 위해 netscan 명령어를 사용했다.
volatility 경로로 이동 → python vol.py -f "파일" --profile=[운영체제종류] netscan
IP: 192.168.202.131
다음으로 printkey 플러그인을 이용해 PC명을 확인해보았다.
PC명은 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ComputerName에 들어있다.
python vol.py -f "파일" --profile=[운영체제종류] printkey -o [hive 가상 주소] -K [얻고 싶은 키 위치]
PC name: WIN-LO6FAF3DTFE
3 - Play Time
pslist 플러그인을 사용해 프로세스를 확인했다.
LunarMS.exe 게임을 하는 것을 알 수 있다.
Game name: LunarMS
이제 서버 IP를 확인하기 위해 해당 프로세스를 findstr으로 조회했다.
Server IP: 77.102.199.102
4 - Name Game
yarascan 플러그인을 사용해 계정 이름을 확인했다.
python vol.py -f "파일" --profile=[운영체제종류] yarascan -Y "[탐지패턴]" -p [조사할 PID]
Flag: 0tt3r8r33z3
5 - Name Game 2
yara rules를 이용해 닉네임을 탐지했다.
python vol.py -f "파일" --profile=[운영체제종류] yarascan --yara-rules=[yararule] -p [프로세스 pid]
문제에서 알려준 시그니처를 yara rule로 변환하면 {64 [6-8] 40 06 [18-18] 5a 0c 00 00} 이다.
Flag: M0rtyL0L
6 - Silly Rick
copy & paste를 한다고 했으므로 클립보드에 정보가 남아있을 것이다.
따라서 clipboard 플러그인을 사용해 확인해보았다.
volatility 경로로 이동 → python vol.py -f "파일" --profile=[운영체제종류] clipboard
Flag: M@il_Pr0vid0rs
'FORENSIC > 문제 풀이' 카테고리의 다른 글
[2012 HTP PreQual] Low (0) | 2021.05.05 |
---|