[ 모의환경 구성도 ]

 

- 외부 네트워크단의 공격자가 터널을 뚫어 피해대상의 데이터를 스니핑한다.

( 최대한 자세하게 기술하였으나, 나중엔 해당 구성도만 보고도 스스로 구성할 수 있도록 숙달 연습하셔야 합니다 )

 

 

 

구성 후, 핑이 통하는지 확인합니다. 당연히 공격자는 피해자의 라우터까지만 도달하고, 피해자는 공격자의 라우터까지만 도달되는 상태여야 합니다. 내부는 네트워크 대역이 다른 사설아이피니까요.

실전이라면, 라우터-다음 라우터까지의 거리를 디폴트 라우팅해주어야 하지만, 모의도에서는 직접 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 설정 ( 동일하다 )

 

 

핑 테스트 해본다. 정상적으로 도달해야 한다. 

 

 

모의환경 구성 끝

터널링 및 스니핑 공격은 다음 장에서.

 

 

 

[ 공격 모의 연결도 ]

 

 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,