오늘은 지금까지 분석해왔던 패킷을 직접 만들어볼 것이다.
오늘은 L2 계층의 패킷을 만들어볼 것이다.
대표적인 ARP 패킷을 만들것이다.
ARP패킷에 들어가는 내용은
이더넷 헤더(14바이트), ARP 헤더(28바이트) -> 총 42바이트가 들어간다.
먼저
패킷을 만드는 코드를 짜야된다.
(패킷 생성 코드)
가운데 주석 표시해 둔 곳에
내용에 맞는 패킷을 작성하면 된다.
(패킷 내용을 작성한 코드)
(실행해서 덤프받은 화면)
위 화면은 ARP 패킷을 전송한 것을 덤프받아서 확인한 결과이다.
아래 바로 ARP 응답 패킷또한 확인 할 수 있다.
ARP 응답은 Operation이 2이다.
ARP 패킷을 만들어서 전송하면서 발견한 취약점.
* ARP 패킷을 받으면 그 받은 host는 그 내용을 무조건 신뢰하며
그 데이터에 따라 자기 캐쉬 테이블을 업데이트한다.
우리가 패킷 내용을 작성해서 보냈지만,
솔직하게 데이터를 쓰지 않을 수도 있는것 아닐까?
그렇게 되면 상대 host의 ARP 테이블은 어떻게 될까?
(나의 맥주소를 77:77:77:77:77:77 이라고 속인 코드)
이렇게 ARP 패킷을 스푸핑했다.
스푸핑 -> 속이다.
옆 사람이 내 컴퓨터로 ARP 패킷을 조작해서 보낸 결과는 다음과 같다.
(아래에 192.168.3.239 주소 맥주소)
192.168.3.239의 맥주소를 보면 이상하다.
aa-bb-cc-dd-ee-ff 라니?...
게다가 하면서 더 요상한걸 발견했다.
ARP 패킷을 보내는데
IP주소도 변조해서 보낸다면?...
(엉망이된 나의 ARP 테이블)
위 화면을 보면 요상한 맥주소들이 등록되어있다.
이 경우 아주 착하게도 맥주소가 잘못된것을 바로 알기 쉽지만
보통 일반적인쓰레기맥주소를 입력한다면 구별하기 힘들것이다.
또 이로 인해 네트워크 통신에 문제가 생길 수 있다.
바로 이렇게 ARP 테이블을 망쳐놓는다 해서
이 공격이름은 ARP Cache Poisoning 이라고 한다.
'Hacking > Network Hacking' 카테고리의 다른 글
Network Hacking - Packet Sniffer 만들기 (0) | 2016.12.28 |
---|---|
Network Hacking - ARP Cache Poisoning(2) (0) | 2016.12.28 |
Network Hacking - ARP (Address Resolution Protocol) (0) | 2016.12.23 |
Network Hacking - Layer 2, Data Link Layer (0) | 2016.12.22 |
Network Hacking - IP Address, 서브넷마스크, public network, fragmentaion (0) | 2016.12.22 |