목록분류 전체보기 (285)
tmxklab
윈도우 OS는 객체 기반이며 여기서 말하는 객체는 프로세스, 파일, 디바이스 등과 같은 시스템 리소스를 참조하고, 커널 컴포넌트인 객체관리자(object manager)에서 관리한다. MS에서 제공하는 WinObj툴을 통해 윈도우의 모든 객체 유형을 살펴 볼 수 있다. [ WinObj ] WinObj - Windows Sysinternals The ultimate Object Manager namespace viewer is here. docs.microsoft.com 관리자 권한으로 실행하고 왼쪽 탭에 ObjectTypes를 누르면 모든 윈도우 객체가 표시되는데, 이 때, Process도 객체임을 확인할 수 있다. 따라서, 프로세스도 객체로 관리되며 여기서 객체는 _EPROCESS구조체로 표현된다. [..
이제 수집한 메모리 이미지를 volatility라는 도구를 사용해서 분석해보자 다운로드 : Volatility 2.6 Release Volatility 2.6 - an advanced memory forensics framework www.volatilityfoundation.org volatility는 파이썬으로 작성된 메모리 포렌식 프레임워크이며 Window, mac, linux에서도 실행할 수 있다. 독립 실행 파일(standalone executable)을 사용하면 파이썬 2.7인터프리터와 의존성이 함께 묶여있기 때문에 따로 파이썬 인터프리터를 설치하거나 의존성을 고려하지 않고 빠르게 실행할 수 있다. volatility option : C:\Users\sec\Desktop\forensic_too..
이제 메모리를 덤프하는 방법을 알아보자 메모리를 수집할 수 있는 다양한 도구가 있지만 여기서는 DumpIt이라는 툴을 사용해서 메모리를 덤프한다. (DumpIt은 Comae memory toolkit의 한 부분으로 최신 버전을 다운받으려면 comae.com에 들어가서 계정 생성 후, Comae memory toolkit을 받으면 된다는데 귀찮다.. 그냥 아래 링크에서 다운받자) Crypt2Shell/Comae-Toolkit Memory Dump. Contribute to Crypt2Shell/Comae-Toolkit development by creating an account on GitHub. github.com DumpIt은 32bit(x86), 64bit(x64) 시스템에서 사용 가능하고 기본적으..
주 기억장치 사용자가 원하는 작업을 처리하기 위한 데이터 및 처리결과 등을 기억하며 휘발성이라는 특징을 가짐 메모리 가용공간이 부족할 때 페이지 파일을 사용하여 보조 기억장치를 빌려 사용 -> 가상 메모리 대부분의 작업이 메모리를 거치기 때문에 메모리를 획득하면 거의 모든 데이터 확보 가능 메모리 포렌식 활성화된 이유) ① 악성코드 PE 헤더를 구하기 위해 메모리 확보 중요 ② 악성코드 감염 및 실행 시 잘 나타내는 것은 메모리이므로 메모리 확보 중요 ③ 암호화 전송 및 암호화된 데이터는 메모리를 제외하면 확보하기 어려움 ④ 안티 포렌식 기술의 발전으로 보조 기억장치 흔적 외 추가 분석 요소 필요성 증가 +) 결론은 메모리 확보를 하면 해당 시점을 잘 나타내므로 메모리 확보 중요 +) 사고발생 이후에 분..
비활성 데이터 시스템이 꺼져 있어도 수집할 수 있는 데이터로 하드에 저장된 형태 활성 데이터는 라이브 포렌식에서만 획득 가능, 비활성 데이터는 라이브 포렌식/디스크 포렌식에서 획득 가능 1) 비활성 데이터 수집 고려사항 레지스트리 파일은 포렌식 분석할 때 무조건 수집해야 하는 파일이다. 하지만 라이브 상태에서 레지스트리는 운영체제가 점유하고 있는 파일이라 복사를 하지 못하게 된다. 따라서 운영체제보다 낮은 레벨은 파일 시스템(파일 시스템이 있어야 운영체제가 올라갈 수 있음)이므로 클라이언트가 물리레벨 첫 번째에 직접 접근할 수 있다. 이제 레지스트리의 위치만 알면 직접 찾아가서 복사하면 가능하다.(FTK Imager에서도 파일시스템 접근 가능) +) FTK Imager는 이미징하는 목적의 툴, 값이 싸서..
라이브 포렌식 시스템이 켜져있는 동안 얻을 수 있는 모든 데이터를 획득하는 것을 의미함 1) 라이브 포렌식 효과 현재 진행되고 있는 사건 및 사고에 대해 많은 데이터 획득 및 확인 가능 2) 라이브 포렌식 고려사항 악성코드 및 해커가 현재 동작하고 있는 데이터를 변조한 경우 신뢰성 야기 만일 포렌식할 대상이 해커에 의해 모니터링 당하거나 감염되어 있으면 데이터가 변조당할 경구 존재 대부분 기업들은 돈을 아끼기 위해 해킹을 당했을 때 먼저 분석을 하고 나서 의뢰를 하기 때문에 이미 확인할 때는 덮어씌워져있는 경우가 있어 라이브포렌식을 할 경우가 거의 없음 활성 데이터 종류 - 실행 중인 프로세스 - 연결 중인 네트워크 - 현재 로그인 중인 사용자 - 현재 시스템 리소스 상황 - 현재 전송 중인 패킷 - 클..
포렌식 & 디지털 포렌식 ① 포렌식(Forensics) 법의학이란 의미로 법정에서 사용되는 증거 수집 및 분석을 의미함 법률적으로 중요한 사실 관계를 연구하고 해석하며 감정하는 학문 ② 디지털 포렌식(Digital Forensics) 디지털 기기를 매개체로 하여 발생한 특정 행위의 사실 관계를 법정에서 규명하고 증명하기 위한 절차와 방법 따라서, 법정에서 규명하기 위해 디지털 데이터의 증거 능력 고려 아날로그 증거와 달리 디지털 데이터는 쉽게 복제 가능하기에 검증된 절차와 방법 등이 요구됨 (쉽게 설명하면) 용의자를 특정하여 증거물로 사법기관에 제출하기 위해 디지털 포렌식을 통해 데이터 수집 따라서, 포렌식과 디지털 포렌식은 증거 수집하고자 하는 대상에서 차이가 발생한다.(디지털 포렌식은 대상이 데이터)..
1. Intro 악성코드는 다양한 난독화(Obfuscation)기술을 통해서 탐지하거나 리버싱하기 어렵게 만들도록 한다. 일반적으로 인코딩/암호화/패킹 기술을 사용한다. 주로 다음과 같은 이유로 난독화 기술을 적용한다. C&C 통신 은닉 IDS와 같은 시그니쳐 기반 솔루션 우회 설정 파일 은닉 몰래 빼내는 정보 암호화 바이너리에 있는 문자열 은닉 등등.. 다양한 이유가 있겠지만 탐지나 분석를 어렵게 하거나 중요한 정보를 숨기기 위해서 사용한다. 2. Encoding 대부분 Base64 또는 xor 인코딩과 같은 매우 간단한 인코딩 알고리즘을 사용해 데이터를 모호하게 한다. 이렇게 간단한 알고리즘을 사용하는 이유는 구현이 쉽고 리소스를 조금 소모할 뿐만 아니라 분석가로부터 모호하게 만들 수 있기 때문이다...
0. 목차Contents0. 목차1. Hooking1.1 IAT Hooking1.2 Inline Hooking1.3 In-Memory Patching using shim1. Hooking공격자가 코드(일반적으로 DLL, 이외에도 exe파일, 쉘 코드도 사용됨)를 정상 프로세스에 인젝션하는 이유는 Target Process의 API 호출을 후킹하기 위함이다. Target Process에 코드를 인젝션하면 프로세스 메모리에 모든 권한을 가지며 해당 컴포넌트도 수정할 수 있다. 프로세스 메모리 컴포넌트를 변경할 수 있는 기능을 사용하면 IAT에 있는 항목을 교체하거나 API 함수 자체를 수정할 수 있는데 이러한 기술을 후킹(Hooking)이라고 한다. [Case Study] 루트킷의 오늘 1 : 2세대 루트킷..
0. 목차Contents0. 목차1. shim이란Example)shim 관련 자료2. DLL Injcetion을 위한 shim 생성 및 공격방법1) shim 생성 방법2) 공격 방법3) 주요 shim3. shim Artifact4. SDB 분석 1. shim이란MS에서 윈도우 애플리케이션 호환성 인프라스트럭쳐/프레임(애플리케이션 shim)은 이전 버전의 OS 에서 동작하는 프로그램이 최신 버전의 OS에서 동작하도록 하는 기능이다. 이는 애플리케이션 호환성 수정(shim)을 통해 이뤄진다. shim은 MS가 개발자에게 제공하는 것으로 개발자가 코드를 재작성하지 않고 프로그램에 수정사항을 적용하여 호환성을 유지할 수 있도록 도와준다. shim이 적용된 프로그램은 IAT에 있는 포인터를 shim 코드의 주소로..