본문 바로가기
  • AI (Artificial Intelligence)

Skills155

Promiscuous Mode Sniffer는 컴퓨터네트워크상에 흘러다니는 패킷을 엿듣는 도청장치라고 말할수있다. 그리고 Sniffing은 이러한 Sniffer를 이용하여 네트워크상의 데이터를 동청하는 행위를 말한다. LAN에서의 Sniffing은 Promiscuous Mode(프러미스큐어스 모드)에서 작동한다. LAN카드는 설정된 IP주소값과 고유한 MAC(Media Access Control)주소값을 가지고 있으며 자신의 LAN카드에 들어오는 프로토콜 형식에 따른 전기적 신호의 헤더부분, 즉 주소값을 인식하고 자신의 버퍼에 저장할지 결정한다. 그러나 Sniffing은 자신이 가지지말아야할 정보까지 모두 받아들이는 것이다. 자신의 주소값을 무시하고 모든 패킷을 받아들이는 상태를 Promiscuous Mode라고 한다. Promisc.. 2014. 5. 22.
공개된 PCAP파일 예제들 공개된 PCAP파일 예제들 http://www.netresec.com/?page=PcapFiles 각종 환경에서 캡처한 네트워크 패킷 샘플들과 첼린지에서 활용한 네트워크 패킷샘플들을 한 곳에 모아놓은 사이트입니다. 접할 수 없는 환경을 연구하거나 교육을 할 시에 활용을 할 수 있습니다. 예제 스크립트(출처: http://www.netresec.com/?page=PcapFiles) MACCDC - Pcaps from National CyberWatch Mid-Atlantic Collegiate Cyber Defense Competition http://www.netresec.com/?page=MACCDC Wireshark Sample Capures http://wiki.wireshark.org/Sample.. 2014. 5. 11.
네트워크 모니터링 툴(와이어샤크)구현원리 - 2째 이야기 우리는 네트워크 모니터링(와이어샤크 등)개발을 위해 범용적으로 사용되는 Libpcap(립피캡)라이브러는 tcpdump와 같은 네트워크 모니터링 툴 개발에 활용되고 있으나 유닉스 환경에서만 사용가능한데, 우리가 쓰고 있는 윈도우 환경에서는 이러한 개발 도구가 지원되지 않는가? 라는 질문을 할 수 있다. 물론 여러 형태로 작성할 수 있지만 그 중에서 대표적인 것이 Winpcap(윈피캡) 라이브러리이며, 이는 Libpcap라이브러리를 윈도우환경에서 지원하도록 만들었으며 이를 응용한 것이 여러 분이 잘 알고 있는 와이어사큐와 같은 프로그램이다. www.winpcap.org 개발환경은 윈도우개발에서 많이 사용되는 Visual C++ 을 이용할 수도 있으나, 우리는 윈도우 프로그램을 배우는 것이 아니므로, 손쉽게 .. 2014. 5. 9.
netinet/ip.h [iphddr, ip] ip에는 iphddr에 없는 struct in_addr ip_src, ip_dst가 존재한다. struct in_addr의 구조는 다음과 같다. struct in_addr { union { struct { unsigned char s_b1, s_b2, s_b3, s_b4; } S_un_b; struct { unsigned short s_w1, s_w2; } S_un_w; unsigned long S_addr; } S_un; }; 출력 할때 xxx.xxx.xxx.xxx 와 같은 형태로 출력하려면 ip 구조체에 ip_src, ip_dst를 이용하면 된다. /* Copyright (C) 1991,92,93,95,96,97,98,99,2000,2009 Free Software Foundation, Inc. Th.. 2014. 5. 9.
netinet/in.h - IP 헤더에 프로토콜 번호 매크로 /* Copyright (C) 1991-2001, 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Librar.. 2014. 5. 9.
WIreShark 구현 (7) - ICMP 헤더 출력구현 7. ICMP 헤더 출력 구현 ICMP는 TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알리거나, 진단 등과 같이 IP 계층에서 필요한 기타 기능들을 수행하기위해 사용되는 프로토콜로, IP(Internet Protocol)와 하나의 쌍을 이루며 동작한다. ICMP 메세지의 일반적인 포멧 ☞ ICMP Message Format 0 7 8 15 16 31 ┌─────────────────────────┐ │ IP 헤더 │ ├──────┬──────┬───────────┤ ── │8-bit Type │8-bit Code │ 16-bit Checksum │next) { printf("%d. %s", ++i, d->name); if (d->description) printf(" (%s)\n", d->de.. 2014. 5. 9.
WIreShark 구현 (6) - UDP 헤더 출력구현 6. UDP 헤더 출력구현 TCP 프로토콜에 비해 헤더 정보도 단순하고, 속도 도한 빠르다. 그러나 신뢰성은 보장되지 않는다. 1) 데이터 정상 전달 - UDP는 상대방의 수신준비를 위한 TCP의 3 Way HandShaking 없이 데이터를 전달한다. 2) 전달 중 데이터 손실 발생 - 데이터 전달 중 손실이 발생된 경우, 해당 데이터를 폐기할 뿐 다시 요청하지 않는다. 3) 잘못된 포트 접속시도 - 대상 서버가 제공하지 않는 포트로 접속 시도 시 UDP 프로토콜에는 에러처리기능이 없기 때문에 ICMP 프로토콜이 대신 처리한다. UDP헤더는 이더넷 헤더와 IP헤더 다음에 온다. UDP헤더의 각 필드 1) Source Port : 송신측 포트번호 2) Destination Port : 수신측 포트번호 3.. 2014. 5. 9.
WIreShark 구현 (5) - TCP 헤더 출력구현 5. TCP 헤더 출력구현 상대방에게 정확하게 데이터를 전달할 수 있다. 상대방이 수신이 준비된 상태에서 데이터를 전달하는 세션연결 과정을 거친다. TCP헤더는 이더넷 헤더와 IP헤더 다음에 따라 붙는다. TCP 필드 1) Source Port Number : 송신자의 포트 번호 2) Destination Port Number : 접속하고자 하는 목적지 대상 서버 포트번호 3) Sequence Number : 데이터의 순서를 나타내는 번호, 분할된 패킷의 경우 데이터 재조합에 사용 4) Acknowledge Number : 다음에 수신할 데이터 번호이며 해당 번호를 통해 전체 데이터 중 몇번째 데이터 인지를 파악하게 된다. 5) Header Length(Offset) : TCP헤더 길이 6 ) Reser.. 2014. 5. 9.
WIreShark 구현 (4) - IP 헤더 출력구현 4. IP 헤더 출력 구현 네트워크 계층에 운영되는 IP 프로토콜에는 목적지 위치를 알려주는 고유한 32비트주소 값이 있으며 이를 IP주소라고 한다. IP 헤더는 이더넷헤더 다음에 오게된다. IP헤더에 사용되는 필드 1) Version : IP 버전 2) Header Length : 헤더 길이 정보를 담고 있으며, 단 마지막 필드인 Options 값에 따라 길이가 가변적일 수 있다. 단위는 32비트워드 단위이며, 최소 5에서 최대 15가 될 수 있다. 최소 5인 경우는 고정크기 20바이트(바이트기준 32/8 = 4가 된다. 고로 5로 표기된 경우는 5 *4 = 20바이트를 의미한다.)를 가지며 최대 15인 경우에는 헤더길이가 60바이트가 된다. 3) Type Of Service : 서비스 종류를 나타내며.. 2014. 5. 9.
WIreShark 구현 (3) - 이더넷 헤더 출력구현 3. 이더넷 헤더 출력구현 이더넷 프레임에 포함된 정보 중 LAN카드의 고유주소를 나타내는 MAC주소가 있으며, 해당 정보는 LAN 상에서 통신을 하는데 반드시 필요한 정보이다. 예를 들어 내가 특정서버의 Telnet 통신을 하는 경우 IP 주소만으로는 상대방과 통신을 할 수 없다. 이에 대상 서버의 MAC주소를 얻는과정(ARP 구동)을 거치고 난 이후에 확보된 MAC과 IP 주소를 이용하여 상대방과 Telnet통신을 수행하게 된다. 이더넷프레임에서 이더넷 헤더부분은 목적지 MAC주소, 발신지 MAC주소, 그리고 패킷유형까지이다. 이더넷 헤더 구조체 #include struct ether_header { u_int8_t ether_dhost[ETH_ALEN]; /* destination eth addr .. 2014. 5. 9.
WireShark 구현 (2) - 랜 케이블의 이더넷 패킷 출력 구현 1. 랜 케이블의 이더넷 패킷 출력 구현 첫 번째 미션은 랜케이블에서 돌아다니는 패킷인 이더넷의 실체를 확인해보는 것이다. 먼저 이더넷 개념을 다시한번 숙지하자. 이더넷은 데이터링크계층에서 동작하는 프로토콜로써 이더넷프레임이라고도 하며, 다수의 PC를 연결한 환경인 LAN상에서 동작된다. 송신하는 PC가 없는 경우 B의 MAC(랜카드 주소)를 수신자로 세팅하여 전송하게 되며, 이때 B를 제외한 모든 PC는 자신의 MAC주소가 아니기 때문에 해당 패킷을 폐기한다. 이와 같이 데이터를 보내는 것은 자유지만, 다른 PC에서 보낸 패킷과의 충돌이 발생할 수 있으므로 LAN 케이블을 감시하여 패킷이 없는 경우에만 전송이 가능하다. 이와 같은 통신방식을 CSMA/CD라고 불리는데, 해당 방식은 IEEE 802.3에.. 2014. 5. 9.
WireShark 구현 (1) - 환경 세팅 패킷 캡쳐 소프트웨어인 이더리얼은 1998년에 개발을 시작한 이래로 10년만에 정식버전을 출시하였으나 상표권 문제로 인해 이름을 와이어샤크(Wireshark)로 변경하였다. 와이어샤크 같은 프로그램은 네트워크상에 전송되는 패킷을 분석하여 문서상으로만 보던 프로토콜 헤더 등의 정보를 얻거나 심지어 비정상적인 프로토콜 혹은 공격 패턴 등을 탐지하는 도구로 활용되고 있다. 와이어샤크의 기반구조를 제공하는 Winpcap 라이브러리 사용법을 통해 와이어샤크 구현원리에 대해 배워보자. 1. 환경 세팅 스니핑구현을 위해 범용적으로 사용되는 Libpcap 라이브러리는 tcpdump와 같은 네트워크 모니터링 툴 개발에 활용되고 있으나 유닉스 환경에서만 사용가능하다. 윈도우 환경에서는 Libpcap 라이브러리르 윈도우환경.. 2014. 5. 9.
Pcap 을 이용한 패킷캡쳐응용 Pcap 을 이용한 패킷캡쳐응용 윤 상배 dreamyun@yahoo.co.kr 교정 과정 교정 0.8 2003년 1월 24일 23시 문서 작성 차례 1절. 소개 2절. ID 및 패스워드 검색 프로그램 2.1절. 이거 크래킹 프로그램 아닌가요? 2.2절. 구현 방법 2.3절. id, password 전달문자열 확인하기 2.4절. 예제코드 2.5절. 정보 누출을 막는 방법 1절. 소개 지난번에는 pcap 소개문서인 libpcap 프로그래밍 libpcap 프로그래밍을 통해서 기본적인 패킷캡쳐 방법에 대해서 알아보았었다. 이번에는 실질적인 응용에 대해서 간단한 예제와 함께 공부해 보도록 하겠다. 지난번 libpcap 에 대한 이해를 마쳤다면, 이 문서는 가벼운 마음으로 읽어나갈수 있을것이다. 2절. ID 및 패.. 2014. 5. 9.
Linux Rescue mode 로 부팅하기 개요 Linux 가 부팅이 안 되거나 실수로 mount, yum, ssh 같은 필수 구성요소를 삭제했을때 복구 모드로 부팅해서 문제를 해결해야 한다. 들어갈 일이 거의 없어서 잊을것 같으니 절차를 정리해 둔다. Booting into Rescue Mode CD/DVD USB 등의 media 를 넣고 부팅 Boot 화면에서 rescue 선택 3rd party driver 등이 필요할 경우 tab 키를 누르고 kernel parameter 수정 If your system requires a third-party driver provided on a driver disc to boot, load the driver with the additional option dd: linux rescue dd 언어 선택 .. 2014. 5. 2.
오라클 데이터베이스의 구조 Database Service Structures 데이터베이스 서비스 구조 ※ 데이터베이스가 작동되는 단계별 과정 각 오라클 데이터베이스는 오라클 인스턴스와 연관된다. 데이터베이스가 시작되면 1) SGA 공유 메모리 영역을 할당하고 여러 가지 백그라운드 프로세스를 시작 (SGA와 프로세스의 결합을 오라클 인스턴스라고 한다.) 2) 인스턴스 시작 후 소프트웨어가 특정 데이터베이스와 인스턴스를 연관시킨다 (이를 디스크 마운트라고 함) 오라클 데이터베이스 구조 Oracle Instance Oracle Database System Global Area SGA (메모리) + Background Processes (프로세스) Storage 구조 [참고] – Listener ※ 리스너(Listener)란? 모든 클라.. 2014. 4. 24.
오라클 10g g는 무엇인가. Oracle이 10이 되면서 부터 i에서 g로 변화되게 된다. 여기서 g란 그리드(Grid)를 의미한다. 그리드의 개념잡기 시스템 구축 문제발생 해결책 고가의 하드웨어 장비로DB 서버 구축 서비스 동시 제공 인원 100명급 동시 이용자 증가 (150명) 과부하 발생 같은 사양과 OS를 사용하는 서버를 한 개 더 구축 ※ 위처럼 동일한 OS를 이용하고 같은 사양을 가진 서버를 추가하여 운영체제 레벨에서 하나로 묶어 문제를 해결하는 것을 H.A(High Availability - 고가용성) 클러스터링이라고 한다. [참고] – 클러스터링(Clustering)이란 물리적으로 서로 다른 하드웨어가 논리적으로는 하나의 통합된 동일한 서비스를 기반으로 하는 시스템 ※ 이렇게 구현한 서버는 물리적으로는.. 2014. 4. 24.
Oracle10g Introduction, 오라클10g 소개 Oracle10g_Workshop_I__1.1_kr 2012.07.22.일 19:14 이 문서는 다음과 같은 목적으로 작성되었습니다. 0. 절때 무단 배포를 목적으로 하지 않고 오로지 공부를 목적으로만 작성되었습니다. 1. 본 문서에는 본인이 오라클 workshop I 을 공부하면서 요약한 내용입니다. 꼭 오라클 전공자님들께서는 잘못된 내용을 지적해주세요.! 본 문서가 저작권 위반이 될 경우 언제든지 바로 삭제를 할것입니다. 2. 일부 그림은 workshop I 문서의 그림을 사용하였습니다. 3. 문서의 내용이 정리중 세부 항목이 빠져 있을 수 있습니다. This documentation is rewrited by Kim in 2012ⓒ reference document by Oracle Workshop.. 2014. 4. 24.
UNIX Kernel 이해를 돕기위한 그림 3종.. 1. UNIX의 발전과정 명료하고 한눈에 볼 수 있어서 좋다. 2. Kernel의 구조라 할까 하드웨어에서 커널을 통해 쉘까지.. 3. System Call 과정이라 표현하면 될까? 그림을 보고 이해를 하는게 더 빠르지 않나? 4. 마지막으로 이건 개인적으로 공부하려고 올린 것. 2014. 4. 22.