작년 EnFuse Conference 참석에 이어 올해는 Techno Conference에 참석하였다. Techno Conference는 얼마 전까지 모바일 보안을 주제로 컨퍼런스를 운영 하다가 현재는 보안과 디지털 포렌식을 주제로 변경하여 행사를 개최하고 있다.

 

 Techno Conference는 6월 3-7일 동안 여러 세션을 운영하며 참석자가 듣고 싶은 세션을 선택해 들을 수 있도록 EnFuse와 마찬가지로 컨퍼런스 일정 동안 스케줄 관리 앱을 제공한다. 제공되는 앱은 스케줄 관리 뿐만 아니라, 발표자료 보기, 중요 이벤트 알림 등의 기능이 부가적으로 있어 컨퍼런스 일정 동안 아주 편리하게 사용할 수 있다.



 떠나기 전 발표 주제를 살피며(EnFuse보다 기술적이라는 이야기를 듣고) 큰 기대를 안고 6월 3일날 인천 공항으로 향하였다. 


# Techno2017 Conference 0 Day

 여행과 컨퍼런스의 부푼 설렘을 안고 인천공항에 도착했을 때부터 나는 사실 조금 정신이 없었다. 작년 EnFuse Conference에 갈 때와는 달리 셀프 체크인을 해야 했다. 그런데, 셀프 체크인을 할 떄 전혀 입력해보지 않았던 목적지 주소와 방문 목적 등을 입력하라는 것에 조금 어리버리하여 출국 수속이 예상보다 늦어졌었다. 그리고 행사 장소는 South Carolina에 위치하고 있는 머틀비치인데, 직항이 없어 애틀란타를 거쳐 가야했다. 근데 셀프 체크인에서는 애틀란타까지만 가는 티켓을 출력해주는 것이 아닌가.. 셀프 체크인으로 반절의 출국수속만 한 나는 짐을 보내기 위해 1시간을 대기하고 머틀비치행 비행기를 애틀란타 비행기와 연결 시키기 위해 20분 대기했다. 또 주말이라 사람은 어찌나 많던지... 오전 9시 40분 비행기여서 아침 7시에 도착했는데, 출국과 입국으로 뒤섞인 사람들이 굉장히 많아 이래저래 아침부터 정신이 없는 하루였다.


 출국 수속을 마치고 면세점 라인으로 들어서 동생 선물을 찾고 나서야 조금 여유를 찾을 수 있었다. 여유를 찾은 뒤, 나는 간단하게 아침 요기를 하고 나서 미국행 비행기에 몸을 실어 비로소 컨퍼런스 참석을 위해 한국을 떠났다.





 13시간의 비행을 마치고 애틀란타 공항에 도착했을 때 시간은 점심시간을 막 지나고 있었다. 그래서 점심을 먹기 위해 이리저리 공항을 돌아다니던 중 미국에서 유명하다는 FIVE GUYS 버거집을 발견해 버거를 먹었다. 역시는 역시! 외국 애들은 너무 짜게 먹는 것 같다 ㅠ.ㅠ 해외 출장이나 여행을 다닐 때마다 느끼는거지만 왜 우리나라만 짜게 먹는다고 경고를 주는지 모르겠다. 본인들이 훨씬 짜게 먹으면서 ...


 점심을 먹고 머틀비치행 비행기를 기다리는데 출발시각이 임박 했는데도 게이트가 열리지 않았다. 결국 게이트는 출발시간보다 1시간 늦게 열렸다. 원래 이들은 섬세하지 못한걸까, 게이트가 왜 늦게 열리는지 늦게 열리는 이야기를 말해주지 않는다 ㅡㅡ 정말 언제 열릴지 모르고 계속 앉아 있다 게이트를 잘못 알았었나 하는 착각까지 했었다.


 나는 그렇게 우여곡절 끝에 머틀비치행에 올랐다. 애틀란타에서 머틀비치까지는 1시간 남짓 걸린 것 같다. 비행기에 타자마자 잠에 빠져 내릴 때 깨 사실 나는 체감상 1분 정도 걸린 것 같다 ㅋ


 머틀비치에 도착해 별탈 없이 택시를 타고 호텔까지 왔다. 그런데, 호텔 방에 있어야 할 것이 없었다. 미니바에 물이 없었다 ㅡㅡ 원래 미국은 호텔에서 물을 제공하지 않는다고 하는데 아직도 이건 조금 납득이 가지 않는다. 기본적인 것들을 제공하지 않는 호텔이라니.. 모텔보다 못한 것 같다. 결국 대표님과 나는 물도 사고 저녁도 먹을 겸 호텔 근처 마트를 갔다. 말이 근처지 걸어서 15분 걸어가야 한다. 호텔 근처에는 숲 밖에 없더라 하...


 이것저것 장을 보고(내가 맥주를 사려고 계산대에 올리니까 아주머니가 미성년자는 안돼욧! 이라고 하던데 흐뭇.. ^^) 마트 근처에 있는 Subway에서 샌드위치로 저녁을 해결하려 하는데, Subway 알바생이 영어를 버벅일 때마다 얼마나 한숨을 쉬던지 때릴 뻔 ㅎ 어쨋든 샌드위치는 양이 많은 것 빼고 나름 만족스러웠다.


 저녁도 해결하고 호텔로 들어온 나는 침대에 곧바로 쓰러져 컨퍼런스 전날을 마무리 했다.




# Techno2017 Conference 1 Day

 드디어 컨퍼런스 첫날이 밝았다. 컨퍼런스 첫날은 가볍게 시작하는 느낌이었다. 세션이 다른 날은 오전부터 꽉꽉 차 있었는데, 첫날은 여유롭게 오후부터 시작하였다. 오후부터 시작하는 이유는 여러가지가 있겠지만, 해외에서 온 손님들을 위한 운영진의 배려라 믿고 싶다. ㅋㅋㅋ


 어찌됐건 점심을 전날 갔던 Subway에서 해결(어제 그놈은 없었다)하고 컨퍼런스 등록을 하러 등록대로 향했다. 컨퍼런스 등록대는 EnFuse와 비교했을 때 조금 작은 느낌이었다. 이때부터 직감했다. Techno Conference 규모를 ㅠ



나는 위 사진에 나온 곳이 컨퍼런스 메인 홀인줄 알았다. 근데 아니었다 ㄷㄷ



위 사진이 바로 등록대!! 등록하는 사람들은 많은데 등록을 받는 인원은 달랑 3명 ㅎ



 나는 한국에서 출발할 때 로밍을 하지 않았다. 요즘 와이파이가 워낙 많아서 '와이파이 잡아야지~' 라는 마음이었다. 역시나 컨퍼런스 주최측에서 컨퍼런스 전용 와이파이를 제공해줬다. 근데 Access Code를 요구하는게 아닌가!! 처음에는 챌린지인줄 알고 이리저리 찔러보았다. 결국 등록대에 물어봤는데, 등록대에서 알려준 코드도 맞지 않았다. 그래서 결국 게싱해서 컨퍼런스 와이파이를 조금이나마 혼자 사용했다(다른 사람들도 등록대에 Access Code를 물어보고 접속이 안되 포기했었다고 한다) :-)


 이제부턴 컨퍼런스 첫날에 들었던 세션에 대해 간략한 소개와 느낀점을 적어볼까 한다.



1. Digital Intelligence - Information at the Speed of Life

 Digital intelligence라는 용어를 나는 여기와서 처음 들어봤다. 물론 용어는 만들기 나름이지만, 나중에 여러 세션을 들어보고 나니 해외에선 Digital Intelligence, Digital Investigation 등의 용어가 일반화 되어 있는 것 같았다. 무튼 이번 발표 세션은 소셜 네트워크 정보 프로파일링 해 수사에 활용하는 방안을 소개했다. 발표자는 소셜 네트워크 정보를 프로파일링 하기 위해서는 4가지의 정보가 필요하다고 한다.


 - Content : 사용자가 무엇을 말하는가?

 - User : 화자는 누구인가?

 - Time : 언제 말하였는가?

 - Location : 어디서 말하였는가?


위 4가지 정보를 소셜 네트워크에서 수집하고 가공하여 이를 프로파일링 한다는 것이 주된 주장이었다. 실제 사례로 Anonymous 멤버 검거 사례를 이야기해 개인적으로 재밌게 들었던 세션이다.





2. Ransomware! What's Bitcoin Have to Do With it?

 이번에 소개할 세션은 랜섬웨어를 주제로 한 세션이다. 개인적으로 기대가 많이된 세션이었는데, 실제 내용은 기대에 부흥하지 못해 굉장히 실망한 세션 중에 하나였다. 랜섬웨어가 비트코인을 이용하는 목적 등의 철학적(?), 경제학적(?) 관점이 나올 줄 알았는데 워너크라이가 어쩌고.. 랜섬웨어 역사가 어쩌고.. 하는 이야기가 나왔다 ㅠㅠ 내용도 기술적인 면이 없고 개론 수준의 발표여서 아쉬워하고 있던 찰나에 본인 회사의 솔루션을 소개하는 바람에 발표는 완전 실망이었다. 





3. Windows Memory Investigation

 내가 너무 기대를 많이 했던 걸까. 두 번째 세션에 이어 이번 세션도 많은 실망을 하고야 말았다. 나는 Investigation 용어를 붙여놨길래 기존 메모리 포렌식을 수사관점으로 바라봐 의미있는 데이터를 추출하고 분석 노하우를 알려주는 줄 알았다. 근데 내기 기존에 강의하는 수준에도 못미치는 내용을 발표하더라 ㅠ 그래서 중간에 듣다가 나와버렸다 . 내용은 메모리 분류, 가상주소와 물리주소의 맵핑 정도만 소개하고 본인 회사에서 만든 도구를 소개해주면 사용하라는 식이었다. 더군다나 발표자가 본인이 만든 발표자료 같지 않았다. 발표 내용을 버벅이는걸 보고 내가 다 불쌍했다. 발표를 계속 듣기엔 시간도 아깝고 너무 피곤해서 그대로 호텔방에 와 잠들어버렸다.



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

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라고 명확하게 명시되어 있는 단일 값은 존재하지 않습니다.

- 파이썬으로 파일시스템 깊이 있게 분석하기 -1-(http://maj3sty.tistory.com/1115)


이전 글에서는 이미지(Raw 포맷)에 접근하여 볼륨 정보 등을 얻어내는 작업을 해보았다. 이번에는 실제 파이썬 스크립트가 실행되는 로컬 환경 볼륨에 접근하는 방법을 살펴보자.


이미지 파일은 파일이기 때문에 파일 오픈 핸들을 pytsk3 모듈에 입력해 주면 됐지만 로컬 환경은 장치 핸들을 pytsk3 모듈에 입력을 해주어야 한다. 장치와 파일의 차이는 크지만, 코드는 이전 코드와 많이 다르지 않다. 아래 코드는 글쓴이의 가상환경에서 작성한 파이썬 스크립트와 실행 결과이다.




이번에는 NTFS 파일시스템 2개 존재하는 것을 확인할 수 있다. 로컬 환경과 이미지 파일은 접근하는 대상만 다를 뿐 다루는 방법은 동일하다는 것을 알 수 있다. 위 소스코드는 아래 첨부해 두었으니 한번 확인해 보기 바란다.


Day2.zip


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

디지털 포렌식에서는 기본으로 다뤄야 할 부분이 파일시스템이다. 휘발성 데이터 뿐만 아니라 비휘발성 데이터까지 모두 파일시스템에 저장되기 때문에 실제 업무에서나 챌린지 문제 풀이에서나 파일시스템 분석은 중요하다고 볼 수 있다.


그래서, 시간이 되는대로 파이썬으로 파일시스템을 다뤄보는 글을 쓸 예정이다. 언어는 사람들이 쉽게 가장 많이 쓰는 파이썬(파이썬 언어 자체의 설명은 생략한다.)으로 하여 파일시스템 이미지 포맷인 E01과 Raw 포맷을 대상으로 여러가지 분석을 할 수 있는 코드를 작성해보고 해당 소스코드는 제공할 생각이다.


일단 먼저, 파이썬 모듈이 필요하다. 우리가 주로 사용할 모듈은 파일시스템을 분석해 주는 'pytsk' 모듈이다. 각 모듈에 대한 설명은 다음과 같다.


 - pytsk : pytsk 모듈은 SluethKit과 Autopsy의 파이썬 버전이라고 생각하면 된다. 여러 운영체제의 파일시스템 분석을 지원하는 아주 유용한 툴이다. 분석 기능이 많아 사용법은 조금 까다롭다. 해당 모듈의 사용법 또한 소스코드를 작성하며 알아보도록 하자.


pytsk3-4.1.3-20140506.win32-py2.7.msi


각 모듈의 설치는 쉬우므로 설명을 생략하도록 하겠다.



소스코드 작성 환경은 다음과 같다.

 - 운영체제 : Windows 7 / 8 32/64bit

 - 파이썬 버전 : Python 2.7 32bit

 - 에디터 : PyCharm 4.x


[이미지 파일 접근 해보기]

이미지 파일은 이미지 대상 크기와 이미지 파일 포맷에 따라 처리하는 방법이 다르다. 일단 처음이니 만큼 용량이 작은 Raw 포맷을 대상으로 처리 방법을 알아보자. 모듈이 설치 되었다면 아래와 같이 'pytsk3' 모듈을 import 하여 사용하면 된다.



볼륨 파싱이 완료되면 볼륨 정보를 가지고 있는 클래스 개체 하나를 반환하며, 각 클래스 개체는 Property 함수로 필요한 데이터를 반환하도록 되어 있다. 소스코드에 나온 정보 말고도 다양한 정보가 있으니 각자 확인해보도록 하자. 스크립트를 실행하면 결과는 다음과 같다.




출력을 보면 4개의 결과가 나왔지만, "Primary Table"과 "Unallocated" 항목을 제외하면 "NTFS" 파일시스템 하나만 있는 것을 확인할 수 있다. 그러므로 해당 파일시스템을 타겟팅하여 분석을 진행해 나가면 된다.


해당 소스코드와 프로젝트는 아래에 첨부하여 두었다.


Day 1.zip


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


구글에서 간단한 XSS 문제를 만들어둔 것이 있어 풀어 보았다. 문제 난이도는 쉬운 수준이고 자바스크립트와 html 소스 코드만 볼줄 안다면 쉽게 풀 수 있어 초급자들이 XSS 연습을 하기에 적당한 것 같다.


문제 주소는 아래와 같으며, 풀이는 설명 없이 풀이 코드만 첨부한다.


문제 주소 : https://xss-game.appspot.com/


[풀이]

Level 1 : https://xss-game.appspot.com/level1/frame?query=<script>alert('MaJ3stY')</script>

Level 2 : <img src='foobar' onerror='alert("MaJ3stY")'>

Level 3 : https://xss-game.appspot.com/level3/frame#1?num=123' onerror='alert("MaJ3stY")'>

Level 4 : https://xss-game.appspot.com/level4/frame?timer=');alert('MaJ3stY

Level 5 : https://xss-game.appspot.com/level5/frame/signup?next=javascript%3Aalert%28%27MaJ3stY%27%29

Level 6 : https://xss-game.appspot.com/level6/frame#data:text/plain,alert('MaJ3stY')


모든 문제를 풀면 아래와 같이 설문조사 페이지가 나오고 XSS 기본 방어 설명이 있는 페이지의 링크를 볼 수 있다.





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

+ Recent posts