* ICMP Redirect
-> 원리
- 라우터가 송신 측 호스트에 적합하지 않은 경로로 되어 있으면 해당 호스트에 대한 최적 경로를 다시 지정해주는 ICMP Type이다.
- 이를 악용하면 패킷을 가로채는 것이 가능하다.
[실습]
- 실습 환경 : Victim -> WindowsXP ( IP : 10.10.10.10) - 실습 환경 Attacker -> BackTrack ( IP : 10.10.10.30) |
- 실습을 진행하기 전에 아래와 GNS3을 이용하여 아래와 같이 토폴로지를 구성한다.
- 다음과 같은 명령어를 이용하여 icmpush를 다운받는다.
wget http://security.ubuntu.com/ubuntu/pool/universe/i/icmpush/icmpush_2.2-6.1_i386.deb |
- 설치를 진행한다.
- 옵션을 확인하는 명령어는 다음과 같다.
- 본격적으로 공격을 진행하기에 앞서 Victim의 라우팅 테이블을 확인한다.
- 이제 공격을 진행한다.
100.100.100.0대역으로 가는 패킷은 Attacker을 거쳐서 가도록 한다.
- 옵션은 아래와 같다.
icmpush -vv -red -sp [GW] -gw [redi-GW] -dest [Destination] -c host [Victim] |
-vv |
자세히 보기 |
-red |
icmp redirect attack |
-sp |
원래 GW |
-gw |
재지정할 GW |
-dest |
라우팅 테이블에 등록할 목적지 주소 |
-c |
code(host : 특정 호스트 지정, net : 특정 네트워크 지정) |
host |
패킷을 받을 host의 주소 |
- 이때 패킷을 확인해본다.
(ICMP 헤더 분석은 http://itlearner.tistory.com/236<-을 참고한다.)
- Src IP를 진짜 GW의 주소로 바꾸어서 Redirect 메세지를 보낸 것을 확인할 수 있다.
- 다시 라우팅 테이블을 확인하면 100.100.100.0대역으로 가는 Gateway주소가 10.10.10.30(Attacker의 IP)주소로 변경된 것을 확인할 수 있다.
- 이제 100.100.100.0대역으로 가는 패킷은 Attacker을 거쳐 갈 것이다.