목록개발자 이야기/[forensic]Winproof (17)
동글동글 라이프
지금까지 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구조를 분석 및 공..
레지스트리 정보에 관한 UI 입니다. 왼쪽에는 메인 정보를 나타내는 트리 형식으로 된 메뉴가 존재하며 레지스트리에 분석된 파일에 따라 이 메뉴들이 활성화 됩니다. 총 5개의 카테고리로 구성되어 있고, 첫번째 카테고리는 레지스트리 하이브 정보를 알려줍니다. 레지스트리를 분석하기 위한 파일에 관련된 정보들을 출력 해주며, 각 파일에 따른 하이브 파일 구조도 보기 쉽도록 출력됩니다. 두번째로는 카테고리는 레지스트리를 분석하여 하드웨어의 정보들을 장치관리자와 동일한 형식으로 나열해줍니다. 하드웨어 정보뿐만 아닌 사용자의 정보에도 신경을 더 쓸 계획입니다. 세번째 카테고리인 파일은 포렌식 분석에서 가장 중요한 역활인 사용자와 관련된 파일들을 나열하는 탭입니다. 최근 접근한 파일, 최근 저장된 파일, Explore..