CTF/N0named CTF

[N0Named CTF - Write Up[B]] 유출된 자료 거래 사건 [2]

Ron Weasley 2021. 9. 20. 10:58

저번 시간에 유출된 자료 거래 사건 [1]에 대해서 풀어 보았습니다. [1]에서는 USB연결 로그를 확인하기 위해 윈도우에서는 "HKLM\SOFTWARE\Microsoft\Windows Portable Devices\Devices Note" 에 기록이 남는다는걸 공부했고, 해당 하이브 파일은 "Windows\system32\config" 에 SOFTWARE라는 명칭으로 존재한다고 했습니다. 그리고 레지스트리 분석기를 통해서 Devices Note로 가면 몇 개가 연결되어있는지 알 수 있고, 장치 클래스 ID로 확인이 가능했습니다.

이번 시간에는 유출된 자료 거래 사건 [2]에 대해서 풀이를 해보겠습니다.

문제를 먼저 확인해보겠습니다.

저번 시간에서 USB의 흔적을 찾았으나 우리가 찾은 USB는 이미 산산조각이 나있었고, 다른 USB에 파일을 옮겼으니 파일을 입수한 경로를 찾아서 "의심되는 파일"을 찾는 문제입니다. 그리고 "파일의 이름 변경" 되었다는 사실도 있으니 잘 생각하고 문제를 풉시다.

먼저 저번 시간에 FTK Imager로 파일을 열었습니다. 저번 시간에 설명한것이기 때문에 왜 Partition2를 분석하는지는 설명하지 않겠습니다.

어떠한 저장매체를 포렌식을 하든 가장 중요한것이 로그 기록을 분석하는것입니다. 이유는 다들 아시겠지만 로그는 컴퓨터로 어떤 행위를 했는지에 대한 정보가 들어있는곳입니다. 실제로 범죄자가 사용했던 컴퓨터의 아티팩트를 찾는것이죠!! 하지만 로그는 너무 많기 때문에 하나하나 다 분석하는것은 시간적 여유가 없기 때문에 다 분석하는것은 하지 못합니다.

그럼 어떤 로그를 봐야할 지 고민이 되실텐데 문제를 보시면 "파일을 입수한 경로"를 찾아라는 힌트가 존재합니다. 이 말을 해석하자면 파일은 메일로 받던지 인터넷을 통해서 다운로드를 하는것인데, 그럼 인터넷을 이용해서 파일을 가져 왔다는것이죠! 그럼 우리는 인터넷 기록을 살펴봅시다.

"root/Users/username/AppData/Local/Google/Chrome/User Data/Defalut/History" 경로를 찾아가면 History파일이 존재합니다.

설명에 앞서 경로를 어떻게 찾는지 궁금해 하실분이 계신데 조금이나마 설명을 드리자면, 사용자가 컴퓨터를 만들 때 지정했던 username까지는 찾아가는데 무리가 없었을겁니다. 왜냐하면 a라는 사용자의 아티팩트를 찾아야 하는데 b라는 사용자의 파일을 찾을 이유는 없으니까 username은 현재 컴퓨터의 사용자를 찾으면되고, AppData폴더는 세 개의 폴더가 존재하는데 그중 Local폴더는 단일 컴퓨터의 특정한 데이터가 저장이 되는곳입니다. 그래서 들어갔더니 웹 브라우저인 구글이 있었고, 안에 크롬을 들어가서 사용자가 사용한 데이터를 봐야하니까 User Data 그 다음 Default로 이동을 하시면 History파일을 찾을 수 있었습니다. 너무 길게 얘기해서 죄송합니다ㅎㅎ

이제 History파일을 Export(내보내기)해서 분석을 해보겠습니다. (분석툴은 DB Browser for SQLite입니다.)

우리는 해당 사용자가 들어갔던 url을 분석을 한 결과 수상한 파일을 구글 드라이브에서 다운받은걸 확인할 수 있었습니다.Confidential_Doc.hwp 파일명부터 심상치가 않네요...비밀스러운 한글파일..!

그럼 우리는 어떤 파일인지는 알았고, 다음 문제인 변경한 파일명을 찾아야합니다. 우리는 언제나 정보를 찾기 위해선 로그파일을 분석해야 합니다. 파일 시스템 로그 분석을 하기 위해선 $Logfile, $UsnJrnl$J, $MFT 로그 파일이 필요합니다.

각각 어떤 역할을 하는지 간략하게 살펴보겠습니다.
$Logfile = 시스템 비 정상 동작을 대비하기 위한 트랜잭션 로그로 파일을 생성/삭제/수정/파일명 변경 등이 기록.
$UsnJrnl$J = 파일이나 디렉터리의 속성 변경 내용을 기록.
$MFT = NFTS파일 시스템에서 파일 크기, 작성 일자, 사용 권한, 데이터 내용 같이 파일에 대한 모든 정보를 저장.

추출을 하기 위해선 파일의 경로를 알아야합니다. [root] 경로에서 $Logfile, $MFT 파일을 추출할 수 있고,
[root]\Extend\$UsnJrnl\$J 파일을 추출할 수 있습니다. 그림으로 보시면 이해가 되실겁니다.

추출을 했다고 가정하고, 이젠 NTFS Log Tracker를 가지고 파싱을 해줍니다.

형광펜으로 색칠을 한 곳에다가 파일명에 따라서 넣어주시면 됩니다. 그럼 db파일이 하나 생성이 됩니다.
생성된 db파일을 DB Browser for SQLite를 이용해서 분석을 해봅시다. (검색창에 Confidential_Doc.hwp를 입력)

쭉 검색해서 내리다보면 파일명이 변경된 것을 확인할 수 있습니다. Confidental_Doc.hwp -> todaysmemo.hwp
그럼 FLAG 형식에 맞춰서 입력을 해서 푸시면 됩니다. 이번 시간에도 공부하시느라 고생하셨습니다!!!