F-INSIGHT에서 발표했던 발표자료입니다.



Deep in the artifacts #1.pdf


저작자 표시 비영리 변경 금지
신고
  1. 오정훈 2017.03.13 19:28 신고

    좋은 자료 감사합니다~^^

  2. nill 2017.04.05 17:20 신고

    좋은자료감사합니다
    uuid가 레지스트리에 존재하나요?
    아무리 찾아도 없네요;;

    • Favicon of http://maj3sty.tistory.com BlogIcon MaJ3stY 2017.04.07 17:58 신고

      UUID 형태의 값들은 많이 존재하지만, UUID라고 명확하게 명시되어 있는 단일 값은 존재하지 않습니다.

포렌식을 전문으로 연구하는 For.MD Team에서 배포하는 첫 번째 문서 입니다.





[For.MD] Torrent Forensics.pdf


저작자 표시 비영리 변경 금지
신고
  1. BlogIcon 트라 2013.09.24 23:36 신고

    문서 잘 보겠습니다 ^^

    • Favicon of http://maj3sty.tistory.com BlogIcon MaJ3stY 2013.09.26 22:47 신고

      감사합니다 ㅎ

      페북으로도 연락을 하면 참 좋을텐데 ㅠㅠ..

  2. 나그네 2013.11.14 16:40 신고

    포렌식분야에 관심이 많아서 검색하다가 우연히 찾게되었는데 문서는 잘보았습니다.
    문서를 보면서 아쉬운 점은 결론부분에 언급하신 수사대상에 대한 기준이 정확하지 않고 억울한 피해자가 몇몇 발생한다고 하셨는데 배포자료인 만큼 신중을 기하셔서 작성하여 주셨으면 합니다.
    수사기관은 법률위반을 판단하여 자체적인 기준을 수립하고 수사를 진행합니다.
    그리고 저작권법상 토렌트 사용자는 다운로더 이면서 동시에 업로더가 되기때문에 저작권법을 위반한 사용자 입니다 법위반에 경중은 있겠으나 토렌트 사용자가 수사를 받는것이 억울한 피해자 일까요?
    배포 자료인 만큼 객관적 사실만을 전달해주셨으면 합니다.

    • Favicon of http://maj3sty.tistory.com BlogIcon MaJ3stY 2013.11.14 20:43 신고

      의견 감사합니다 :)

      아무래도 공부하는 입장이다보니 다소 여러 입장을 고려하지 못한면도 있었네요.

      다음부턴 조금 더 신중하게 여러가지 면을 생각하고 문서 작성과 배포를 하도록 하겠습니다.

      다시 한번 감사드립니다 ㅎ

제가 집필한 '디지털 포렌식의 세계' 책이 문화체육관광부가 선정한 2013년도 우수학술도서로 선정되었습니다.


다시 한번 많은 관심과 구매(?) 감사합니다 :)





문화체육관광부에서 800만원 어치의 책을 구매 해 전국 도서관에 배부한다고 하니 대부분 도서관에서 접하실 수 있으실 듯 합니다.


아래는 원 문서입니다.



선정도서 목록.pdf


저작자 표시 비영리 변경 금지
신고

정말 얼마만에 블로그에 글을 올리는지 모르겠다. 간간히 페이스북으로 지인분들의 소식과 올려주시는 링크들을 통해 보안쪽과 포렌식쪽의 소식은 듣고 있었지만 사실 한번 훅 훑고 말았던지라 현재 내게 남은 링크에 대한 기억은 거의 없는 편이다... ㅠㅠ

얼마전 카톨릭대학교의 보안동아리인 CAT Security와 홍익대학교의 HUST 대회가 개최 되었었는데 이번 글에서 CAT Security에서 출제한 Forensic 1번 문제를 풀이 해 볼 생각이다.

국내 대학교 동아리에서 여는 대회나 해커 커뮤니티에서 개최하는 대회들은 그 문제들을 구하기가 쉽지 않아 아는 지인분을 통해 문제들을 구해 풀어보았다. 사실 문제 풀이에 대한 포스팅은 하지 않으려 했으나 문제를 풀고 보안프로젝트에 올라온 어떤 분의 풀이보고서를 보니 Forensic 문제를 대부분 게싱이나 삽질(?)에 의해서 푼 흔적이 많이 보여 Forensic 관점에서 해당 문제를 어떻게 보아야 하고 어떻게 풀어야 하는지에 대해 한번 기술해 보려 이렇게 글을 쓰게 되었다.


사설이 길었다! 바로 풀이를 시작해 보도록 하겠다.


먼저 문제를 살펴보자.


Find the Key :) 


문제 한번 정말 간단하다! 무작정 키를 찾으라는 이런 문제는 문제를 풀이하는 입장에서 보면 정말 황당하고 막막한 문제가 아닐 수 없다. 일단 문제 파일에는 확장자가 붙여져 있지 않으므로 리눅스 계열에 있는 file 명령으로 해당 파일이 어떤 파일인지 파악해 보면 쉽게 어떤 파일인지 파악 할 수 있다.


[그림 1 - 파일 종류 확인]


파일 종류를 확인했더니 FAT 32라고 알려준다. 그럼 이제 무엇을 해야 할까? 사실 여기서부터는 여러가지 방향이 있다. 이미징 파일이니 바로 FTK Imager, EnCase 등으로 분석을 할 수도 있고 현재 파일에 속해 있는 키 값을 문자열 검색으로 찾아 볼 수도 있다.

나는 후자를 선택하여 strings로 문자열을 먼저 검색해보도록 하겠다.


[그림 2 - 문자열 검색]


문자열 검색 결과 마지막을 보면 뭔자 알 수 없는 문자열들이 보이는데, 이는 퍼지해시 툴로 많이 알려진 ssdeep의 출력 값이다.

여기서 ssdeep를 한번이라도 사용 해 본 사람이라면 해당 해시 값을 이용해 무엇을 할 수 있는지 알 수 있을 것이다. 일단 이부분에 대해서는 조금 더 뒤에 이야기 하도록 하겠다. 일단 저 문자열을 기억해 두도록하자.


그럼 이제 해당 파일을 FTK Imager 등으로 열고 안에 무슨 파일들이 존재하는지 살펴보도록 하자.


[그림 3 - 문제파일의 내용]


[그림 3]에서는 모두 보이지 않지만, 모두 png 파일 포맷의 이미지 파일들이 잔뜩 들어 있다. 간혹 정상적으로 보이는 이미지도 있고 안보이는 이미지도 있는데, 이는 왜 그런지 해당 파일들을 모두 Export 해보면 알 수 있다.


[그림 4 - 정상적으로 보이지 않는 이유]


보이지 않는 파일들의 속성을 보면 너비와 높이가 모두 1픽셀로 수정되어 있어 정상적으로 열려도 우리들 눈에 보이지 않는 것이다. 여기서 대부분의 사람들은 해당 파일들이 key와 관계가 있다는 것을 직감하고 1픽셀로 수정 된 모든 파일들을 아까 보았던 ssdeep 문자열에서 512*384를 생각해 픽셀을 해당 크기로 수정하여 문제를 풀었을 것이다.(추측일 뿐입니다.)

물론 그렇게 해도 1픽셀로 수정되어 있는 이미지는 유한정하기 때문에 key와 관련되어 있다면 얼마 시간이 지나지 않아 풀 수 있다. 하지만 문제 출제자의 의도는 그렇지 않다는 것이 현재 내 생각이다. 이런 방법으로 풀기 원했다면 힌트아닌 힌트로 ssdeep 출력 값을 넣어놨을리 없기 때문이다. 

문제 출제자가 공들여 ssdeep 출력 값을 넣어두었으니 나는 그것을 이용해 풀어보도록 하겠다. 먼저 txt 파일등에 해당 문자열을 넣어둔다.


[그림 5 - ssdeep 출력 값을 txt파일에 저장]


그 후 해당 해시 값과 비슷한 해시 값을 가지고 있는 파일을 위 이미지 목록에서 찾기 위해 ssdeep를 사용하자. ssdeep는 지정한 해시 값과 비슷한 해시 값을 찾아 그 유사율을 체크하고 사용자에게 그 유사율을 출력해주는 기능을 가지고 있다.



[그림 6 - ssdeep가 출력한 해시 유사율]


ssdeep는 지정해 준 해시 값과 jukrptdjdy.png의 해시 값이 99% 일치한다고 알려주었다.(99%의 이유는 픽셀 오프셋이 수정되었기 때문) 실제로 해당 파일을 보면 1픽셀로 수정되어 있는 수상한 파일이다.


[그림 7 - ssdeep가 찾아준 수상한 파일]


이제 해당 파일을 원본파일이름에 명시 된 512*384 크기로 수정을 해주자. 수정은 png 파일 포맷을 보고 하면 되니 이 부분은 생략하도록 하겠다. 수정을 하면 다음과 같은 이미지를 볼 수 있다.


[그림 8 - 키 값이 적혀 있는 이미지 파일]


드디어 문제에서 찾으라던 키 값을 찾았다. 사실 어려운 문제도 아니고 풀이 방법도 어렵지 않기 때문에 출제자 역시 해당 문제를 레벨 1로 두었었으리라 생각된다. 하지만 출제자도 포렌식을 공부하는 사람이었기에, 풀이하는 사람들이 포렌식에서 유용하게 사용하는 해시 값에 대해 조금 더 깊이 있고 넓은 지식을 가지길 원해 이런 문제를 출제 한 것이 아닌가라는 생각해 본다. 아님 말고 :-)


저작자 표시 비영리 변경 금지
신고

'[+] Hacking > [-] Challenge Report' 카테고리의 다른 글

OverTheWire Natas All Clear  (0) 2013.06.24
pCTF 2013 Forensic 150점 풀이  (0) 2013.04.30
CAT Security Forensic 1 Write-Up  (2) 2012.12.07
SANS Forensics Puzzle 10 Write up  (6) 2012.10.14
exploit-exercises Nebula - Level05  (0) 2012.07.27
  1. 2013.07.11 15:02

    비밀댓글입니다

    • Favicon of http://maj3sty.tistory.com BlogIcon MaJ3stY 2013.07.12 21:49 신고

      오 예상하지 못했던 댓글이네요 ㅎㅎ

      방문해주셔서 감사합니다 :)

Windows 8이전 버전에서는 크래시 덤프의 종류를 일반적으로 작은 메모리 덤프, 커널 메모리 덤프, 전체 메모리 덤프(Windows 7 에서는 존재하지 않음)라고 말할 수 있었다. 하지만 Windows 8 버전에서부터는 3가지 덤프 종류 외에 "자동 메모리 덤프"라는 종류가 하나 더 추가되었다. 또 자동 메모리 덤프는 Windows 8의 기본 크래시 덤프로 설정되어 있다.


[그림 1 - Windows 8의 크래시 덤프 설정 대화상자]


새롭게 추가 된 자동 메모리 덤프를 새로운 크래시 덤프의 종류로 생각할 수도 있지만, 사실 자동 메모리 덤프의 내용을 보면 새롭지 않다는 것을 알 수 있다. 자동 메모리 덤프가 수행되면 커널 메모리 덤프와 동일한 내용을 pagefile.sys에 저장하고 그 내용을 토대로 크래시덤프 파일을 생성한다. 즉, 커널 메모리 덤프와 결과물이 동일하다는 것이다. 그렇다면 무엇이 두 종류를 구분짓게 하였을까?


자동 메모리 덤프를 제외한 기존의 덤프 종류들은 pagefile.sys를 생성 할 때 메모리의 크기와 동일한 pagefile을 생성했었지만 자동 메모리 덤프는 평상시에 최소한의 크기인 pagefile을 생성해 두었다가 크래시가 일어났을 때 필요한 정보들을 pagefile에 저장하기 위해 pagefile의 크기를 늘려 메모리 내용을 저장하고 크래시 덤프 파일을 생성한다. 

이렇게 pagefile의 크기를 동적으로 설정하는 이유는 요즘 각광받고 있는 SSD나 메모리가 많은 서버에서 디스크 공간을 비효율적으로 많이 차지하는 pagefile의 크기를 줄여보고자 했기 때문이다. 특히 Windows 8은 태블릿 PC에서 주로 구동되도록 설계되었기 때문에 비효율적으로 디스크의 용량을 차지하는 pagefile의 크기를 동적으로 하여 디스크 용량의 효율성을 증대시키고자 자동 메모리 덤프를 기본 옵션으로 채택했을 것이다.


그런데, 아이러니 하게도 평상시에는 pagefile을 최소화하여 디스크의 용량을 확보하는 반면, 크래시등으로 인해 크래시 덤프를 생성할 일이 생기면 pagefile은 메모리의 크기 보다 조금 더 크게 늘어난다. 그리고 크래시 덤프파일을 이용 해 문제가 해결 되면 일정기간 후에 pagefile의 크기를 다시 최소화 시킨다. 즉, 크래시가 자주 일어난다면 디스크의 용량은 확보받기 어렵다는 말이 되는데, 이를 해결하기 위해 다음 레지스트 키에 존재하는 LastCrashTime value의 값을 수정해주어야 한다.


 - HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\CrashControl


LastCrashTime value는 크래시가 처음 발생 했을 때 생성되는 value로 기본 값은 4주로 되어 있다. 이 값의 의미는 4주동안 크래시가 일어나지 않고 시스템이 안정적이면 pagefile의 크기를 다시 최소한의 크기로 변경한다는 의미이다. 그러므로 이 값을 수정해 pagefile의 크기가 최소화되는 기간을 짧게 하는 것이 자동 메모리 덤프 종류를 사용하면서 디스크 용량을 확보 할 수 있는 가장 좋은 방법이다. 

저작자 표시 비영리 변경 금지
신고

'[+] Forensic' 카테고리의 다른 글

코드게이트 본선 포렌식 문제  (19) 2013.04.05
Metasploit(Meterpreter) Forensic  (0) 2013.01.22
[메모] Windows 8과 2012 Sever의 크래시 덤프  (2) 2012.11.04
Torrent Forensic Artifact  (0) 2012.10.07
N Drive Forensic Artifact  (6) 2012.09.16
  1. 2012.12.07 16:33

    비밀댓글입니다

    • Favicon of http://maj3sty.tistory.com BlogIcon MaJ3stY 2012.12.07 20:44 신고

      죄송합니다 ㅠㅠ 추후에 초대장 배포시 그때 댓글을 다시 한번 달아주세요~

+ Recent posts