목록2012/04 (9)
동글동글 라이프
지금까지 Harlan Carvey님의 Offline Registry File Parser 버전 1.1의 코드를 조금씩 코드를 추가시키며 완성해보는 작업을 하였습니다.이 코드는 2006년에 작성 되었으며, NT Registry Hive access library 인 ntreg.h 를 참고하여 만들었다고 합니다. Harlan Carvey님은 다들 아시겠지만, http://windowsir.blogspot.com/ 블로그를 운영하고, Forensic 책으로 유명한 'Windows Forensic Analysis' 를 쓰신 분입니다. 코드도 직접 짜시고 책까지 쓰셨으니 대박이죠!! 국내에는 '인사이드 윈도우즈 포렌식' 으로 2010년에 번역서가 나왔습니다 저는 이때 알았네요 ^^;; ( 번역서는 나오자말자 친한..
UserAssist 는 시스템에서 실행되었던 프로그램의 목록과 실행 횟수 그리고 마지막 실행시간 등의 정보를 가지고 있습니다. UserAssist 정보를 가지는 Registry 키의 전체 경로는 아래와 같습니다.HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist 레지스트리 키로 접근하면 아래와 같이 2개의 서브 키가 있는 것을 확인할 수 있습니다.Count 안의 값들이 실행한 프로그램의 목록과 횟수들을 가지고 있다고 보시면 됩니다 :)( 제가 쓰고 있는 Windows 버전은 Windows7 입니다. )음? 영문자이긴 한데 뭔가 읽을 수 없는 영어단어가 아닌 듯한 목록입니다. 이것은 key의 이름이 ROT13 으로 ..
Value Data Storage는 value-list의 offset을 통해 vk record 의 데이터 구성 형태 입니다.이전 시간에 설명드린 Subkey 를 통해 폴더를 설정했다면 이제 세부적으로 파일들을 채우는 단계라고 생각하시면 됩니다.이 장에서는 VK record 와 타입별로 데이터를 출력해보는 샘플 코드를 작성해 보겠습니다. 이제껏 hive 파일을 통해서 레지스트리 값을 복구 시킬때전체 Key들을 구성하는 부분을 주로 처리 하였습니다.이제는 각 Key 들에 들어있는 데이터들을 접근해서 직접적으로 뽑아보는 작업을 해보겠습니다.(아래 그림에서 오른쪽의 값들을 구성해보는 겁니다 ㅋㅋ) 각각의 레지스트리 키들은 여러개의 Value들을 가질 수 있습니다. 이런 Value list 들은 subkey 에서..
Nk Record 밑의 Subkey list 들은 하위 목록들을 나열해주는 역활을 합니다. Subkey List 까지 뽑았다면 Registry 구조 복구의 전체적인 밑그림이 그려지며 파일 구성의 절반 이상이 끝났다고 할 수 있습니다.결국은 Tree 구조로 되어 있으므로 재귀적으로 함수가 호출이 되는 부분을 주목하여 봐주세요 :) 아!! 월요일입니다!말이 필요없는 월요일.. 그냥 푹~ 쉬고 싶은 월요일이지만 강좌는 멈추지 않습니다!ㅋ 소스를 잘 짜기 외해서는 기존의 공개된 소스를 어려움 없이 볼 줄 알고 코드를 짜는 사람의 내면의 고민을 같이 공유 할 수 있는 스킬을 익혀야 합니다.그러므로 창의적으로 소스를 짜는 능력과, 코드를 세부적으로 분석하는 있는 스킬두개를 다 골고루 키워야 한다는 것이 저의 생각입..
NK Record 들은 레지스트리 구조를 연결하는데 가장 중요한 역활들을 해주는 Record 입니다.이 Record는 각 Key 에 따른 하위 목록들의 연결값들을 가지고 있고 최종으로 수정한 시간도 담겨 있습니다.이 장에서는 NK Record 의 세부적인 값들을 추출하여 나열하는 샘플을 만들어 보겠습니다. 람쥐..^^;최근 일주일동안 블로그에 열심히 글을 올렸습니다. 오랜만에 강좌를 적어서 그런지 홍보를 안해서 그런지 조회수는 높은데 댓글이 없군요 ㅡ_ㅠ 글을 적는 재미는 쏠쏠합니다~피드백이 좀 들어왔으면 하는데.. 딴지도 환영입니다.( 적당히만 해주시면 ㅡ_ㅠ...) 그러면 시작~~! Key Records 는 각 Cell 에 대한 사이즈나 정보들을 담고 있습니다. 첫번째 4Byte 는 사이즈가 담겨 있..
Hive Bins 은 블록 단위로 이루어져 있으며 각각의 Cell 값을 담고 있습니다. 즉 세부적인 정보를 가진 큰 틀이라고 보시면 됩니다. 이 장에서는 Hive Bin Header 를 살펴보고 root key 값을 찾는 샘플을 만들어 보도록 하겠습니다. Hive Bin들은 일반적으로 4096Byte 단위로 할당이 됩니다. 하지만 Hive Bin의 크기가 꼭 4096Byte 보다 클 수도 있죠 :)이전 글에서 'hbin' 값을 확인했었는데 bin size는 1000h(4096)Byte 인 것을 확인 할 수 있습니다. 아래와 같이 Hive Bin Header 밑에는 Cell 들이 존재합니다. Hive Bin Header 밑에 바로 Cell 들이 쭉~ 연결해서 붙어 있습니다. 하지만 이 Cell 들을 바로 ..
Registry Hive 파일을 통해 원본 레지스트리값들을 알아내기 위해서는 먼저 Hive 파일의 구조를 알아야 합니다.이 장에서는 샘플 Hive 파일을 추출하여 Hex Editor를 통해 값을 확인하고 프로그래밍으로 Hive 파일을 불러와서 값들을 체크하는 샘플을 만들어 보도록 하겠습니다. 레지스트리 Hive 파일을 분석하기 위해서는 먼저 Hive 파일을 추출해야 합니다.정확한 레지스트리 Hive 파일을 얻어오기 위해서는 컴퓨터를 종료 한 뒤, 하드 디스크에 있는 Hive 파일을 추출하여 사용하는게 가장 좋은 방법이지만 하드 디스크를 빼려면 본체도 열어야 하고 나사도 풀어야 하고 ㅡ_ㅠ보통 힘든일이 아닙니다. (쉬우신 분들도 있겠지만요 ^^;) 그래서 간단하게 샘플 파일을 얻는 방법을 설명해 드리겠습니..
안녕하세요 h0ney 입니다!이번 강좌에 설명할 내용은 레지스트리 Hive 파일 포멧 분석기(Registry Hive File Format Analyzer) 입니다.사이버 포렌식에서 Registry Hive 파일 분석은 선택이 아니라 필수일 정도로 중요도가 높습니다.이를 프로그래밍 도구를 만들면서 전체 구조를 파악하며 공부하는 글을 적어보려고 합니다.프로그래밍 분석에 사용될 언어는 perl 이며 Windows Forensic Analysis의 regpl.pl 을 참고하여 설명드리겠습니다. 보안 공부를 할때 기본적으로 배우는 개념 중 PE 구조 라는 것이 있습니다.(PE구조란 윈도우 운영체제에서 지원되는 실행 파일의 형식을 뜻하며 실행을 할 수 있는 구조를 가진 파일입니다. ) 이런 PE구조를 분석 및 공..
블로그를 시작하면서 만들었던 타이틀 이미지를 약 3년동안 유지하였는데새 출발을 하는 의미에서 교체를 하였습니다. 당시 타이틀 이미지를 만들 2008년 10월쯤에 황현희의 "왜 이래? 아마추어" 같이 라는 유행어를 듣고아마추어가 아닌 전문가가 되어야 겠다는 생각으로 적었던 문구라 나름 의미도 있었고Perl의 마스코트인 낙타 사진도 정감이 들어버렸는데 바꾸려고 하니 아쉽긴 하네요 ^^;; 블로그를 처음 쓸 당시에는 "Perl! 무조건 Perl" 위주로 쓰겠다고 생각했지만몇 년동안 Perl이 아닌 다른 언어들도 공부를 하고 프로젝트도 해본 결과다양한 언어를 다루는 프로그래밍 블로그를 운영해야 겠다고 생각을 했습니다. 앞으로는 프로그래밍 언어의 기술보다는프로그래밍을 통해서 배우는 포렌식이나 보안에 관련된 도구를..