ICMP Spoofing (ICMP Redirect)
-
IP 특징
- 비연결지향 : 상대가 통신할 수 있는 상태인지 확인하지 않고 통신
- 비신뢰성 : 상대의 수신 여부를 확인하지 않고 통신
-
ICMP : IP 보조 프로토콜
- 위의 IP 특징을 보완하기 위해 사용
- 역할 (목적) : 주로 통신이 원할하지 않을 때 사용 (발생)
- 오류 보고
- 전송은 됐으니 수신측 오류가 발생한걸 IP 는 모르니까 ICMP 로 오류 발생을 보고함
- 네트워크 관리 : 통신 테스트, 경로 확인 등
-
ICMP Redirect
- 라우터에서 특정 목적지 네트워크 또는 호스트로 갈 수 있는 더 효율적인 (짧은) 경로를 알리는 메세지
- 동일한 네트워크에 여러 대의 라우터가 연결되어 있을 때 비효율적인 경로로 향하게하는 라우터로 GW 설정이 되어있는 경우, 해당 라우터에서 비효율적으로 설정된 Default Route 설정을 알려줌 (통신은 효율적인 경로로 시켜주면서 동시에 리다이렉션 메세지 보냄)
- GW 이 아니라 더 효율적인 새 라우팅 정책 정보를 추가할 수 있게 해줌
-
ICMP Redirect sniffing
- 해당 메세지를 해커가 가짜로 생성 (라우팅 정보 (IP 주소) 를 변조 -> 3 계층 공격) 하여 피해자에게 전송하여, 통신이 본인에게 향하도록 주소를 가르쳐줘서 통신이 본인을 거쳐서 나가도록 유도
- 해커는 '프로토콜 : ICMP, type : 5, code : 0 or 1, message : 본인 IP 주소' 로 설정해야함
- 한계
- 외부로 전달되는 요청만 sniffing 가능. 응답 들어오는 메세지는 받을 수 없음 (단뱡향 sniffing)
- 라우터는 호스트와 직접 연결되어있기 때문에 해당 라우팅 정책이 우선순위가 높아서 라우터에게 ICMP 로 라우팅 정책을 추가해줘도 직접 연결 라우팅 정책대로 전송함
- 공격 대상의 방화벽이 ICMP 를 차단하면 공격 불가 (기본적으로 현대 운영체제에서도 ICMP redirect 차단)
실습
linux 192.168.50.50/24 (vmnet8)
XP 192.168.50.100/24 (vmnet8)
kali 192.168.50.200/24 (vmnet8)
[kali]
-
ICMP Redirect 생성
- hping3 -1 -C 5 -K 1 -a 192.168.50.2 --icmp-ipdst 8.8.8.8 --icmp-ipsrc 192.168.50.100 --icmp-gw 192.168.50.200 192.168.50.100
- 1 : ICMP, -C 숫자 : ICMP type, -K 숫자 : code 번호, -a 출발지주소 : 변조할 출발지주소 (실제 GW 주소), --icmp-ipdst 원본목적지, --icmp-ipsrc 원본출발지, --icmp-gw 공격자주소 피해자주소
-
forwarding 적용
[XP]
- ping 8.8.8.8 시 kali 를 거쳐서 요청, 응답 가능
- route print 로 라우팅 테이블 확인 가능