[모의해킹] EP.04 ICMP Redirect

2019. 9. 23. 11:47·CERTIFICATE
반응형

ICMP Redirect

 

1 실습 목적 및 원리

ICMP 리다이렉트는 원래 라우터를 두 개 이용하는 네트워크에서 사용하던 것입니다. 하나를 기본 라우터 다른 하나를 보조 라우터라고 한다면 두 라우터는 서로의 정보를 알고 있습니다. 이때 네트워크 내에서 외부로 나가는 모든 패킷은 기본 라우터로 향하고 만약 외부의 특정 네트워크나 호스트에 대한 접속이 보조 라우터를 통하는 것이 빠르다면 기본 라우터는 특정 네트워크를 이용하고 싶으면 보조 라우터를 이용하라는 ICMP 리다이렉트 패킷을 보내 사용자의 라우팅 테이블을 변경하도록 합니다. 지금은 거의 사용하지 않는 구조의 네트워크이고 대부분의 ICMP 패킷을 차단하는 추세이지만 간혹 ICMP 리다이렉트를 이용한 해킹이 있습니다.

 

정상적인 ICMP 리다이렉트

1 : 사용자가 특정 네트워크(호스트)로 접속하기 위해 기본 라우터로 패킷 전송

2 : 라우터 B를 통하는 것이 더 빠른 경우 라우터 A가 사용자에게 ICMP 리다이렉트 패킷 전송

3 : 사용자의 라우팅 테이블이 변경되고 특정 네트워크(호스트)에 접속할 때 라우터 B로 패킷 전송

 

ICMP 리다이렉트를 이용한 공격

1 : ICMP 리다이렉트 패킷 전송

2 : 라우터가 아닌 공격자에게 패킷 전송

3 : 패킷 릴레이

 

2 실습 환경

공격자 - IP : 192.168.10.150(fedora), MAC : 00:0c:29:9b:94:96

공격 대상 - IP : 192.168.10.151(winXP), MAC : 00:0c:29:ed:fe:16

라우터 - IP : 192.168.10.1, MAC : 00:26:66:d5:e1:08

접속할 특정 호스트 - IP : 125.209.210.79(map.naver.com)

 

 

3 실습 준비

3.1 공격자 - icmp_redir.c 파일 컴파일

첨부파일의 icmp_redir.c 파일을 gcc를 이용하여 컴파일하여 icmp_redir 파일을 만듭니다.

- # gcc -o icmp_redir icmp_redir.c

 

3.2 공격 대상 - 라우팅 테이블

공격 대상의 라우팅 테이블을 미리 확인해봤습니다.

- > route print 명령어로 라우팅 테이블을 확인할 수 있습니다.

 

4 실습

(1) fragrouter를 이용해 패킷 릴레이를 해주고 tcpdump를 이용해 패킷을 캡처합니다.

- fragrouter를 이용한 패킷 릴레이

 

- tcpdump를 이용해 패킷 캡처

 

(2) 공격 대상에게 icmp 리다이렉트 공격을 실시합니다.

- # ./icmp_redir (게이트웨이) (공격 대상 IP) (공격 대상이 접속하려는 IP) (공격자 IP)

 

(2) 공격 대상의 라우팅 테이블을 확인합니다.

- 라우팅 테이블에 125.209.210.79에 대한 라우팅 테이블이 생긴 것을 확인할 수 있습니다.

 

(3) 라우팅 테이블 삭제

- > route delete (목적지 네트워크) mask (서브넷 마스크) 명령어를 이용해 라우팅 테이블을 삭제합니다.

 

 

5 패킷 분석 및 결과

​5.1 ICMP 패킷 분석

icmp 패킷 캡쳐

00 0C 29 ED FE 16 00 0C 29 9B 94 96 08 00 45 00

00 38 14 7B 00 00 40 01 D0 61 C0 A8 0A 01 C0 A8

0A 97 05 01 2F C0 C0 A8 0A 96 45 00 00 38 14 7B

00 00 40 00 4A EB C0 A8 0A 97 7D D1 D2 4F 00 00

00 00 00 00 00 00

 

Ethernet header 분석

Destination MAC address

00:0c:29:ed:fe:16

Source MAC address

00:0c:29:9b:94:96

Type

08 00 (IP)

 

IP header 분석

Version

Header len TOS

Total length

0100 (IPv4)

0101 (5words) 00000000(사용안함)

00000000 00110100 (52bytes)

Identification

Flag

Fragment offset

00010100 01111011

000(분할되지 않음)

00000 00000000

TTL

Protocol type

header checksum

01000000 (64)

00000001(1:ICMP)

11010000 01100001

Source IP address

11000000 10101000 00001010 00000001 (192.168.10.1)

Destination IP address

11000000 10101000 00001010 10010111 (192.168.10.151)

 

ICMP 패킷 분석

Type

Code Checksum

00000101 (5:redirect)

00000001(호스트 리다이렉트) 00101111 11000000

새로운 게이트웨이 IP

11000000 10101000 00001010 10010110 (192.168.10.150)

 

Version

Header len TOS

Total length

0100 (IPv4)

0101 (5words) 00000000(사용안함)

00000000 00110100 (52bytes)

Identification

Flag

Fragment offset

00010100 01111011

000(분할되지 않음)

00000 00000000

TTL

Protocol type

header checksum

01000000 (64)

00000000(0:hop-by-hop option)

01001010 11101011

Source IP address

11000000 10101000 00001010 10010111 (192.168.10.151)

Destination IP address

01111101 11010001 11010010 01001111 (125.209.210.79)

 

분석 결과

ICMP 리다이렉트 패킷으로 라우터(192.168.10.1)에서 공격 대상(192.168.10.151)에게 125.209.210.79로 접속하려면 새로운 게이트웨이 192.168.10.150을 이용하라고 알리는 패킷입니다.

 

5.2 TCP 통신 패킷 분석

5.2.1 첫 번째 패킷 분석

패킷 캡처

00 0C 29 9B 94 96 00 0C 29 ED FE 16 08 00 45 00

00 30 06 1F 40 00 80 06 D9 48 C0 A8 0A 97 7D D1

D2 4F 04 4E 00 50 B8 79 6D D9 00 00 00 00 70 02

FF FF 3C CE 00 00 02 04 05 B4 01 01 04 02

 

Ethernet header 분석

Destination MAC address

00:0c:29:9b:94:96

Source MAC address

00:0c:29:ed:fe:16

Type

08 00 (IP)

 

IP header 분석

Version

Header len TOS

Total length

0100 (IPv4)

0101 (5words) 00000000(사용안함)

00000000 00110000 (48 bytes)

Identification

Flag

Fragment offset

00000110 00011111

010(분할되지 않음)

00000 00000000

TTL

Protocol type

header checksum

10000000 (128)

00000006(6:TCP)

11011001 01001000

Source IP address

11000000 10101000 00001010 10010111 (192.168.10.151)

Destination IP address

01111101 11010001 11010010 01001111 (125.209.210.79)

 

TCP header 분석

Source port #

Destination port #

00000100 01001110 (1102)

00000000 01010000 (80)

Sequence #

ACK #

10111000 01111001 01101101 11011001

00000000 00000000 00000000 00000000

Header len

예약 U A P R S F

Window size

0111(7words)

000000 0 0 0 0 1 0

11111111 11111111 (65535)

Checksum

Urgent point

00111100 11001110

00000000 00000000

 

분석 결과

공격 대상(192.168.10.151)이 map.naver.com(125.209.210.79)과 연결하기 위해 SYN 패킷을 보내지만 이 패킷은 게이트웨이가 아닌 공격자(00:0c:29:9b:94:96)에게 전달됩니다.

 

5.2.2 두 번째 패킷 분석

패킷 캡처

00 26 66 D5 E1 08 00 0C 29 9B 94 96 08 00 45 00

00 30 06 1F 40 00 80 06 D9 48 C0 A8 0A 97 7D D1

D2 4F 04 4E 00 50 B8 79 6D D9 00 00 00 00 70 02

FF FF 3C CE 00 00 02 04 05 B4 01 01 04 02

 

Ethernet header 분석

Destination MAC address

00:0c:29:d5:e1:08

Source MAC address

00:0c:29:9b:94:96

Type

08 00 (IP)

 

IP header 분석

Version

Header len TOS

Total length

0100 (IPv4)

0101 (5words) 00000000(사용안함)

00000000 00110000 (48 bytes)

Identification

Flag

Fragment offset

00000110 00011111

010(분할되지 않음)

00000 00000000

TTL

Protocol type

header checksum

10000000 (128)

00000006(6:TCP)

11011001 01001000

Source IP address

11000000 10101000 00001010 10010111 (192.168.10.151)

Destination IP address

01111101 11010001 11010010 01001111 (125.209.210.79)

 

TCP header 분석

Source port #

Destination port #

00000100 01001110 (1102)

00000000 01010000 (80)

Sequence #

ACK #

10111000 01111001 01101101 11011001

00000000 00000000 00000000 00000000

Header len

예약 U A P R S F

Window size

0111(7words)

000000 0 0 0 0 1 0

11111111 11111111 (65535)

Checksum

Urgent point

00111100 11001110

00000000 00000000

 

분석 결과

첫 번째 패킷을 받은 공격자(00:0c:29:9b:94:96)가 공격 대상(192.168.10.151)이 정상적으로 map.naver.com(125.209.210.79)에 접속하도록 라우터(00:0c:29:d5:e1:08)로 패킷을 전달해줍니다.

 

6 공격 대응 방안

6.1 windows XP에서 ICMP 차단

(1) 제어판 - 보안센터 - windows 방화벽 선택



(2) 고급 탭에서 ICMP 설정 선택



(3) 차단할 ICMP 선택 해제

 

6.2 리눅스에서 ICMP 차단

# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all (or icmp_ignore_all)

/proc/sys/net/ipv4/ 경로에 있는 icmp ignore 파일의 내용을 1로 바꿔주면 icmp를 차단합니다.

 

 

반응형

'CERTIFICATE' 카테고리의 다른 글

[모의해킹] EP.06 : 터널링(Tunneling)  (0) 2019.10.01
[모의해킹] EP.05 : DNS Spoofing  (2) 2019.09.24
[모의해킹] EP.03 : ARP Spoofing  (0) 2019.09.19
[모의해킹] EP.02 : ARP Redirect  (1) 2019.09.18
[모의해킹] EP.01 : 스니핑- telnet  (1) 2019.09.17
'CERTIFICATE' 카테고리의 다른 글
  • [모의해킹] EP.06 : 터널링(Tunneling)
  • [모의해킹] EP.05 : DNS Spoofing
  • [모의해킹] EP.03 : ARP Spoofing
  • [모의해킹] EP.02 : ARP Redirect
루트
루트
정보보안과 IT를 연구하는 루트 연구소
    반응형
  • 루트
    루트 티스토리
    루트
  • 전체
    오늘
    어제
    • 분류 전체보기 (90)
      • STUDY (4)
        • DB (1)
        • Cloud (2)
        • Network (1)
      • 비트코인 (4)
        • 암호화폐 (4)
      • CERTIFICATE (39)
        • 정보보안기사 (5)
        • 정보관리기술사 (13)
        • CPPG (1)
        • AWS (2)
        • 프로그래밍 (0)
      • INFORMATION (30)
        • IT 제품 리뷰 (2)
        • SW 사용 리뷰 (2)
        • 면접 리뷰 (3)
      • STORY (11)
        • 일상 (11)
  • 블로그 메뉴

    • Brunch
    • Youtube
    • 관리자
  • 링크

  • 공지사항

    • 카테고리 리뉴얼 진행중
    • 20.10.11 정보관리기술사 ~ ing
  • 인기 글

  • 태그

    모의해킹
    브런치
    컴퓨터보안
    정보보안전문가
    정보보안
    클라우드
    보안전문가
    칼퇴
    30살에 시작하는 퇴사준비
    매거진
    자격증
    꿀팁
    ChatGPT
    it
    해커
    직장인
    블록체인
    해킹
    아이티
    잇츠밍
    비트코인
    정보보안기사
    KISA
    공부
    암호화폐
    정보관리기술사
    작가
    누구나쉽고재밌게아이티알려주는남자
    유튜브
    보안
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
루트
[모의해킹] EP.04 ICMP Redirect
상단으로

티스토리툴바