2016. 1. 12. 08:59 :: 네트워크 보안

0. 실습 환경

가. kali

- IP : 192.168.221.130

- MAC :  00-0c-29-9a-be-c1

나. VM_win7

- IP : 192.168.221.135

- MAC :  00-0C-29-C7-7A-39

 

1. TCP/IP 취약점(공격, 분류)

가. 공격

1) Sniffing : 훔쳐보기, 도청

가) tools :  wireshark, tcpdump, cain&abel 등

나) Passive Attack, 수동적 공격

다) 도청의 인터페이스라면 wireshark 에 설정이 아래와 같이 되어있어야 한다.

- 체크되어 있으면 자신에게 오는 패킷 이외에도 들어오는 모든 것을 볼 수 있다.

2) Spoofing : 속이다

가) IP 스푸핑 : src ip 주소를 속임 (내부, 외부 공격 가능)

나) ARP 스푸핑 : src mac 주소를 속임 (내부 공격)

다) DNS 스푸핑 : DNS에 해당하는 ip 및 도메인이름을 속임 (내부, 외부 공격 가능)

 

2. Ethernet

가. 토큰링의 단점을 보완하기 위해 나옴

나. 동시에 여려명이 통신하기 위해 만든것

다. CSMA/CD

라. 최근에는 스위치 사용

마. MAC 주소 사용(IP 주소로 MAC 주소를 알아오는 것이 ARP)

바. 정상 패킷 확인(ethernet / icmp)

1) 와이어샤크에서 vmnet8 로 설정 (VM 상의 패킷을 보기 위해) 

 

2) kali 에서 win7으로 핑을 보내고 패킷을 확인한다. 

 

사. 비정상 패킷 확인

1) kali에서 # macof 명령어 실행

가) 해당 명령은 MAC Table의 용량을 초과시켜 스위치를 더미허브 처럼 행동하게 만들어 스위치의 기능을 무력화시킴

나) 랜덤의 IP, MAC 정보를 보낸다. 

 

3. IP

가. 헤더구조

1) TOS : QOS, 사이렌 울리듯이 패킷에 마킹을 한다. 지금은 많이 사용안함

- 은닉채널 : 사용하지 않는 필드에 원하는 데이터를 숨겨서 보내는 것도 가능

2) 전체길이 : 단편화 복구하기 위해 데이터의 길이를 파악하기 위해 사용

3) ID : 패킷마다 고유번호 부여

4) IP flag

가. M : 도착해서 단편화 여부에 사용

- 1 : 같은 id의 뒤에 단편화 더 있음

- 0 : 뒤에 더 없거나 끝

나. D : 라우터들이 본다. 단편화하지 말라는 여부

- 1 : 단편화하지 말라(단편화 못한, 라우터가 버린다.)

- 0 : 단편화해도 된다.

- 최근에는 대부분 0으로 한다, 1이면 라우터가 버리기 때문이다.

5) TTL : 패킷의 수명, 라우터를 지날때마다 확인한다.

- OS 마다 기본값이 다르다

- 루핑 방지용

6) Protocol : 상위 프로토콜의 정보

 

나. 패킷 

 hello... [데이터] 32 byte

 8 byte

 IP 헤더 20 byte

     : Total Len 60 byte

<-------------------------------->

40 byte                     ICMP헤더

 

 

 

 

다. 단편화 확인

1) 이더넷 환경 MTU = 1500 byte(IP헤더 포함)

- IP 헤더 20 byte 제외하면 1480 byte 씩 단편화해야한다.

2) win7 에서 kali 로 3000 byte 핑을 보냄 

 

3) 와이어샤크에서 확인 

 

4) 패킷 정보

가) 첫 번째 패킷 : 1480 + 20 = 1500 [0 ~ 1479]

나) 두 번째 패킷 : 1480 + 20 = 1500 [1480 ~ 2959]

다) 세 번째 패킷 : 3008 - 2960 = 48 / 48 + 20 = 68 [2960 ~ 3007]

- 8 byte 는 ICMP 헤더 이다.

라) 실제 데이터는 총 3000 byte 이니까 나누면 1480 + 1480 + 40 이다.

 

라. 공격종류

1) bonk, boink, treadrop

가) 조립을 제대로 할 수 없게 만드는 공격(DoS 중 하나)

나) payload를 10씩 전달한다는 가장(한번에 전송되는 데이터 크기가 10이라는 의미)

- 정상       : 0 10 20 30 40 50 60 ...

- bonk      : 0 10 20 30 30 30 30 ...

- boink     : 0 10 20 30 20 30 20 ...

- treadrop : 0 10 25 37 42 ...

0-9 10-19 25-34 37-46 42-51 (부족 혹은 겹쳐서 전송)

다) 윈도우 업데이트 되면서 해당 공격은 되지 않고, 시스템이 해당 패킷을 자동으로 drop 시킨다.

 

마. 가짜 IP 생성

1) win7 에서 방화벽 종료

2) kali 에서 # hping3 명령어 사용

3) src ip 를 속임

가) # hping3 -1 192.168.221.135 -a 192.168.221.200 -c 1 

- 와이어샤크로 확인 결과 보내는 IP(Source) 가 kali의 주소인 .130 이 아니라 .200 으로 나온다.

- 핑을 받은 win7은 MAC 주소를 보지 않고 IP만 보고 reply를 보내야하는데 .200 에 대한 MAC을 확인하기 위해 arp table을 본다.

- arp table에 .200 정보가 없기 때문에 위 사진처럼 arp requset 를 보내지만 응답을 받지 못한다.

나) 가상 win7에서 받은 패킷의 정보를 보면 src MAC은 kali, src IP 는 공격자가 조작한 .200 으로 나온다. 

 

4) src IP 를 물리 PC 주소 조작

가) # hping3 -1 192.168.221.135 -a 192.168.221.1 -c 1

나) win7 에서 받은 패킷에는 kali의 MAC 주소, 물리 PC 인터페이스 192.168.221.1 (VMnet8) 주소로 나옴 

 

다) 가상의 win7은 보낸사람의 주소로 reply를 보내지만 물리 PC는 자신이 보냈던것이 없기 때문에 reply에 대한 응답을 보내지 않음

 

라) VMwin7은 192.168.221.1의 물리 주소를 모르기 때문에 MAC 주소를 arp로 확인 후 보낸다.

① 물리 PC의 인터페이스 

 

② VMwin7이 192.168.221.1 로 응답한 패킷 내용 

- 이더넷 헤더의 목적지 MAC 주소를 보면 물리 PC의 MAC 주소가 들어있음을 확인할 수 있다.

 

5) src IP를 외부 주소로 조작

가) # hping3 -1 192.168.221.135 -a 100.100.100.100 -c 1

나) win7 에서 받은 패킷에는 kali의 MAC 주소, 100.100.100.100 주소로 나옴 

- 이더넷 헤더의 src 를 보면 kali의 MAC 주소이고, IP 헤더의 src은 조작된 100.100.100.100 을 받는다.

 

다) VMwin7은 보낸사람의 정확한 정보를 확인할 수 없으니 100.100.100.100 에게 응답을 한다. 

 

① VMwin7의 라우팅 테이블에는 100.100.100.100 정보가 없으니까 외부 네트워크(디폴트 게이트웨이 0.0.0.0)로 보낸다. 

 

② VMwin7에서 reply 하는 패킷에 IP헤더의 목적지는 100.100.100.100 이고 이더넷 헤더의 목적지 MAC 주소에는 게이트웨이의 MAC 주소가 들어가게 된다. 

 

③ VMwin7의 ARP table 

- 192.168.221.2 가 게이트웨이 이다.

- 192.168.221.1 은 물리PC의 VMnet8 의 주소이다.(물리PC의 주소)

 

 

 

 

posted by Red_Seek