일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Spring
- LOB
- SQL
- 운영체제
- webhacking.kr
- hacking
- System
- 해킹
- system hacking
- 정보보안기사 실기
- Shell code
- webhacking
- pwnable
- Lord of BOF
- Operating System
- Buffer Overflow
- 네트워크
- wargame
- Payload
- 워게임
- PWN
- Spring Framework
- stack overflow
- 정보보안기사
- 웹해킹
- Pwnable.kr
- 정보처리기사 실기
- OS
- Spring MVC
- BOF
- Today
- Total
DongDD's IT
[Network Security] ARP Spoofing 본문
ARP Spoofing
ARP Protocol
- 패킷을 전송하는 경우, 목적지의 MAC Address를 모를 때, IP Address를 이용하여 MAC Address를 알 수 있게 해주는 프로토콜
- ARP Table에 IP Address와 MAC Address가 mapping되어 저장
- 송신자가 수신자의 MAC Address를 모르는 경우, ARP Protocol 과정을 거침
ARP Header
- Hardware Type(2 bytes) : 네트워크 유형 선택(Ethernet : 1)
- Protocol Type(2 bytes) : IPv4, IPv6 선택
- Hardware Length(1 bytes) : MAC Address 길이 선택(Ethernet : 6)
- Protocol Length(1 bytes) : IPv4(4), IPv6(16)
- Operation(2 bytes) : ARP Request(1), ARP Reply(2)
- Sender Hardware Address(6 bytes) : 송신자의 MAC Address
- Sender Protocol Address(4 bytes) : 송신자의 IP Address
- Receiver Hardware Address(6 bytes) : 수신자의 MAC Address
- Receiver Protocol Address(4 bytes) : 수신자의 IP Address
ARP Message
1. ARP Request
- 수신자의 MAC Address를 모를 경우, ARP Request 전송
- ARP Request같은 경우, Frame Header의 Dst MAC은 모두 1 bit로 설정하여 broadcast로 전송
- ARP Header의 MAC Address는 모르기 때문에 모두 0 bit로 설정하여 전송
2. ARP Reply
- ARP Request를 받으면, ARP Header의 Target IP Address가 자신의 IP라면 unicast로 ARP Header에 포함되 있는 Source로 자신의 MAC Address를 포함하여 전송
- 이러한 과정을 거치면서 서로의 ARP Table에 해당 IP에 대한 MAC Address가 갱신
ARP Protocol 관련 공격
ARP Cache Poisoning
- ARP Protocol의 문제점인 ARP Request 패킷이 Broadcast로 전송된다는 점을 이용해 공격자가 Request에 대한 Reply를 조작해 보내게 되면 공격자의 의도대로 ARP Table이 변경
- ARP Spoofing을 하기 위한 선행 단계로 많이 사용
ARP Spoofing
- ARP Cache Poisoning으로 ARP Table을 조작하고 공격자의 MAC Address로 조작된 ARP Table을 이용하여 상대방의 패킷을 Sniffing하는 MITM 공격
Switch Jamming
- MAC Address가 위조된 패킷을 지속적으로 전송하여 Switch가 가진 MAC Table을 오버플로우되게 하여 Switch 기능을 사용하지 못하게 하고 더미 허브와 같이 들어오는 패킷을 모두 broadcast하게 만드는 공격
ARP Spoofing 실습
- 실습 도구 : Wireshark, Cain&Abel
- 실습 환경 : Window xp 32bit, Ubuntu 16.04 32bit, Ubuntu 16.04 64bit
시나리오
Attacker(xp) : 192.168.121.130(00:0C:29:8B:~~:~~)
Receiver(ubuntu 32bit) : 192.168.121.128(00:0C:29:87:~~:~~)
Sender(ubuntu 64bit) : 192.168.121.129(00:0C:29:5D:~~:~~)
정상적인 ARP Table 확인 및 Wireshark 패킷 캡쳐
1. Sender ARP Table
- Sender의 정상적인 ARP cache table을 기록하기 위해 Sender->Receiver로 ping 전송(ping 192.168.121.128)
- Sender의 ARP cache table 확인(arp -a)
-> 192.168.121.129의 MAC Address 00:0C:29:87:~~:~~ 등록 확인
2. Recevier ARP Table
- Receiver의 정상적인 ARP cache table을 기록하기 위해 Receiver->Sender로 ping 전송(ping 192.168.121.129)
- Receiver의 ARP cache table 확인(arp -a)
-> 192.168.121.129의 MAC Address 00:0C:29:5D:~~:~~ 등록 확인
3. 정상 패킷
- 정상적인 통신 시, Attacker에서 패킷 캡쳐 시 서로의 통신을 Sniffing할 수 없음
ARP Spoofing(Cain&Abel)
1. Network 탐색
- +(Add to list) 밑에 있는 Sniffer tab으로 이동 후 왼쪽의 Start Sniffer 버튼을 눌러 활성화
- +(Add to list)를 눌러 특정 IP 대역을 scan
- Scan을 완료하면 해당 대역에서 사용되고 있는 IP Address 목록과 MAC Address 목록이 나타남
- 밑에 있는 APR tab으로 이동
2. ARP Spoofing IP 선택
- 파란색 네모 부분을 클릭한 후 +(Add to list) 버튼을 클릭
- ARP Spoofing을 시도할 두 개의 IP Address를 선택
3. ARP Spoofing
- ARP Spoof Start 버튼을 클릭하면 Status가 Poisoning으로 변경되고 ARP Spoofing 시작
ARP Spoofing 이후 ARP Table 확인
1. Sender ARP Table 확인
- Sender의 ARP cache table 확인(arp -a)
-> Receiver의 IP Address인 192.168.121.128의 MAC Address가 00:0C:29:87:~~:~~에서 Attacker의 MAC Address인 00:0C:29:8B:~~:~~로 바뀐 것을 확인
2. Receiver ARP Table 확인
- Receiver의 ARP cache table 확인(arp -a)
-> Sender의 IP address인 192.168.121.129의 MAC Address가 00:0C:29:5D:~~:~~에서 Attacker의 MAC Address인 00:0C:29:8B:~~:~~로 바뀐 것을 확인
- Sender와 Receiver의 ARP cache table이 변조된 후, Sender가 Receiver로 Ping 전송
- Sender와 Receiver는 변조 전과 마찬가지의 통신을 함
-> Forwarding
4. Attacker의 Wireshark
- Attacker의 Wireshark에서 해당 Packet이 캡쳐
- Sender와 Receiver는 Sniffing되는 것을 파악하지 못하고 제대로 된 패킷을 받는 것으로 보아 Cain이 Forwarding 수행
대응 방안
1. ARP cache table을 static으로 설정
- 변경되면 안되는 MAC Address의 경우, static 옵션을 사용하여 MAC Address가 변경되지 않도록 수동으로 설정
-> arp -s IP MAC