네트워크보안_6주차

조승현·2022년 11월 12일
0

EVI$ION_심화스터디

목록 보기
6/7

Session Hijacking

What is session?

사용자와 컴퓨터 또는 두 컴퓨터 간의 활성화 상태

TCP Session Hijacking

IP 스푸핑이라고도 함

+) 로컷 세션 하이재킹 공격과 원격 세션 하이재킹 공격이 있지만 로컬 세션 하이재킹에 대해 공부할 예정

TCP Session Hijacking?

서버와 클라이언트가 통신할 때 TCP의 시퀀스 넘버를 제어하는데 문제점이 있음을 알고 파고드는 공격

TCP 시퀀스 넘버 교환

3-way handshaking을 통해 establish
동기화 상태

비동기화 상태

TCP 세션 하이재킹은 동기화 상태를 무너뜨리는 것에서 시작

  1. 데이터가 전송되기 전까지는 안정적인 상태
  • (클라이언트가 관리하는 자신의 시퀀스 넘버) != (서버가 알고 있는 클라이언트의 시퀀스 넘버)
  • (서버가 관리하는 자신의 시퀀스 넘버) != (클라이언트가 알고 있는 서버의 시퀀스 넘버)
  1. 데이터가 전송될 떄는 다음과 같은 상태의 데이터가 차후 사용을 위해 저장되지만 클라이언트에 서버의 승인 번호는 전달되지 않음
  • (서버가 알고 있는 클라이언트의 시퀀스 넘버) < (클라이언트가 관리하는 자신의 시퀀스 넘버)
  • (클라이언트가 관리하는 자신의 시퀀스 넘버) < (서버가 알고 있는 클라이언트의 시퀀스 넘버) + (데이터의 길이)
  1. 패킷 수신이 불가능한 상태, 데이터도 버려짐
  • (서버가 알고 있는 클라이언트의 시퀀스 넘버) + (데이터의 길이) < (클라이언트가 관리하는 자신의 시퀀스 넘버)
  • (클라이언트가 관리하는 자신의 시퀀스 넘버) < (서버가 알고 있는 클라이언트의 시퀀스 넘버)

서버에서 초기 설정 단계의 접속을 끊고 다른 시퀀스 넘버로 새로운 접속을 생성
대량의 Null 데이터를 보내는 방법

새로운 접속 생성

클라이언트 측

  • (클라이언트가 관리하는 자신의 시퀀스 넘버) = 공격자가 생성한 (서버가 알고 있는 클라이언트의 시퀀스 넘버)
  • (클라이언트가 알고 있는 서버의 시퀀스 넘버) = 공격자가 생성한 (서버가 관리하는 자신의 시퀀스 넘버)
    서버 측
  • (서버가 알고 있는 클라이언트의 시퀀스 넘버) = 공격자가 생성한 (클라이언트가 관리하는 자신의 시퀀스 넘버)
  • (서버가 관리하는 자신의 시퀀스 넘버) = 공격자가 생성한 (클라이언트가 알고 있는 서버의 시퀀스 넘버)

LAB (arp spoofing)

작성자는 칼리 리눅스와 우분투 22.04를 기준으로 실습 진행

  1. 칼리를 Primiscuous로 설정

ifconfig eth0 promisc
ifconfig

윗문장으로 설정하고
아래 문장으로 설정이 되었는지 확인하시면 됩니다

  1. 우분투에서 ip주소 & arp 테이블 확인

    hostname -I

입력하면 우분투 내의 ip 주소 얻을 수 있음

arp -a

  1. 칼리에서 arp spoofing

    arpspoof -t (우분투 IP주소) (우분투 게이트웨이)

근데 왜 또 오류가 뜰까..

원래 이렇게 진행하면 우분투와 게이트사이에서 움직이던 패킷들이 칼리를 거쳐서 지나가게 설정이 변경됨

만약 성공한다면 우분투에서

arp -a

입력해서 물리적 주소 변경된 걸 확인할 수 있습니다

0개의 댓글