[ 12. GRE Sniffing ] - GRE Tunneling Attack 모의환경 구성
[학습] WMware 환경설정 ( 중단 ) /2. 네트워크 해킹 파트 2013. 4. 19. 14:52[ 모의환경 구성도 ]
- 외부 네트워크단의 공격자가 터널을 뚫어 피해대상의 데이터를 스니핑한다.
( 최대한 자세하게 기술하였으나, 나중엔 해당 구성도만 보고도 스스로 구성할 수 있도록 숙달 연습하셔야 합니다 )
구성 후, 핑이 통하는지 확인합니다. 당연히 공격자는 피해자의 라우터까지만 도달하고, 피해자는 공격자의 라우터까지만 도달되는 상태여야 합니다. 내부는 네트워크 대역이 다른 사설아이피니까요.
실전이라면, 라우터-다음 라우터까지의 거리를 디폴트 라우팅해주어야 하지만, 모의도에서는 직접 ISP와 공격자/피해자가 직접 맞닿아(=Connected) 되어 있죠? 그래서, 디폴트 라우팅을 설정해주셔도 되지만, 지금은 안 해주셔도 핑이 가는 데엔 문제가 없습니다.
직접 커넥팅되면 ISP라는 라우터는 상대방을 알아서 학습(Learning) 하기 때문입니다.
이제 ISP를 위시한 WAN망( Router 들 ) 의 통신환경을 설정해 주어야 합니다. 보시다시피 OSPF 를 사용합니다.
이하 설명들은 반어체를 사용하겠습니다.
(1) 기본 설정
VICTIM_XP : 172.16.10.1
VICTIM_SERVER : 172.16.20.1
VICTIM_ROUTER FA0/0 : 172.16.10.254
VICTIM_ROUTER FA0/1 : 172.16.20.254
ATTACK_BT : 192.168.30.1
ATTACK_ROUTER : 192.168.30.254
[ Victim_Router 최소기본세팅 ]
1. 내부단 핑을 통하게 만든다.
Victim_Router#en
Victim_Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Victim_Router(config)#no ip domain-lookup
Victim_Router(config)#line con 0
Victim_Router(config-line)#exec-timeout 0 0
Victim_Router(config-line)#logging synchronous
Victim_Router(config-line)#exit
Victim_Router(config)#do sh ip int bri
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 unassigned YES unset administratively down down
FastEthernet0/1 unassigned YES unset administratively down down
Serial1/0 unassigned YES unset administratively down down
Serial1/1 unassigned YES unset administratively down down
Serial1/2 unassigned YES unset administratively down down
Serial1/3 unassigned YES unset administratively down down
Victim_Router(config)#int fa0/0
Victim_Router(config-if)#ip addr 172.16.10.254 255.255.255.0
Victim_Router(config-if)#no shutdown
Victim_Router(config-if)#int fa0/1
Victim_Router(config-if)#i
*Mar 1 00:06:58.587: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Mar 1 00:06:59.587: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
Victim_Router(config-if)#ip addr 172.16.20.254 255.255.255.0
Victim_Router(config-if)#no shut
Victim_Router(config-if)#exit
Victim_Router(config)#
*Mar 1 00:07:08.035: %LINK-3-UPDOWN: Interface FastEthernet0/1, changed state to up
*Mar 1 00:07:09.035: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up
Victim_Router(config)#
Victim_Router(config-router)#int s1/0
Victim_Router(config-if)#ip addr 1.1.12.1 255.255.255.240
Victim_Router(config-if)#no shut
Victim_Router(config-if)#
내부 핑 확인.
[ Attack_Router 최소기본세팅 ]
1. 내부 핑을 통하게 만든다.
Attack_Router#EN
Attack_Router#CONF T
Enter configuration commands, one per line. End with CNTL/Z.
Attack_Router(config)#no ip domain-lookup
Attack_Router(config)#line con 0
Attack_Router(config-line)#exec-timeout 0 0
Attack_Router(config-line)#logging syn
Attack_Router(config-line)#exit
Attack_Router(config)#do sh ip int bri
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 unassigned YES unset administratively down down
FastEthernet0/1 unassigned YES unset administratively down down
Serial1/0 unassigned YES unset administratively down down
Serial1/1 unassigned YES unset administratively down down
Serial1/2 unassigned YES unset administratively down down
Serial1/3 unassigned YES unset administratively down down
Attack_Router(config)#int fa0/0
Attack_Router(config-if)#ip addr 192.168.30.254 255.255.255.0
Attack_Router(config-if)#no shutdown
Attack_Router(config-if)#do ping 192.168.
*Mar 1 00:13:59.627: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Mar 1 00:14:00.627: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
Attack_Router(config-if)#do ping 192.168.30.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.30.1, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 8/21/36 ms
Attack_Router(config-if)#
Attack_Router(config)#int s1/1
Attack_Router(config-if)#ip addr 1.1.23.3 255.255.255.240
Attack_Router(config-if)#no shut
[ ISP ]
양쪽 시리얼 인터페이스를 오픈시켜준다.
ISP(config)#int s1/0
ISP(config-if)#ip addre 1.1.12.2 255.255.255.240
ISP(config-if)#no shut
ISP(config-if)#
ISP(config-if)#int s1
*Mar 1 00:23:43.083: %LINK-3-UPDOWN: Interface Serial1/0, changed state to up
*Mar 1 00:23:44.083: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1/0, changed state to up
ISP(config-if)#int s1/1
ISP(config-if)#ip addr 1.1.23.2 255.255.255.240
ISP(config-if)#no shut
ISP(config-if)#do sh
*Mar 1 00:23:58.247: %LINK-3-UPDOWN: Interface Serial1/1, changed state to up
*Mar 1 00:23:59.247: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1/1, changed state to up
ISP(config-if)#do sh ip int bri
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 unassigned YES unset administratively down down
FastEthernet0/1 unassigned YES unset administratively down down
Serial1/0 1.1.12.2 YES manual up up
Serial1/1 1.1.23.2 YES manual up up
Serial1/2 unassigned YES unset administratively down down
Serial1/3 unassigned YES unset administratively down down
ISP(config-if)#
OSPF 프로토콜로 Router 간을 네트워크로 묶어서 통신이 가능하게 만든다.
= 이건 공격자나 피해자가 지정하는게 아니라, 외부 ISP 업체의 네트워크 묶음이라고 보면 된다.
( 여러 개의 OSPF 가 있을 경우, 식별 번호로 프로세스 아이디를 쓰지만, 모의환경은 단 하나이므로 아무 숫자나 써도 좋다. )
보통 OSPF의 사설 네트워크는 외부 공인단에 광고하지 않는다.
가지고 있는 공인 네트워크만 광고한다. ( =인터페이스 개수에서 사설망 제외 )
와일드카드 마스크 = 0.0.0.0 ( 아이피 고정 ) 임을 유의.
1. OSPF 를 위한 Victim_Router 의 설정
= 해당 라우터간 라인에 광고할 공인 광고는 1.1.12.0/28 라인 인터페이스 한 개 뿐이다.
[ 확인 ]
Victim_Router#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.23.2 0 FULL/ - 00:00:39 1.1.12.2 Serial1/0
2. OSPF 를 위한 ISP Router 의 설정
= 시리얼 보시다시피 양쪽 라인 다 광고해야 한다.
[ 확인 ]
ISP(config-router)#do show ip ospf nei
Neighbor ID Pri State Dead Time Address Interface
192.168.30.254 0 FULL/ - 00:00:38 1.1.23.3 Serial1/1
172.16.20.254 0 FULL/ - 00:00:33 1.1.12.1 Serial1/0
3. OSPF 를 위한 Attack_router 의 설정
= 라우터간 자신의 인터페이스 하나를 광고한다. 사설쪽은 X
[ 확인 ]
Attack_Router#show ip ospf nei
Neighbor ID Pri State Dead Time Address Interface
1.1.23.2 0 FULL/ - 00:00:39 1.1.23.2 Serial1/1
[ ISP 의 라우팅 정보 확인 ]
[ Victim_Router 의 정보 확인 ]
[ Attack_Router 의 정보 확인 ]
여기까지 연결하면 이제, 피해자-공격자 router 까지 Ping 은 가지만, 사설 네트워크단끼리의 통신은 여전히 되지 않는다.
당연히, 하위의 사설 대역은 알려 준 적도 없으니, 상대방이 길을 모르기 떄문이다.
공격자의 호스트(사설대역)가 피해자의 사설 호스트에 핑을 보내면, 해당 라우터까지는 도달은 하지만, 그 라우터는 응답을 보내야 할 목적지의 사설 대역을 알 도리가 없으니 Drop 시켜 버린다.
사설대역을 공인대역으로 끌어올리는 NAT 설정을 해 주어야 한다.
[ NAT 설정 ]
TIP : NAT 의 범위를 ACL 로 지정해야 하는데, 거기서 보통 와일드카드 마스크를 0.0.0.255 로 줘서, 해당 마지막 호스트 부분만 공인으로 돌리는 케이스를 많이 볼 수 있다.
허나 이는, 차후 사설 네트워크단을 추가할 때, 불필요한 대역 낭비로 인한 재수정을 초래할 수 있으므로, 처음부터 가장 효율적으로 허용할 네트워크 범위를 구성해 주는 것이 좋다.
16 8 4 2 1
172.16.|10.0 ------------- 0000 1010 = 10
172.16.|20.0 ------------- 0001 0100 = 20
--------------- ------------- --------------
0 0 ( ) 255 0001 1110 = 30 ( 둘다 0이 아니면 무조건 1 )
= 0.0.30.255 로 설정하면 가장 효율적인 와일드카드 마스크가 된다.
1. 전체 NAT 구성 ( Victim_Router )
= ACL로 172.16.10.0 단과 172.16.20.0 단만을 효율적으로 네트워크 범위를 정해서, 외부 공인 대역으로 설정(NAT)
= 내부의 ACL의 범위는 인터페이스 S1/0를 통과할 때 NAT 임을 설정. ( Overload )
2. 라우터를 기준으로 해당 인터페이스의 In/Out 범위를 설정
3. Attack_Router 의 NAT 설정 ( 동일하다 )
핑 테스트 해본다. 정상적으로 도달해야 한다.
모의환경 구성 끝
터널링 및 스니핑 공격은 다음 장에서.
[ 공격 모의 연결도 ]
'[학습] WMware 환경설정 ( 중단 ) > 2. 네트워크 해킹 파트' 카테고리의 다른 글
[ 13. PPTP ] (0) | 2013.04.18 |
---|---|
[ 12. GRE Sniffing ] - GRE Tunneling 개요 (0) | 2013.04.17 |
[ 11. NMS/SNMP/TFTP ] - SNMP 공격 기법( Messange / TFTP/ Proxy ) (0) | 2013.04.16 |
[ 11. NMS/SNMP/TFTP ] - SNMP 개론 (3) | 2013.03.29 |