악성코드 분석(29)
-
파일 시스템 개념 정리
[1] NTFSNTFS New Technology File System파일 시스템이란 디지털 데이터를 효과적으로 관리하기 위해 파일을 체계적으로 기록하는 방식파일이 어디에 저장되어 있는지 조직화하고 사용자의 데이터를 구조적으로 정의하도록 한다파일을 빠르게 읽기, 쓰기, 삭제 등의 기본적인 기능을 원할히 수행하도록 도와주며, 커널영역에서 동작한다 디스크 - 논리디스크와 물리디스크로 나뉜다 논리디스크( C:\ ) - NTFS물리디스크 - 하드디스크 cluster - 여러개의 sector를 모아서 만든 논리적인 저장 단위윈도우는 클러스터 단위로 파일을 저장한다클러스터는 디스크의 용량에 따라서 크기가 다르다디스크의 용량과 클러스터의 단위의 차이로 인해서 슬랙공간이 생성된다 대부분의 NTFS에서는 4KB(4096..
2018.07.05 -
악성코드 유출사례 ( DBD 실습 )
Drive By Download (DBD)웹 사이트를 방문하거나 이메일 메시지를 볼 때 또는 유혹하는 팝업 윈도우를 클릭할 때 발생한다해커들은 악의적인 코드를 숨기기 위해 다양한 기법들을 사용해서, 바이러스 검사 소프트웨어가 인식하지 못하게 한다. 이 코드는 숨겨진 iframes에서 실행되며 탐지가 되지 않을 수 있다. [ 실습 ]InternetExplorer version6 & 8을 사용한다희생자 서버 : winXP에서 APM을 통해 생성한 wordpress서버( 10.0.2.15 )공격자 서버 : 칼리리눅스 [1] 실습을 위해 취약점이 존재하는 서버를 하나 생성한다 - APM 설치 -> Apache & PHP & MySQL 모두 설치하는 통합 프로그램- 먼저 서버의 DB에 wordpres DB를 생성..
2018.06.12 -
Memory Forensic [ OS란 ? ]
Memory Forensic컴퓨터 하드웨어 중 주기억장치(메모리)에 존재하는 휘발성 데이터를 덤프분석프로세스 정보, 네트워크 연결정보, 악성코드 파일정보 등등 * memory dump - 물리 메모리에 존재하는 모든 흔적을 확인할 수 있음 OS ? 하드웨어의 조작을 위한 매개체OS는 시스템 하드웨어를 관리하고 응용소프트웨어를 실행하기 위해 하드웨어 추상화 플랫폼과 공통시스템 서비스를 제공하는 시스템 소프트웨어이다 Kernel ?운영체제의 핵심부분운영체제의 다른 부분 및 응용 프로그램 수행에 필요한 여러가지 서비스를 제공하드웨어의 추상화 기능적인 요소① 프로세스 관리모든 스레드와 프로세스에 대한 정보는 메모리상의 데이터 구조체에 의해서 유지 및 관리 ② 파일 접근디바이스 드라이버에 의해서 각종 파일시스템이..
2018.05.23 -
하이브리드 후킹 ( Kernel을 이용한 User IAT 후킹 )
Hybrid Hooking 커널에서 유저쪽의 IAT를 후킹한다대략적인 순서는 먼저 Callback함수를 등록한다 ( sys파일등록 )=> 유저쪽의 이미지 파일이 실행될 때 커널에 알리도록 notify를 발생시킨다그리고 해당 이미지 파일의 이름을 확인하고 후킹을 설치한다IAT Hooking은 MDL을 이용한 WriteProtection을 해제하고 공유메모리를 이용한다 * MDL ( Memory Descriptor List )NonpagedPool에 MDL 생성생성된 MDL은 보호받는 메모리영역을 가르킨다보호플래그를 변경하고 해당 메모리 영역에 데이터를 쓴다다시 원상태로 복구 * 공유메모리 - KUSER_SHARE_DATA유저와 커널이 공유하는 데이터 영역 후킹 코드12345678910111213141516..
2018.05.21 -
DeviceDriver MajorFunction 후킹 [ netstat ]
DeviceDriver는 로드되면서 여러 형태의 IRP ( I/O Request Packet ) 를 처리하기위한 함수리스트를 초기화한다MajorFunctionTable을 이용해서 여러 MajorFunction들의 주소를 관리한다 ( -> 변조할 함수의 해당 주소를 찾아내어 변조한다 )드라이버는 시스템의 매우 낮은 레벨에서 동작하기 때문에 후킹하기 적절한 장소이다 * DeviceObject 검색 -> DriverObject 검색 -> MajorFunctionTable - MajorFunction 변조 의 순으로 후킹이 진행된다* DeviceObject내에 DriverObject주소가 존재* DriverObject에는 MajorFunctionTable이 존재하고 Table에는 해당장치에 관련된 MajorFu..
2018.05.15 -
RootKit [ SSDT Hooking 실습]
SSDT Hooking SSDT ? System Service Descriptor Table커널에 존재하는 함수들을 관리하는 테이블커널 모드 함수들에 대한 포인터를 제공 * 함수 호출 순서사용자 모드에서 함수 호출 -> kernel32.dll -> 내부적으로 ntdll.dll호출 -> SYSENTER - 커널과 통신 시작-> 커널의 Hal.dll을 통해서 I/O와 통신한다 ( DeviceDriver ) * SYSTENER ?EAX, EDX 레지스터를 이용해서 SSDT와 통신한다 ( EAX : 함수 지칭 & EDX : Parameter지정 )EAX레지스터에는 함수의 주소EDX레지스터에는 Parameter가 존재하는 사용자모드의 주소 다음은 시스템 프로세스 레코드의 구조 및 SSDT후킹의 원리이다숨기고자하는..
2018.05.13