네트워크 기반 공격

justugi·2025년 5월 29일

네트워크 보안

목록 보기
2/13

네트워크 기반 공격

Sniffing (스니핑)

  • 통신 경로 상에서 정보를 훔쳐보는 행위
    • 일반적으로 Sniffing 이 가능하려면 Spoofing 이 이루어져야하는 구조
  • 공격 조건
      1. Media 공유
      • 정보를 가지고 있는 신호가 공격자의 시스템에 도착해야 함
      • HUB 환경 : 피해자와 공격자가 같은 Collision Domain (같은 허브 단위) 에 위치해야 함
      • SWITCH 환경 : 피해자의 전기적인 신호를 공격자에게 오도록 유도할 수 있는 추가공격 (switch jamming 등) 이 필요
      1. 공격자 시스템의 NIC 가 Promiscuous 모드로 동작
      • Promiscuous 모드 : 목적지 주소가 본인의 MAC 주소와 달라도 Filtering (DROP) 하지 않고 무차별적으로 데이터를 받아서 처리
        • 소프트웨어를 통해 활성화 (네트워크 진단 도구 등을 실행하는 동안에만 자동으로 promiscuous 모드를 켜 줌)
          • 윈도우 : winpcap, npcap (같이 설치하면 에러 발생할 여지 존재)
          • 리눅스 : libpcap, ifconfig
            • 리눅스에서 root 권한으로 수동 설정
              • 설정 : ifconfig eth0 promisc
              • 해제 : ifconfig eth0 -promisc
      • 기본적으로 NIC 는 Bypass 모드라서 2 계층에서 패킷의 목적지 MAC 주소가 본인의 MAC 주소와 다르면 Filtering (DROP) 하므로 Promiscuous 모드로 설정해야함
        • Frame 이 NIC 에서 Filtering 되는 것을 방지
      1. 공격자 시스템에서 Sniffer 프로그램 사용 (ex. wireshark)
      • 기본적으로 3 계층에서 목적지 IP 주소가 본인의 IP 주소가 다르면 DROP
      • NIC 에서 2 계층 데이터인 Frame 을 받아들여도 상위 계층인 3 계층 (IP) 에서 Filtering (DROP) 하기 때문에 Data Link Interface 를 이요하여 Frame 을 복제해서 화면에 출력
      1. Sniffing 할 데이터가 암호화 되지 않아야 함
      • 암호화된 데이터는 Sniffing 만으로 정보 확인 불가
  • Passive Sniffing
    • 일반적으로 HUB 환경에서 스니핑하여 정보를 획득하는 공격
  • Active Sniffing
    • 일반적으로 SWITCH 환경에서 추가적인 공격을 통해 데이터의 전달 흐름을 변경하여 스니핑으로 정보를 획득하는 공격
      • 2 계층 공격 : MAC 주소를 기반으로 공격
        • Switch Jamming (MAC Flooding), ARP Spoofing (ARP cache Poisoning), ...
      • 3 계층 공격 : IP 주소를 기반으로 공격
        • ICMP Redirect, DHCP Spoofing, ...
    • MITM (Man In The Middle) 공격 형태가 될 수 있음

Spoofing (스푸핑)

  • 침입, 공격의 목적으로 데이터를 위/변조 하는 모든 행위
    • 일반적으로 Spoofing 을 선행한 후 Sniffing 등 추가 공격이 가능해지는 구조
  • 기본적으로 무결성을 깨트리는 공격
    • 사후 공격을 통해 기밀성, 가용성을 추가로 공격

ARP Spoofing (= ARP Cache Poisoning)

  • ARP 프로토콜을 이용하여 MAC 주소를 변조 (ARP cache table 을 변조) -> 신호의 흐름을 변경하여 신호를 해커에게 오도록 조작하는 Sniffing 을 위한 사전 공격
  • 데이터 변조 후 본인이 데이터를 받은 후 차단할지 훔쳐볼지 등 목적을 정함
    • 사전 공격으로 주로 활용됨
  • ARP cache table
    • ARP : 인접장비의 IP 주소를 알고 있을때 brodcast ARP Request 를 통해 MAC 주소를 알아오는 프로토콜 (IP -> MAC 변환)
      = 논리적 주소 (3 계층의 IP 주소) 를 이용해 물리적 주소 (2 계층의 MAC 주소) 를 알아냄
    • ARP 를 통해 IP 주소에 해당하는 MAC 주소를 알아와서 저장되는 곳
    • 스위치가 아닌 PC 나 서버, 라우터에 존재
    • 같은 네트워크의 인접 장비간의 통신을 위해 존재
  • ex) A, B, 해커 가 하나의 스위치에 연결돼있을때, A -> B 통신을 위해 A 가 B 의 IP 로 ARP 로 처음 MAC 주소 요청할 때 브로드캐스트로 보내는데 제 3 자인 해커는 해당 패킷을 2 계층에서 디캡슐레이션하면 3 계층 정보인 IP 가 본인의 IP 와 달라서 DROP 해야하는데 해커는 해당 데이터를 받아서 본인이 B 라고 살짝 늦게 응답함. A 는 본인의 ARP cache table 에 늦게 들어온 최신 정보인 해커의 응답으로 업데이트함 (IP, 통신장비 (MAC) 가 교체되는걸 최신 정보로 반영해야 현재 통신이 가능해지기 때문에 가장 늦게 들어온 정보로 업데이트함)
    • 해커는 ARP 요청이 없어도 계속 ARP 응답을 보내서 정보를 임시 저장하는 ARP cache table 을 계속 갱신시킴
    • ARP cache table 을 확인하거나 wireshark 로 통신중인 패킷을 확인하면 서로 다른 MAC 주손데 IP 주소가 동일하면 ARP spoofing 공격을 받고 있다고 판단 가능
      • 공격자가 노출되는 문제가 존재
    • A -> B 에게 ping 이나 다른 통신 기반 서비스 (web, ftp 등) 를 이용하면 해커가 받게 되는데 직접 응답은 못함
      • A 는 B 에게 A -> 스위치 -> B 로 보내지만 실제로는 해커가 받아서 해당 신호를 B 에게 전달하는 A -> 스위치 -> 해커 -> 스위치 -> B 형태로 해커를 낀 형태 (해커는 forwarding 가능해야 함) 가 됨 (MITM 공격 형태)
        • MITM 형태가 되면
          • 데이터 훔쳐보기 가능 : Sniffing
          • 데이터 변조 가능 : Spoofing
          • 데이터 삭제 등 통신 차단 가능 : DOS (해커가 forwarding 안 할 시)
          • 데이터 삽입 가능 : Injection 공격
        • forwarding 종류
          • kernel forwarding : 운영체제를 통한 forwarding
            • 해커의 컴퓨터가 비정상 통신임을 알아채고 복구를 시도하고, 복구 요청을 보냄
          • software forwarding : 프로그램을 통한 forwarding
            • 실제 공격시 사용
  • 취약점 (ARP spoofing 공격이 가능한 이유)
      1. ARP 가 인증서와 같은 인증 시스템 부재
      • 정상적인 사용자와 악의적인 사용자 구분 불가
      1. ARP cache table 이 최신 정보로 학습
    • ARP 자체의 문제이기 때문에 현재 완전한 보안 솔루션 없음
  • 한계점 : 같은 네트워크 (네트워크 내부) 에서 사용하는 공격이기 때문에 같은 네트워크에 존재하는 장비들만 공격 가능 (라우터에선 ARP 차단)
  • ARP Redirect 공격
    • 일반 PC 와 GW (Router) 와의 통신 (외부와의 통신) 을 공격하여 외부로 전송되는 데이터 전체를 Sniffing
  • Sniffing 탐지
    • ARP storm 확인
    • Decoy
      • 가짜 계정을 유출시킴
    • Promiscuous Mode 시스템 탐지
      • Promiscan 등 사용
    • 변조된 ARP 정보 확인
    • 중요한 시스템 (장비) 들의 IP 와 MAC 주소의 Maching 리스트를 작성하여 변조 여부 확인
    • 관리 네트워크에서 변경되는 시스템의 정보를 모니터링
      • Arpwatch, Xarp 등 사용
  • Host 보안 : ARP cache 정적 (static) 운영
    • GW 등 중요 시스템의 ARP cache 를 정적으로 설정하여 공격자의 ARP reply 에 의해 변조되지 않도록 함
      • 정적 정보 : 사용자나 시스템이 설정하며, 정보가 유지됨
        • linux : shell 파일로 작성하여 booting script 등록
        • windows : batch 파일로 작성하여 시작 프로그램 등록
      • 동적 정보 : 최신 정보로 업데이트됨

IP Spoofing

  • Source IP 를 속여서 접속하는 공격
    • Source IP 를 변조하여 패킷을 보내면 응답은 바꾼 해당 IP 로 전송되기때문에 응답을 받을 수 없음
      • DOS 공격자의 정보를 은닉하기 위해서도 사용
    • IP 기반 보안정책을 사용하는 방화벽 등 보안 솔루션의 접근제어를 우회하기위해 사용
  • ex) 서버 - 스위치 - 방화벽 (라우터 역할도 함) - 스위치 - A : 관리자 (10.1), B : 일반인 (10.2)
    • 방화벽 정책 : 출발지 주소 10.1 허용, 10.2 차단
    • B (10.2) 가 서버에 접속하려면 출발지 IP 주소를 10.1 로 바꿔서 전송
      • 서버는 10.1 로 응답하기 때문에 원래는 B (10.2) 는 데이터를 받을 수 없음
      • 방화벽에게 ARP spoofing 하여 B 가 10.1 인 것 처럼 속임
        • 이러는 동안 10.1 이 목적지인 데이터는 B 에게 가니까 A 는 통신 불가
      • B 가 10.1 을 서브 인터페이스 IP 주소로 설정하여 목적지 주소가 10.1 인 패킷을 DROP 하지 않도록 함

실습

Spoofing

  • kali (공격자) 가 linux, XP 인척

linux 192.168.50.50/24
XP 192.168.50.100/24

  • cmd : ncpa.cpl 실행 / 네트워크 연결 - 속성 - 속성 - 인터넷 프로토콜 - static 으로 주소 세팅 - 고급 - 방화벽 끄기
    kali (공격자) 192.168.50.200/24

  • 서로 ping 통신으로 arp 학습한 후

[kali, linux, XP]

  • arp table 확인
    • arp -a

[kali]

  • 해야할 일

    1. linux 에게 xp 인척 arp 전송
    2. xp 에게 linux 인척 arp 전송
  • arpspoof -i 인터페이스이름 -t 공격타켓IP 사칭할IP

  • arpspoof 로 eth0 을 이용해서 192.168.50.50 으로 192.168.50.100 인척 공격

    • arpspoof -i eth0 -t 192.168.50.50 192.168.50.100
  • arpspoof 로 eth0 을 이용해서 192.168.50.100 으로 192.168.50.50 인척 공격

    • arpspoof -i eth0 -t 192.168.50.100 192.168.50.50

[linux]

  • arp -a 로 XP 가 kali 의 MAC 주소로 변경된거 확인

[XP]

  • ping 192.168.50.50 이 tumed out 뜨는거 보고 arp -a 확인 시 kali 가 변조한 arp 학습함

[wireshark]

  • VMnet8 확인 시 ARP strom 확인 가능
    • 192.168.50.50, 192.168.50.100 의 MAC 주소가 kali 의 것이라는 arp 신호
  • linux, XP 사이에 ping 시 도착지의 MAC 주소가 kali 의 것으로 확인 가능

[kali]

  • fragrouter 설치

    • fragrouter
  • 포워드 기능 활성화

    • fragrouter -B1
  • wireshark 로 확인 시 request, reply 가 있으나 MAC 주소 확인 시 kali 가 사이에서 전달하는 중이라서 request 2 번 & reply 2 번 캡쳐됨

ettercap (MITM 공격)

  • 공격대상의 모든 arp table 의 MAC 주소를 kali 의 MAC 주소로 변경, 자동으로 포워딩 설정까지 해줌
    • ARP spoofing, 패킷 sniffing 등 가능

[kali]

  • ettercap 설치

    • apt -y install ethercap-graphical
  • ettercap 실행 (터미널)

    • ettercap -T -M arp:remote /공격대상IP1/공격대상IP2/.../
      • T : text 모드, M : MITM 공격, arp:remote : arp spoofing
    • ettercap -T -M arp:remote /192.168.50.50/192.168.50.100/
  • ettercap 실행 (터미널)

    • ettercap -G
    • 우상단 ... 옵션 - promisc mode 체크된거 확인
    • 우상단 V 표시 (accept) 클릭
    • 좌상단에 정지
    • 좌상단 돋보기 : host 탐색
    • 좌상단 서버 : 공격 대상 선택 후 Add to Target
      • linux, XP 의 IP 선택
    • 우상단 지구본 : 공격 방식 지정 - ARP poisoning - Sniff remote connections 만 체크 - OK - 좌상단 재생 버튼 : 공격 시작
      • 윈도우와 리눅스에 arp -a 시 서로의 MAC 주소가 kali 의 것으로 되어있음

Host 보안을 위해 ARP cache 정적 설정

[linux]

  • XP 에서 ipconfig/all 로 확인한 MAC 주소 (00:0C:29:CD:EE:B6) 로 설정

    • arp -i ens160 -s 192.168.50.100 00:0C:29:CD:EE:B6
  • arp -a

    • PERM : 정적 설정
  • 부팅 시 명령어 실행되도록 등록

    • /etc/rc.d/rc.local
      • 맨 밑 줄에 arp -i ens160 -s 192.168.50.100 00:0C:29:CD:EE:B6 추가
    • /etc/rc.d/rc.local 파일 실행권한 추가
      • chmod +x /etc/rc.d/rc.local

[XP]

  • arp -s 192.168.50.50 00-50-56-37-3e-d5

  • 부팅 시 명령어 실행되도록 등록

    • 메모장 작성
      • arp -s 192.168.50.50 00-50-56-37-3e-d5
      • exit
    • 파일명 : arp.bat 으로 저장
    • cmd - gpedit.msc - 그룹 정책 - 컴퓨터 구성 - Windows 설정 - 스크립트 (시작/종료) - 시작프로그램 더블클릭 - 추가 - 찾아보기 - 생성한 bat 파일 등록 - 확인 - 적용 - 확인

[kali]

  • ettercap -T -M arp:remote /192.168.50.50/192.168.50.100/
    • 공격해도 linux 와 xp 의 정적 설정한 ARP cache 의 MAC 주소는 변하지 않음

IP Spoofing

linux1 192.168.50.50/24

  • SSH server, 방화벽
    linux2 192.168.50.150/24
  • SSH client
    kali 192.168.50.200/24
  • 공격자

[kali]

  • 가상 IP 설정

    • ifconfig eth0:1 정상클라이언트IP netmask 서브넷마스크
    • ifconfig eth0:1 192.168.50.150 netmask 255.255.255.0
  • ARP Spoofing

    • arpspoof -t 서버IP 정상클라이언트IP
    • arpspoof -t 192.168.50.50 192.168.50.150
  • SSH 접속 시 주소 Binding

    • ssh -b 정상클라이언트IP 서버IP
    • ssh -b 192.168.50.150 192.168.50.50
    • ssh 에서 who 입력 시 192.168.50.150 으로 접속한 것으로 확인 가능

IP Spoofing (서버와 방화벽 (라우터) 이 따로 존재)

  • linux1 (firewall)
    • ens160 192.168.100.254(vmnet3)
    • ens224 192.168.200.254(vmnet4)
  • linux2 (SSH)
    • ens160 192.168.100.1(vmnet3)
  • linux3 (admin)
    • ens160 192.168.200.1(vmnet4)
  • kali (hacker)
    • eth0 192.168.200.100(vmnet4)

구조 : SSH - firewall (router) - admin, hacker

  1. iptables 기본 정책 ALL DROP
  2. admin 에서 ssh 접속 가능하도록 허용정책 설정
  3. kali 에서 ettercap 을 이용하여 admin 과 ssh 서버 사이의 통신 MITM 공격
  • ettercap -T -M arp:remote /192.168.200.254/192.168.200.1/
  • kali 는 논리적으로 firewall 과 admin 사이에 위치하게 됨
  1. admin 과 ssh 서버 사이의 통신을 kali 의 wireshark 로 확인
  2. kali 에서 ssh 접속 가능한지 여부 확인
  • 불가. 서버가 다른 네트워크 대역에 있기 때문에 ip spoofing 을 해야함
  1. kali 에서 ip spoofing 을 이용한 공격으로 SSH 서버 접속
  • ifconfig eth0:1 192.168.200.1 netmask 255.255.255.0
  • arpspoof -t 192.168.200.254 192.168.200.1 혹은 ettercap -T -M arp:remote /192.168.200.254/192.168.200.1/
  • ssh -b 192.168.200.1 192.168.100.1
  • kali 가 가상 인터페이스를 추가하여 ip 를 변조
  • kali 가 arp spoofing 으로 가상 인터페이스 ip 주소의 mac 주소를 자신의 mac 주소로 firewall (router) 에게 알려준 후 서버에게 통신 시작
profile
IT 보안, 관심 있는 것을 공부합니다.

0개의 댓글