PE 구조

PE(Portable Excutable) 구조-PE포맷은 프로그램 실행 파일의 제일 첫 부분에 존재한다. DOS HeaderDOS StubPE File HeaderOptional HeaderSection TableSections IMAGE_DOS_HEADER IMAGE_NT_HEADER PE\0\0 IMAGE_FILE_HEADER IMAGE_OPTIONAL_HEADER IMAGE_SECTION_HEADER DOS Header-도스 헤더 부분은 IMAGE_DOS_HEADER라는 구조체로 구성되어 있다. typedef struct _IMAGE_DOS_HEADER{ WORD e_magic; //magic number WORD e_cblp; //Bytes on last page of file WORD e_cp; //Pages in file WORD e_crlc; //Relocations WORD … 더 읽기

어셈블리 코드 해석

원본 : http://www.daniweb.com/forums/post382693.html#post382693 간단한 C++ 코드의 어셈블리 코드와 해석 -C++ 코드- int main() {         short x=6;         short y=9;         short z;          z = x+y;         return 0; } -어셈블리 코드-         .file    “CSCILab03-1.cpp” ; This is the input source file.  This will probably make it into the ; assembler output as some kind of debug record for … 더 읽기

Snort 명령 사용

-Snort는 snort.conf 파일 또는 명령행 옵션을 통해 여러 가지 명령을 설정할 수 있다. ex:)config nolog snort.conf 명령행 옵션 설명 alertfile 없음 Snort가 발생시킨 모든 경고를 저장할 파일을 지정할 수 있다. bpf_file -F BPF 포맷 필터를 포함하는 파일을 지정할 때 쓰인다. checksum_mode 없음 패킷 체크섬을 검사할 패킷의 종류를 지정할 때 쓰인다. 들어 갈 수 있는 값에는 … 더 읽기

Snort 변수

변수의 정의 종류 사용법 예시 일반 변수 var 변수명 값 var DNS_SERVER 203.248.252.2 배열 var 변수명 [값1,값2] var INTERNAL_NETS [10.1.100.0/24,10.1.0.0/16] 동적 변수 var 변수1 값 var 변수2 $변수1 var DNS_SERVER 203.248.252.2 var MY_DNS $DNS_SERVER 동적 변수2 var 변수1 값 var 변수2 $(변수1:기본값) ※변수1이 존재하지 않는 경우, 변수2는 기본값 적용 var DNS_SERVER 203.248.252.2 var MY_DNS $(DNS_SERVER:10.1.1.2) … 더 읽기

Snort 로그

Snort 로깅 옵션 옵션 설명 -l 로그 파일을 저장할 디렉터리 경로 -h 홈 서브넷 -b 로그를 2진 형태로 저장한다. -L 2진 로그 파일 이름 snort -dev -l /var/adm/snort/logs -h 192.168.1.0/24 -위 옵션을 사용할 경우 /var/adm/snort/logs 디렉토리에 해당 IP 주소명의 디렉토리가 생성되고 세션별로 파일이 생성된다. ex)TCP:3039-80 (TCP 프로토콜,출발지 포트:3039, 목적지 포트 80) ※로그를 2진 형태로 저장하면 … 더 읽기

Snort 모드

Snort 침입 탐지 모드 -Snort를 기본 IDS 모드로 실행하면 기본 출력은 log 하위 디렉터리의 alert라는 파일에 저장된다. 경고 모드 -패킷이 alert 규칙과 일치했을 경우 Snort는 다음 2가지 작업을 수행한다. 경고 보관소(alert facility)로 이벤트를 출력한다. 설정된 로깅모드로 가능한 많은 데이터를 기록한다. alert facility 옵션 옵션 설명 Full 경고 메시지와 전체 패킷 헤더를 포함한다. (기본값) Fast 타임스탬프, … 더 읽기

Snort를 스니퍼로 사용

-Snort를 -v 옵션으로 실행할 경우 캡쳐한 패킷의 IP, TCP, UDP, ICMP헤더를 화면에 출력한다. -보다 많은 정보를 얻고 싶다면 -d 옵션과 -e 옵션을 사용해야한다. 옵션 설명 -d 애플리케이션 계층 데이터를 HEX와 ASCII 코드로 출력한다. -e 데이터링크 계층 헤드를 포함한다. -v 패킷 스니핑 모드로 동작한다. (TCP 헤더) snort -dev ※-v 옵션이 없이 -d 옵션과 -e 옵션을 동시에 … 더 읽기

Snort 플러그인

탐지 플러그인 Snort는 탐지엔진에서 플러그인 구조를 사용하고 있는데(detection-plug-ins 하위 폴더에 존재) 탐지 플러그인의 구조는 다른 개발자가 Snort 규칙과 연결된 플러그인을 쉽게 작성할 수 있도록 되어있다. 예를 들어 snortsam 프로그램이 있는데 이 프로그램은 공격을 탐지할 경우 방화벽을 재구성하여 패킷 차단이 가능하다. -공격지 주소를 1시간동안 차단 alert tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg : “FTP EXPLOIT … 더 읽기

Snort 규칙

-규칙 헤더 alert tcp $EXTERNAL_NET any -> $HOME_NET 21 헤더 값 내용 alert alert, log, pass, dynamic, activate 출력 포맷을 의미한다. 이 출력 포맷은 연결리스트 트리 헤더의 맨 상위 부분과 비교된다. tcp TCP, UDP, IP, ICMP 사용되는 프로토콜을 의미하며 연결리스트의 상위 부분과 비교된다. $EXTERNAL_NET · 출발지 IP 주소를 가리킨다. (기본 설정은 any) any any, 포트 … 더 읽기

Snort 규칙 생성기 동작 과정

-규칙 파일 : Snort 규칙은 텍스트 기반으로 되어 있으며 종류별로 서로 다른 그룹으로 분류되어 있다. 과정 설명 snort.conf 파일 확인 Snort 실행과 동시에 snort.conf 파일의 ‘Step 4-Cstomize your ruleset’ 부분에서 지정한 규칙 파일을 불러들인다. ParseRulesFile() 함수 호출 규칙 파일을 읽는 작업을 실행한다. (함수 정의 : parser.c | 함수 호출 : snort.c) 3차원 연결리스트 생성 마지막으로 … 더 읽기
바로가기