장 비

충돌 도메인 

브로드캐스트 도메인 

 허 브

1개

1개 

스 위 치 

스위치의 포트개수와 동일 

1개 

 라 우터 

 라우터의 포트개수와동일

 라우터의 포트개수와동일


 

'Network Security' 카테고리의 다른 글

VLAN  (0) 2019.01.21
IP  (0) 2019.01.17
UTP  (0) 2019.01.15
TCP 헤더와 특징  (0) 2019.01.11
OSI 7 계층  (0) 2019.01.11

Layer 4 : UDP, TCP

        - 흐름 제어, 에러 제어 , . . .(TCP만 가지고 있는 기능이다.)

- 주소체계: 포트(port), well-known port

 

 

*  well-known port

  ssh: 22 //tcp

  telnet: 23 //tcp

  ftp: 20,21 //tcp

  http: 80 //tcp

  imap: 143 //tcp

  pop3: 110 //tcp

  mysql: 3306

  smtp: 25 //tcp

  NNTP : 119 //tcp

  HTTPS(SSL) : 443 //tcp

   

               dns: 53  //udp

  dhcp: 67,68 //udp

  SNMP:161,162 //udp

  TFTP: 69 //udp

 

TCP ( Transmission Control Protocol ) : 전송 제어 프로토콜

 

  - 신뢰기반

  - UDP에 비하면 느리다.

  - 수신을 했는지 안했는지 확인한다.

 

1). 출발지 포트(2바이트)

2). 도착지 포트(2바이트)

3). 시퀀스 넘버(4바이트) 

4). Acknowledge 넘버 (4바이트)    // 흐름제어 에러제어등을

                                                    하는 것들

5,6). tcp header length(4비트)& tcp flag     (2바이트)

7). 윈도우 사이즈(2바이트)

8). 체크섬(2바이트)

9). 긴급 포인트 | 더미(2바이트)

 

 

 

 

 

 

TCP 헤더

packet.py

 

 

 

 

 

sniffer.py

 

 

 

 

 

python3 tcp_sniffer.py 실행 시

UDP와는 다르게 한번 데이터를 보내면 저런식으로 많은 양이 스니퍼 된다(그래서 UDP보다 신뢰성이 높다.)

 

 

 

 

 

TCP sniffer 분석

 

 

 

 

tcp flag는 6개의 비트로 나누어져 있다.

 

      0   0 0 0  0  0

      U  A P R  S  F  

 

F - Finish(FIN)

S - Synchronize(SYN)

R - Reset(RST)

P - Push(PSH)

A - Acknowledegement(ACK)

U - Urgent(URG)

 

 

SYN(Synchronization:동기화) - S : 연결 요청 플래그

 

TCP 에서 세션을 성립할 때  가장먼저 보내는 패킷, 시퀀스 번호를 임의적으로 설정하여 세션을 연결하는 데에 사용되며 초기에 시퀀스 번호를 보내게 된다.

 

ACK(Acknowledgement) - Ack : 응답

 

상대방으로부터 패킷을 받았다는 걸 알려주는 패킷, 다른 플래그와 같

이 출력되는 경우도 있습니다.
받는 사람이 보낸 사람 시퀀스 번호에 TCP 계층에서 길이 또는 데이터 양을 더한 것과 같은 ACK를 보냅니다.(일반적으로 +1 하여 보냄) ACK 응답을 통해 보낸 패킷에 대한 성공, 실패를 판단하여 재전송 하거나 다음 패킷을 전송한다.

 

RST(Reset) - R : 제 연결 종료

재설정(Reset)을 하는 과정이며 양방향에서 동시에 일어나는 중단 작업이다. 비 정상적인 세션 연결 끊기에 해당한다. 이 패킷을 보내는 곳이 현재 접속하고 있는 곳과 즉시 연결을 끊고자 할 때 사용한다.

 

PSH(Push) - P : 밀어넣기(DATA)

 

TELNET 과 같은 상호작용이 중요한 프로토콜의 경우 빠른 응답이 중요한데, 이 때 받은 데이터를 즉시 목적지인 OSI 7 Layer 의 Application 계층으로 전송하도록 하는 FLAG. 대화형 트랙픽에 사용되는 것으로 버퍼가 채워지기를 기다리지 않고 데이터를 전달한다. 데이터는 버퍼링 없이 바로 위 계층이 아닌 7 계층의 응용프로그램으로 바로 전달한다.

 

URG(Urgent) - U : 긴급 데이터
Urgent pointer 유효한 것인지를 나타낸다. Urgent pointer란 전송하는 데이터 중에서 긴급히 전당해야 할 내용이 있을 경우에 사용한다. 긴급한 데이터는 다른 데이터에 비해 우선순위가 높아야 한다. 
 EX) ping 명령어 실행 도중 Ctrl+c 입력

 

FIN(Finish) - F : 연결 종료 요청
세션 연결을 종료시킬 때 사용되며 더이상 전송할 데이터가 없음을 나타낸다.



 

 

 

스니퍼에 뜨는 내용중 가장 첫 번째   

 

 

 

 

flag 

 0   0 0 0  1  0

U  A P R  S  F  

00:0c:29:ad:aa:91->00:0c:29:2c:c7:19
ethernet type: 0x800
192.168.6.125 : 51054 -> 192.168.6.124 : 13120
id: 13729 flag: 2 offset: 0
seq:923697176  ack:0
header length: 40
flag: 2      
동기화를 요청(TCP 3-way Handshake)

 

 

ISN( Initialized Sequence Number ) (클라이언트 번호)

   - 초기 시퀀스 번호(나만 아는 번호다.)

   - 운영체제의 의해서 랜덤하게 생성

 

 

flag 

0  1 0 0  1 0

U  A P R S F 

 

00:0c:29:2c:c7:19->00:0c:29:ad:aa:91
ethernet type: 0x800
192.168.6.124 : 13120 -> 192.168.6.125 : 51054
id: 0 flag: 2 offset: 0
seq:280830992 
ack:923697177  (서버 시퀀스 넘버)
header length: 40 flag: 18

동기화 요청에 의한 답신

        - 클라이언트의 시퀀스 넘버에 +1을 해서 돌려준다.

 

flag 

 0  1  0 0  0  0

 U  A  P R  S  F

 

00:0c:29:ad:aa:91->00:0c:29:2c:c7:19
ethernet type: 0x800
192.168.6.125 : 51054 -> 192.168.6.124 : 13120
id: 13730 flag: 2 offset: 0
seq:923697177  ack:280830993
header length: 32 flag: 16

   클라이언트 또한 시퀀스 넘버에 +1을 해서 돌려 준다.

 

이 전체 과정이 3-way handshake 라고 한다.

 

 

계속해서 보면,

 

 

flag 

 0  1   1 0  0  0

 U  A  P R  S  F

 

00:0c:29:ad:aa:91->00:0c:29:2c:c7:19
ethernet type: 0x800
192.168.6.125 : 51054 -> 192.168.6.124 : 13120
id: 13731 flag: 2 offset: 0
seq:923697177  ack:280830993
header length: 32 flag: 24

 

 

내가 서버에 hello 라는 5바이트를 보냈다.

 

 

flag 

 0  1   0 0  0  0

 U  A  P R  S  F

 

00:0c:29:2c:c7:19->00:0c:29:ad:aa:91
ethernet type: 0x800
192.168.6.125 : 13120 -> 192.168.6.124 : 51054
id: 21321 flag: 2 offset: 0
seq:280830993  ack:923697182
header length: 32 flag: 16

클라이언트에서 보낸 글자 수 + 클라이언트 식별 번호 가 된다.

 

 

 

 

 

 

 

 

[실습] TCP SYN패킷 만들기

 

vi tcp.py에 이부분만 추가

 

 

 

 

 

 

 

 

vi tcp_syn.py

 

 

 

 

 

 

 

TCP는 플래그에 따라서 다양한 통신이 존재 

 

1. 열린 포트에 대한 검색

 

1) half-open 방식(스텔스 방식)

     - 완벽히 세션을 맺지 않고 반 만 오픈한다는 뜻

     - 로그에 기록이 남지 않는다.

     - 열려 있는 경우: syn-ack로 응답이 온다.

     - 닫혀있는 경우:  rst-ack 

 

2). full-scan 방식

   - 세션을 완전히 맺는 방식

   - 로그에 기록이 남는다.

 

2. 닫힌 포트에 대한 검색

 

 - 닫혀 있는 경우에만 응답이 온다.

 

 - fin scan, null scan(플래그세팅x), x-mas scan(fin, psh, urg)

                      예전에 방화벽 우회로 사용

 

 

 

 

fin psh ,urg 로 닫힌 포트에 보냈을 때 반응 (열려있는 포트에보내면 답장안옴)

 

Raw 소켓으로 패킷을 보내는 것 자체가 공격으로 간주에 운영체제는 방어기법을 쓴다.

 

여기서 20으로 받는 Rst Ack 는 운영체제 자체에서의 방어 기법이다.

 

 

 

3. 호스트를 검색하는 방법

  - 보통은 ping을 사용

  - syn-ack 플래그를 이용 (ping으로 못하는 부분도 할 수 있다.)

 

 

이런식으로온다.

 

   

 

 

 

RST 패킷 차단

iptables -A OUTPUT -p tcp --tcp-flags rst rst -j DROP

 

 

 

'Network Security' 카테고리의 다른 글

VLAN  (0) 2019.01.21
IP  (0) 2019.01.17
UTP  (0) 2019.01.15
충돌도메인과 브로드캐스트 도메인  (0) 2019.01.14
OSI 7 계층  (0) 2019.01.11

네트워크란?

net : 망

work : 작업

즉, 망이모여 작업을 하는 것을 네트워크라 한다.


ISO OSI 7 Layer Reference Model

(참조)

 

-네트워크를 7개의 계층으로 분류

- 인터넷 != 웹

 

- TCP/IP 프로토콜(인터넷 4계층)

  응용계층, 전송계층 인터넷 계층 , 네트워크 접근계층  

  (응용표현세션) (전송) (네트워크)   (데이터링크 물리)


상위 3계층(통신과는 연관x)

예) 대화

   - 무중력 상태에서는 대화가 되지 않음

   - 언어: 한글

 

Layer 7  : Application Layer(응용계층)

- 웹, 온라인 게임, DHCP, DNS, ...

- 응용프로그램

- 프로토콜 :FTP,Telnet,SMTP,HTTP,SSH,POP3,IMAP,DNS,DHCP

               SNMP,TFTP

- 장비 : 게이트웨이

Layer 6 :Presentaion Layer(표현계층)

- 데이터 표현 형식

- 암호화,복호화,부호화,압축

- ASCII , MPEG등

- 장비 : 게이트웨이

Layer 5: Session Layer(세션계층)

- 대화제어

- 프로토콜 : SSL/TLS,Socks

- 장비 : 게이트웨이

      

 

Layer 5~6 : 추상적인 계층: 암호화,SSL...

 5~ 7 전송단위(PDU) : 메시지

 

하위 4계층

 - 공기라는 매개체를 이용하여 목소리(주파수)를 전달(통신)

 

Layer 4: Transprot Layer(전송계층)

    - 통신하는 방법을 정의: TCP, UDP

    - 전송단위(PDU) : 세그먼트

//세그먼트 : 메시지 뒤에 tcp헤더가 붙은 것

    - 전송제어,흐름제어,오류제어,다중화 ,End To End

    - 프로토콜: TCP,UDP

    - 장비 : 게이트웨이   //1~7까지 다작동.

Layer 3: Network Layer(네트워크 계층) 

    - 경로를 선정

    - 서로 다른 네트워크간의 통신을 가능 

    - 전송단위(PDU) : 패킷

//패킷 : 메시지 뒤에 ip,tcp 헤더가 붙은것

    - 최적의 경로 설정

    -프로토콜 : ICMP, IP,IPX,RARP,ARP,IGMP,IPsec

ARP : IP주소로 MAC주소 찾는 것

RAPR : MAC주소로 IP주소를 찾는 것

    - 장비: 라우터,L3스위치 // 1~3작동

 Route(경로)

 Router(경로설정기)

 Routing(경로설정)

 Routed(경로설정당함)

 RoutingTable(경로배정표)


성격이 다른 네트워크 연결 장치

- 인터페이스

- 어댑터


Layer 2: Data-Link (데이터 링크 계층)  -> LLC와 MAC 로 나뉜다.

    - 라우팅이 필요하지 않은 구간에서의 통신

    - 흐름제어, 전송제어,오류제어,링크제어,Point To Point

    - 신뢰도가 제일 높은 구간

     - 프로토콜: Ethernet,HDLC,PPP,F/R,L2TP,PPTP,L2F,X.25 등

    - 전송단위(PDU) : 프레임

//프레임 : 메시지 뒤에 ip,tcp,ethernet,Trailer헤더가 붙은 것

2계층에서는 헤더 뒤에 Trailer가 붙어 오류체크를 함.

    - 장비 : 스위치,브리지  //1~2작동

 

Ethernet -> 10mbps

FastEthernet -> 100mbps

gigaEthernet ->1000mbps이상

 

Layer 1: Physical Layer (물리 계층)

    - 물리적인 통신에 관한 정의 

    - 전기적 기계적 절차적 기술적으로 연결됨.

    - NIC(Network Interface Card)

    - 장비: 케이블, 무선(공기),허브

    - 전송단위(PDU) : 비트

    - 프로토콜 : LAN카드,UTP, X.21,RS-232


더미허브 : Shared(공유), 충돌이 잦음, 오류가 많다.

스위치 허브 : Dedicate(분대) 질서가 있기에 오류와 충돌이 적다.



네트워크관련 용어

버스 : 데이터 통로, 운반체

터미널 : 데이터를 받거나 전송하는 장치

C/S: Client/Server  요청/응답

Peer to Peer (p2p)    상호요청/상호응답

스위치: 연결시켜주는 장치

케이블: 두 가닥 이상의 선이 있는 것

프로토콜: 통신규약

utp가 프로토콜인 이유 : 주 녹 파 갈 -> 색 마다 정해진 규약이 있기 

                                때문이다.

 

식별과 인증의 차이점 : 식별은 특정 사람을 구별할 수 있지만, 인증은

                               구별할 수 없다.

 

inode : 파일이나 디렉터리의 고유 식별번호

MAC time : Modification time , Access time ,Change time

 

라우터와 스위치에 큰 차이

라우터는 모르면 차단하지만, 스위치는 전부 뿌린다 (브로드캐스트)

 

인캡슐레이션: 메시지에 헤더를 붙인 것 //세그먼트,패킷,프레임 같이

    헤더를 추가하는 행위

디캡슐레이션 : 역캡슐화 , 헤더 제거

 

라우터에 부담 가는 프로토콜 : TCP

이유 : TCP의 헤더가 1.5배 더 크기 때문이다.

 

IPv4통신방식

브로드캐스트 : 전체와 통신하는 것

멀티캐스트 : 특정 다수와 통신하는 것

유니캐스트 : 1대1 통신하는 것         응답은 유니캐스트

IPv6통신방식

애니캐스트 :

멀티캐스트 : 특정 다수와 통신하는 것

유니캐스트 : 1대1 통신하는 것

IPv4 -> IPv6로 넘어가는 방법

터널링 : IPv6 헤더를 붙이는 것

듀얼스택 : IPv4와 IPv6 모두 처리하는 기술


IEEE 802.1 - MAC

IEEE 802.2 - LLC

IEEE 802.3 - 유선LAN표준

IEEE 802.4 - 토큰 버스

IEEE 802.5 - 토큰 링

IEEE 802.11 - 무선LAN표준

 

유선 LAN 방식 - CSMA/CD(충돌검출) : 랜덤시간을 대기했다가 보내

는 방식

무선 LAN 방식 - CSMA/CA(충돌회피) : 일단 보내고 보는 방식


'Network Security' 카테고리의 다른 글

VLAN  (0) 2019.01.21
IP  (0) 2019.01.17
UTP  (0) 2019.01.15
충돌도메인과 브로드캐스트 도메인  (0) 2019.01.14
TCP 헤더와 특징  (0) 2019.01.11

+ Recent posts