2016. 1. 13. 09:04 :: 네트워크 보안

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. ARP

가. 헤더 구조

1) 하드웨어 타입 : 이더넷 환경

2) 프로토콜 타입 : IP

3) 하드웨어 주소 길이 : MAC, 48비트, 6바이트

4) 프로토콜 주소 길이 : IP, 32비트, 4바이트

5) 내부에만 전달되는 패킷, ARP 헤더에 이더넥 패킷이 불어서 내부를 다님

6) L2 이더넷, L3 IP 사용

7) 요청할때에는 요청자의 MAC주소, IP주소와 알고싶은 사람의 IP주소가 들어가고 Target 하드웨어 주소에는 0으로 채워서 보낸다.

- 요청 : opcode 1

- 응답 : opcode 2

 

나. 패킷 확인

1) VMwin7에서 arp table을 초기화 시킨다.(arp 패킷을 보기 위해)

- cmd> arp -d    (관리자 권한 필요) 

2) cmd> arp -a 명령으로 arp table 이 없어진것을 확인

3) VMwin7에서 # ping 192.168.221.130 명령으로 kali에게 핑을 날리고 arp 패킷을 발생시킨다. 

 

4) 위 사진에서 첫번째 arp 패킷은 .130 의 MAC 주소를 요청하는 requst 패킷이다. 

- 보내는 정보는 VMwin7의 IP, MAC 정보가 정확하게 들어있다.

- 알고자하는 target의 정보는 IP는 알기 때문에 채워져있고, MAC은 모르기 때문에 0으로 채워서 보낸다.

 

5) 두번째 arp 패킷은 응답을 받는 reply 패킷이다. 

- reply는 위에서 핑을 받은 .130 kali가 응답을 해준다.

- 모든 정보가 채워져있다.

 

6) VMwin7은 reply를 받을때 arp table에 작성한다. (arp -a) 

- reply 패킷의 target 이 나일때에만 table을 작성

 

7) ARP reply 를 바꿔서 보내면 가짜 정보로 바꿀 수 있다.

가) opcode 2

나) target 은 VMwin7(IP, MAC)

다) sender 정보는 공격자의 정보

 

다. ARP 스푸핑

1) VMwin7에게 kali가 게이트웨이라고 속이는 경우(가로채기)

가) VMwin7에 arp table 192.168.221.2 의 MAC 주소를 kali의 주소로 바꿔야함

나) VMwin7의 게이트웨이 주소 확인 

- 게이트웨이 : 192.168.221.2

 

다) kali는 가짜 arp reply를 보내야한다.

라) # arpspoof -t [victim_ip] [속이고자하는 항목의 IP(게이트웨이)]

- # arpspoof -t 192.168.221.135 192.168.221.2

마) 공격전의 VMwin7의 arp table 

 

바) 공격후의 VMwin7의 arp table

① # arpspoof -t 192.168.221.135 192.168.221.2  

- 해당 명령을 계속 진행시켜야 적용된다.

 

② VMwin7 의 arp table 

- 게이트웨이와 kali(공격자)의 MAC 주소가 같아진다.

 

사) 공격이 진행중일때의 패킷을 확인 

- reply 패킷만 계속 보내게 된다.

- 패킷 내용의 sender 부분을 보면 IP는 게이트웨이, MAC 은 kali의 정보를 보내고 있다.

 

아) arp 스푸핑 이후 VMwin7에서 게이트웨이로 통신이 안된다. 

- 공격자(kali)가 포워딩을 해주어야 victim(VMwin7)은 정상적으로 통신이 된다.

 

자) kali 에서 # fragrouter -B1 명령 입력

차) 와이어샤크로 패킷을 확인한다. 

- requst 패킷이 2개씩 발생한다.

- 하나는 victim이 kali에 보내는 것

- 다른 하나는 kali가 victim에 받은 것을 victim 인것처럼 게이트웨이에게 전해주는 것

① 첫 번째 requst 패킷 (VMwin7 -> kali)

② 두 번째 requst 패킷 (kali -> 게이트웨이)

- reply 패킷은 게이트웨이가 kali의 패킷을 정상적으로 victim에게서 온 내용으로 속아서 응답을 victim에게 해주는 패킷이다.

(현재 게이트웨이는 속이지 않았기 때문에 공격자를 걸치지 않고 바로 VMwin7(victim) 에게 보낸다.)

 

2) 도청하기(가로채기에 이어서 진행)

가) arp 스푸핑과 kali에서 포워딩 진행중

나) 암호화 되지 않는 서버의 계정을 만들어 로그인을 해야하는 환경을 만든다.(로그인 유도)

다) VMwin7 에서 웹페이지 접속하여 로그인 시도 

 

라) 와이어샤크 확인

① ID, password 를 입력하고 전송하기 때문에 클라이언트가 서버에게 가는것을 확인해야한다.

② 와이어샤크 필터

ip.src == 192.168.221.135 && ip.dst == 192.168.1.11 && http

- 오류없이 입력하면 초록색으로 표시

http.authorization : 해당 필드를 아는경우 바로 검색 가능(urlencoded-form.value)

- 패킷 확인 

- 로그인 했던 ID, password를 도청할 수 있다.

 

3) 방어 방법

가) MAC table을 정적으로 설정해준다.

① # arp -s 명령으로 정적 설정

② netsh 명령 이용

cmd> netsh interface ip show interface : 등록한 인터페이스 이름 확인

cmd> netsh interface ipv4 add neighbors "로컬 ~~~" [ip주소] [mac주소]

cmd> netsh inetface ipv4 show neighbors "로컬 ~~~"

③ 단점

- 단말의 전원을 껐다가 키면 다시 설정해주어야한다.

- 관리 호스트의 개수가 많으면 힘들다.

 

나) 기타 방법

① 스위치 장비를 통해 정책을 뿌려준다.

② L3 sw arp snoop 기능 활성화

③ L2 sw port-security 사용

④ Network IDS, IPS 로 트래픽 모니터링

⑤ IP/MAC 정보를 모니터링 하는 프로그램 이용

⑥ 윈도우 실행 -> mmc : 위 명령 등을 부팅시 자동으로 실행되도록 설정 가능

posted by Red_Seek