교육받는곳에서 재미난걸 알려주어서 풀어보고 해답을 올리면 재미있겠다 싶어서 한번 해보려고 합니다.

    LMG security라는 곳에서 포렌식 콘테스트를 진행했었는데 그 콘테스트의 문제인지

    아니면 예외로 재미로 만든 퍼즐인지는 잘 모르겠습니다.

     

    하지만 풀어볼 가치는 충분하다 생각햐여 풀이를 진행하였습니다.

     

    문제 확인 & 패킷 확인

     

    일단 문제를 확인하고 그에 맞는 증거를 받아야 합니다.

    http://forensicscontest.com/puzzles

    여기서 모든 문제를 확인 할 수 있고 오늘은 1번 Ann’s Bad AIM을 풀어보겠습니다.

    문제를 가져왔습니다.

    영어라서 구글 번역기로 번역을 해보니 이렇게 나왔습니다.

    대충 추려보면

    1. Ann 이라는 직원이 스파이 같고 비밀 레시피에 접근 권한이 있음

    2. 오늘 비인가 노트북이 회사 무선 네트워크에 접속하여 Ann의 노트북과 통신

    3. Ann이 누구에게 무었을 보냈는지 알아내기

     

    3줄요약하면 요정도인 것 같습니다.

     

    증거 수집

    일단 증거인 패킷캡쳐 파일을 받아줍시다.

    열어보면 이렇게 회사에서 돌아다닌 패킷들이 있습니다.

    저에게 있는 단서라고는 일단 Ann의 노트북의 IP이니 일단 필터링을 해보겠습니다.

     

    ip.addr == 192.168.1.158

    위의 필터로 Ann의 IP를 필터링 하였습니다.

    Ann의 노트북이 64.12.24.50라는 IP와 통신을 한게 제일먼저 눈에띕니다.

    이 부분을 TCP Stream으로 확인해 보겠습니다.

    확인방법은 보고싶은 스트림 패킷의 우클릭 → Follow → TCP Stream 순으로 들어가시면 됩니다.

    여기서 보아하니 64.12.24.50은 IM 서버이고 Ann은 누군가와 대화하고 있습니다.

    일단 여기서 많은 답이 나오게 됩니다.

    1. Ann의 IM 친구의 이름은 무엇입니까?

    → ‘Sec558user1’ 이라는 유저의 닉네임이 빈도수가 많고 보낸걸 보니 이름은 ‘Sec558user1’입니다.

     

    2. 캡처 된 IM 대화의 첫 번째 댓글은 무엇입니까?

    → ‘Here's the secret recipe... I just downloaded it from the file server. Just copy to a thumb drive and you're good to go’ 여기까지가 댓글인 것 같습니다.

     

    3. Ann이 전송 한 파일의 이름은 무엇입니까?

    → 위의 스트림에서 확장자가 달려있고 추 후에 나올 다른스트림에서도 ‘recipe.docx’라는 파일이 자주 언급됩니다. 그리고 문제에서 레시피 접근권한이 있었다고 했으니 전송파일은 ‘recipe.docx’가 맞습니다.

     

    4. 추출하려는 파일의 매직 넘버는 무엇입니까 (처음 4 바이트)?

    → 파일 이름도 알았고 파일의 확장자명도 알았으니 시그니처도 알 수 있습니다.

    시그니처가 곧 매직넘버이니 시그니처를 찾으면 답을 알 수 있습니다.

    http://forensic-proof.com/archives/300 이 사이트에서 저는 시그니처를 찾았습니다.

    확인해보시면 docx의 파일 시그니처는 ‘50 4B 03 04’ 입니다.

    문제를 확인하면 4바이트만 쓰라고 되어있는데 시그니처는 단위가 16진수입니다.

    16진수는 위의 한 블록이 1바이트이기 때문에 정답은 위와 같은 ‘50 4B 03 04’입니다.

     

    일단 정답은 여기까지 추려볼수 있겠내요

    나머지 MD5sum과 레시피의 비법? 은 알아가보도록 합시다.

    일단 여기까지 구했으니 다음은 ‘recipe.docx’파일만 구하면 될 것 같습니다.

    다음 단서를 찾기위하여 다음 데이터 스트림을 보도록 하겠습니다.

    위를 보시면 회색의 패킷 두 개가 있습니다.

    TCP로 SYN → SYN/ACK → ACK 순으로 넘어가는 것 보니 TCP 세션을 맺은 것 같습니다.

    밑으로 계속 내려보니 TCP FIN flag가 보내졌습니다.

    세션을 여기서 끊은 것 보니 여기까지가 다음 데이터 스트림인 것 같습니다.

    여기까지의 TCP 스트림을 확인해 보겠습니다.

    일단 이렇게 보면 저는 아무것도 모르겠습니다.

    그렇지만 문제에서 보면 회사의 무선네트워크에 접속했다고하니 같은 네트워크 대역을 사용 할 것이고

    Ann이 접촉한 다른 같은 대역의 컴퓨터는 192.168.1.159 밖에 없었습니다.

    그리고 비 인가된 컴퓨터에 IM을 보냈다고 하니 위의 스트림이 보낸 IM이고 레시피라는걸 유추 할 수 있습니다.

     

    이 스트림에서는 파일을 추출하는 File Carving 기법을 사용하였습니다.

    일단 HxD에서 읽을 수 있도록 파일을 Raw 형태로 변환해 줍니다.

    그리고 아래의 Save as... 으로 파일을 저장하고 파일명은 지금은 중요하지 않으니 그냥 아무거나 써줍시다.

    이 파일에서 원래 파일을 추출하기 위해서는 ‘HxD’ 라는 툴이 필요합니다.

    HxD는 HEXeditor의 일종으로 HEXeditor는 16진수의 파일 내용을 분석, 편집 등을 수행 할 수 있습니다.

    https://mh-nexus.de/en/hxd/

    'HxD' 는위의 링크에서 다운받을 수 있습니다.

    에디터 설치 후 실행 한 뒤 아까 저장한 파일을 열어봅시다.

    파일의 시그니처는 파일의 가장 앞에 위치하는 특성을 가지고 있으므로 가장앞의 시그니처를 찾아보겠습니다.

     

    위의 정답에서 확인한 파일 시그니처 ‘50 4B 03 04’를 찾아봅시다.

    Ctlr+F를 누르면 찾기를 할 수 있습니다.

    16진수 값으로 바꾸고 검색을 해봅시다.

    찾아내면 가장 위의 검색값인 오프셋 200을 더블클릭 해주시면 그 위치로 갈 수 있습니다.

    그렇게 낮지 않은곳에 자리잡고 있었내요

     

    이제 파일의 시작이 되도록 시그니처 앞쪽의 값을 지워줍시다.

    표시 한 것처럼 시그니처가 0번째라인 맨 앞에 있으면 됩니다.

    이대로 파일을 저장하고 이름도 바꿔줍시다.

    MD5sum은 파일 내용중 하나라도 바뀌면 값이 아예 다른값이 되어버리니 이름도 맞춰줍시다.

    그리고 파일을 열어보면 일부를 읽을 수 없다고 하는데 복구해 준다고 하니 ‘예’를 누르고 넘어갑시다.

    그러면 이렇게 레시피가 나오게 됩니다.

    이걸로 6번 문제 답도 채울 수 있겠내요

     

    다음은 5번 문제 MD5sum입니다.

     

    다시 HxD를 실행시키고 이번에는 저장한 ‘recipe.docx’를 열어줍시다.

    그리고 위의 메뉴에서 분석 → 체크섬 → MD5 순으로 들어가면 MD5를 계산해 줍니다.

    체크섬 값은 ‘6D44A4953CAAEF5DC62CB9A5616CDB96’ 이내요

     

    정리하면 아래와 같습니다.

    1. Ann의 IM 친구의 이름은 무엇입니까?

    Sec558user1

     

    2. 캡처 된 IM 대화의 첫 번째 댓글은 무엇입니까?

    Here's the secret recipe... I just downloaded it from the file server. Just copy to a thumb drive and you're good to go

     

    3. Ann이 전송 한 파일의 이름은 무엇입니까?

    recipe.docx

     

    4. 추출하려는 파일의 매직 넘버는 무엇입니까 (처음 4 바이트)?

    50 4B 03 04

     

    5. 파일의 MD5sum은 무엇입니까?

    6D44A4953CAAEF5DC62CB9A5616CDB96

     

    6. 비법은 무엇입니까?

    Recipe for Disaster:

    1 serving

    Ingredients:

    4 cups sugar

    2 cups water

    In a medium saucepan, bring the water to a boil. Add sugar. Stir gently over low heat until sugar is fully dissolved. Remove the saucepan from heat. Allow to cool completely. Pour into gas tank. Repeat as necessary.

     

    이제 답을 맞춰 보겠습니다.

     

    오답 확인 및 풀이

     

    답을 맞춰보니 두 개 틀렸내요

    2번은 착각한 거라고 해도 5번은 아예 틀린 것 같습니다.

    여기서 약 30분에서 1시간 정도 해매고 정답을 찾아냈습니다.

     

    해답은 이렇습니다.

    사진을 보시면 와이어샤크에서 스트림을 다시본 사진입니다.

    표시한곳은 시그니처부분입니다.

    앞에보시면 시그니처 전에 빨간 배경이 있습니다.

    그리고 시그니처 앞부분은 모두 삭제 했었지요

    그래서 혹시 이 아래부분도 파일의 끝이 아닌 것이 아닐까 하여 이부분도 없애보기로 했습니다.

    저희는 HxD로 작업 할 것이기 때문에 다시 스트림을 Raw로 변환해서 확인해 보겠습니다.

    파일의 스트림의 끝의 바로 뒤에 ‘4f4654....’ 이렇게 있으니 다시한번 HxD에디터로 가서 찾아봅시다.

    검색 대상에 값을 넣고 검색을 하면

    이렇게 찾은 값이 나오게 됩니다.

    오른쪽에 text를 보아하니 와이어샤크와 똑같습니다.

    파일 스트림만을 남기기 위하여 이 부분을 지워주겠습니다.

    지워주고 난 뒤 다시 MD5sum을 확인해 봅시다.

    다행히도 정답과 똑같은 체크섬이 나왔습니다.

    저장하고 docx파일도 다시 들어가보면 오류없이 바로 들어가 보는 것을 알 수 있습니다.

     

    아마도 저 빨간 배경의 스트림은 전송헤더와 아래는 전송 풋터가 아닐까 예상은 할 수 있지만 잘 모르겠내요

     

     

    문제를 다 풀고나니 굉장히 몸에 전율이 느껴지고 재미도있고 성취감도 있는 문제였었습니다.

    가끔식 시간을 들여 풀어보면 재미있을것같습니다.

     

    아직도 의문인 것이 많지만 검색해도 답이 잘 나오지 않아 나중에 시간을 들여 확인해 봐야겠습니다.

     

    이상입니다!

     

    '포렌식 > LMG Forensicscontest Puzzle' 카테고리의 다른 글

    2. Ann Skips Bail / SMTP 패킷 분석  (0) 2020.12.03
    '포렌식/LMG Forensicscontest Puzzle' 관련 글 more
    Posted by Ralreu