Layer 1 - 물리적인 전송을 담당한다.
- 전기 신호
ex) 허브에 스타토폴로지로 host들이 연결되있다.
한 host에서 전기신호를 보내고 그 전기신호를 수신하여서 데이터를 주고받는다.
Layer 2 - 데이터 링크 계층
- 터널링관련 프로토콜 : PPP, L2TP, ...
- 라우팅이 필요하지 않는 계층
- 라우팅없이도 통신이 가능하다.
- 이더넷, 토큰링방식
토큰링 방식 (토큰을 가진사람만 보낼 수 있고, 그 토큰은 네트워크를 돌아다닌다., 충돌을 예방하는 방법이다.)
- 단점 : 토큰이 돌아서 내 차례가 될때까지가 오래걸린다.
이더넷 : Collison Domain (충돌을 이용한다.)
이더넷 헤더 (고정 : 14바이트)
-우리는 보통 이더넷을 사용한다.
* 각 계층별 주소
L4 - Port Number
L3 - IP Address
L2 - MAC 주소. (Media Access Control) : 하드웨어 주소
- 16진수 6자리 (유일한 주소)
L2까지 합하면 패킷의 구성은
- 이더넷 + IP + TCP/UDP + 데이터
지금까지 IP, TCP/UDP, 데이터까지 보았다.
기존에 만들었던건 윈도우즈 소켓을 이용해 패킷을 덤프했던 것이다.
이 윈도우즈소켓으로는 L3까지밖에 확인이 안된다.
그래서
L2까지 보기위해 다른 방법을 사용해보겠다.
새로 만든 모듈을 이용했다.
(모듈로 설정한 get_device)
(실행화면)
어떤 장치로 들어오고 나가는 내용을 화면에 출력할지를 정해야한다.
화면에서 Microsoft 라고 나온것이 무선어댑터 지금 사용하는 것이다.
실행하면 인터페이스를 선택하라고 나온다.
이 때 여기서 나오는 인터페이스란
제어판에서 네트워크 정보에갔을 때 나오는 목록이다.
이 목록은 컴퓨터의 네트워크 장치이다.
이제 이 장치로부터 패킷을 가져와 열어보겠다는 것이다.
(두개의 어댑터)
이 화면은 집마다 다르다.
여기서 전에 소켓통신했던것과 유사하게
핸들러(장치를 다룰) 를 선언했다. 소켓과 비슷한 역할이다.
그 후 전에 덤프 프로그램과 비슷하게 작성해준다.
(패킷을 덤프받아 출력하는 코드)
이렇게 하면 전에 사용했던 프로그램과 비슷한 모양의 코드가 된다.
(실행 화면)
출력을 해보면 데이터가 출력된다.
캡쳐된 내용을 보면 앞에 14바이트 빼고는 지금까지 봤던 정보들이다.
앞에 14바이트는 이더넷프레임이다.
['0xff', '0xff', '0xff', '0xff', '0xff', '0xff', '0x90', '0x9f', '0x33', '0xeb', '0x34', '0xa1', '0x8', '0x0']
분석해보면
1. 도착지 맥주소(6바이트) : 0xff', '0xff', '0xff', '0xff', '0xff', '0xff
2. 출발지 맥주소(6바이트) : '0x90', '0x9f', '0x33', '0xeb', '0x34', '0xa1'
3. 프로토콜 타입(2바이트) : '0x8', '0x0'
- 0x0800 -> IPv4 , IP 프로토콜
0x8600 -> IPv6
0x0806 -> ARP 프로토콜
통신을 하려면 MAC주소를 알아야한다. 하지만 우리는 IP주소만 알고있다.
그렇기 때문에
ARP 가 필요하다.
ARP : Address Resolution Protocol
이제 전에 작성했던 프로그램에서 L2까지 나오는프로그램으로 확장시켜본다.
(확장 코드)
(출력 화면)
출력 화면을 보면 이제 L2의 프레임 단위로 패킷을 확인할 수 있는것을 볼 수 있다.
이제 내일부터
이 내용을 가지고 네트워크를 살펴보겠다.
'Hacking > Network Hacking' 카테고리의 다른 글
Network Hacking - ARP Cache Poisoning (2) | 2016.12.27 |
---|---|
Network Hacking - ARP (Address Resolution Protocol) (0) | 2016.12.23 |
Network Hacking - IP Address, 서브넷마스크, public network, fragmentaion (0) | 2016.12.22 |
Network Hacking - TCP, 3 Way-Handshaking, IP Address (0) | 2016.12.21 |
Network Hacking - TCP Header 분석 (0) | 2016.12.20 |