우리가 직접 로우 패킷을 조작하여 헤더들을 보내기 위해서는 체크섬을 계산 할 줄 알아야한다.
체크섬이 잘못 계산되면 전송중 패킷이 손상되었다고 판단되어 오류가 난다.
체크섬(checksum)
- 중복 검사의 한 형태로, 오류 정정을 통해, 공간(전자 통신)이나 시간(기억 장치) 속에서 송신된 자료의 무결성을 보호하는 단순한 방법이다.
- 체크섬이 맞아 떨어지는지 확인해 봄으로써 메시지가 손상되지 않았다고 결론을 내릴 수도 있다.
- 체크섬을 구하기 위해 체크섬 필드를 제외한 모든 필드를 더해서 구한다.
7 ~ 8 : 데이터가 홀수 바이트면 제로바이트를 더해줘서 짝수 바이트가 되도록 만든다.
12 : 숫자화된 모든 필드를 모두 더한다.
14 ~ 17 : 올림수, 즉 16진수의 다섯번째 자릿수가 생기지 않을때 까지 반복한다.
18 : 올림수를 나머지 16비트와 더해준다.
20 ~ 22 : 1의 보수를 취하고 값을 리턴한다.
ICMP(Internet Control Message Protocol, 인터넷 제어 메시지 프로토콜)
- 네트워크 컴퓨터 위에서 돌아가는 운영체제에서 오류 메시지를 전송받는 데 주로 쓰인다.
- 인터넷 프로토콜의 주요 구성원 중 하나로 인터넷 프로토콜에 의존하여 작업을 수행한다.
- 프로토콜 번호 1로 할당되고 시스템 사이에 데이터를 교환하지 않거나 최종 사용자에
ICMP 헤더(8byte)
1. type(1byte)
- 0(Echo reply) , 3(Destination Unreachable) , 8(Echo request)
2. code(1byte)
- type 0과 type 8은 코드가 없음.
- type 3은 0~13 까지의 코드가 있다.
ex) type 3 code 3(Destination Unreachable / Port Unreachable) : 포트가 닫혀있어서 icmp 메세지가 도착할 수 없다.
3.checksum(2byte)
4.payload(4byte)
1). id(2byte)
2). seq(2byte)
5. data (없어도됨)
'Hacking > Network' 카테고리의 다른 글
[16일차] IP 패킷 분할해서 핑 보내기 (0) | 2017.10.15 |
---|---|
[15일차] ICMP 패킷 만들어서 핑 보내기 (0) | 2017.10.13 |
[13일차] IP 헤더의 id 와 flag & fragment offset (0) | 2017.10.12 |
[12일차] ARP 스니핑 (0) | 2017.10.10 |
[11일차] ARP 요청하기 (0) | 2017.09.28 |
WRITTEN BY