ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Memory Forensics - 아티팩트 탐색 (MemLabs Lab 4)
    DreamHack/포렌식 2025. 1. 9. 17:17

    들어가기 앞서

    더보기

    이번 문제는 시스템이 해킹 당하고 파일들이 날라갔다.
    그래서 파일을 복구하는 것이 문제인데

    중요한 키워드는 중요한 파일이라는 저 단어이다.

    딱 보자마자 Important 라는 단어를 기반으로 흔적을 찾아내면 될 것 같다.
    그리고 삭제된 파일 복구이므로, Recycle.bin 이랑 NTFS Log Tracker 에 필요한 파일들로 삭제 행위 분석 등

    이전까지 배웠던 윈도우 포렌식 내용을 모두 사용해야할듯했다.

    1. 플래그 풀이

    더보기

    일단 가장 먼저 Important 라는 키워드로 filescan.log를 분석하려고 했다.

    근데 왜 인지 모르겠는데 지난번처럼 강제로 cp949 에서는 인코딩할 수 없는 문자들 때문에
    마지막에 있는 단서들을 뒤늦게 풀이를 보고 찾았다.

    방향은 맞았는데 2프로 부족해서 못 찾았다...

    일단 시간순으로 내가 찾아낸 흔적으로는 

    가장 먼저 pslist에서 찾아냈다.

     원래 StickyNote.exe 인데, StikyNot.exe로 표기되어 있는 것으로 미루어보아
    저건 악성 코드로 보인다.
    그래서 filescan.log에서 StickyNote가 남기는 아티팩트로 plum.sqlite 를 검색해보았지만 나오지 않았다.

    이후로 filescan.log 쪽에서 important 라는 키워드로 검색해봤지만 안나와서 풀이를 보았는데,

    원래 filescan.log에서 나왔어야했다.
    근데 내가 지난번에 사용한 -x 옵션으로 강제로 뽑아내질 않아서 오류 때문에 특정 오프셋 이후로 파일들이 기록에 남지 않았던 것이다.

     python -X utf8 C:\Users\R\Desktop\도구\volatility3-develop\vol.py -c config.json -f .\MemoryDump_Lab4.raw windows.filescan > filescan.log 을 이용해서 강제로 utf-8 로 인코딩하여 로그를 만들어주고 검색해보면?

    important.txt와 important.lnk 2개의 파일이 나온다.

    important.txt의 물리주소를 따서 추출해주면 

    important.txt는 나오지않고
    important.lnk는 나온다.

    삭제되어서 그런듯하다.

    여기서 포기하기엔 이르다.

    이전에 내가 MFT의 $DATA 영역에서 데이터를 찾아낸 내용이 있다.

    https://wintersnowaaa.tistory.com/15

     

    MBR - NTFS($DATA, Non-Resident Header)

    그동안 디지털포렌식 2급 필기 시험 공부하느라 공부를 못 했다...이제 드디어 파일시스템 공부를 다시 잡을 수 있겠구나 기쁘다.오랜만에 보니까 가물가물 기억이 나긴한데 다시 봐보자.지난번

    wintersnowaaa.tistory.com

    이 글의 내용을 보면 이해가 빠르다.

    filescan에서 $MFT 파일을 검색해보면 총 4개가 나오게된다. ($MFTMirr는 제외)

    4개가 나온 이유는 메모리에서 $MFT 파일을 계속 사용하다가 타임스탬프마다 찍혀서 나온듯하다.

    $MFT 4개를 모두 추출해서 확인해보면 될듯하다.

    가장 큰 $MFT 파일을 기준으로 찾아내면 좋을듯하다.

    $MFT 파일은 파일 내에 $DATA 속성을 가지며 Resident 라면 데이터도 함께 가지면, Non-Resident 라면 데이터를 다른 클러스터에 저장하면 해당 클러스터의 오프셋 정보가 있는 클러스터런 구조를 표기한다.
    그리고 $DATA 속성과 함께 대부분의 파일은 $FILE_NAME 속성을 가지므로 

    $FILE_NAME 으로 Important.txt 를 찾아내고
    그 인근에 있는 $DATA 속성으로 파일 내용을 확인하면 된다.

    $MFT 파일을 HxD로 열어주면 익숙한 구조가 보인다.

    여기에서 이제 important 키워드 검색을 해보자.

    Windows 파일 시스템에서 파일을 저장할때 매번 그렇진 않은데 종종 파일명을 utf-8로 저장하는 경우도 있고,

    utf-16으로 저장하는 경우도 있어서 문자 데이터 다음에 0x00 이 들어가있는 경우가 있었다.

    그래서 utf-16으로도 검색해보면 $DATA 영역에 플래그값이 보인다. 

    개행을 넣어서 데이터가 띄엄띄엄 있게 만들어놨따

    다 합쳐놓으면

    inctf{1_is_n0t_EQu4l_7o_2_bUt_th1s_d0s3nt_m4ke_s3ns3}

     

Designed by Tistory.