NetworkHacking(36)
-
UDP ( User Datagram Protocol )프로그래밍
이전 게시글에서 게시한 Udp.py 파일에서 setter를 지정하고 Udping.py를 이용해 값을 초기화 시켜 udp통신을 해보자import socketfrom header.udp import *from header.eth import *from header.ip import * #체크섬 구하는 함수def make_chksum( header ): size = len( header ) if size % 2: header = header + b'\x00' size = len( header ) size = size // 2 header = struct.unpack('!' + str(size) + 'H', header ) chksum = sum( header ) carry = chksum & 0xFF0000 ..
2017.07.10 -
IP Fragment( IP단편화 ) 프로그래밍
1> IP조각화 ( 단편화 )큰 IP패킷들은 MTU ( Maximun Transmission Unit )를 갖는 링크를 통해 전송되려면 적적할 크기의 여러개의 작은 패킷들로 쪼개져서 전송된다최종 목적지에 도달하면 쪼개진 패킷들은 다시 원래의 큰 패킷으로 재조립(Reassembly) 되어진다 2> IPv4 헤더 단편화 제어 필드[ IP Header ] * Identifier ( 2byte ) - 각 조각이 동일한 데이터 그램에 속하면 같은 번호를 가진다 * Flag & Fragment Offset ( 2byte ) - Flag : 분열의 특성을 나타내는 플래그 0 : 뒤 쪽에 조각이 없고 현재 조각이 마지막인 경우 0 1 : 뒤 쪽에 더 많은 조각이 존재한다면 1 - Fragment Offset 최초의 분..
2017.06.30 -
ICMP (Internet Control Message Protocol) 프로그래밍
ICMP- IP프로토콜은 호스트와의 관리 질의를 위한 메커니즘이 없다- 호스트는 간혹 라우터나 다른 호스트가 동작하고 있는지 알 필요가 있다- 그리고 네트워크 관리자는 다른 호스트나 라우터로부터 정보를 획득할 필요가 있다- ICMP 메시지는 오류보고 메시지와 질의 메시지로 나누어진다- 오류보고 메시지 : 라우터나 호스트가 IP패킷을 처리하는 도중에 탐지하는 문제를 보고- 질의 메시지 : 호스트나 네트워크 관리자가 라우터나 다른 호스트로부터 특정 정보를 획득하기 위해 사용 Type(1byte) Code(1byte) Checksum(2byte) Identifier(2byte) Sequence (2byte) Payload(data) [ 질의 메시지 구조] [ 실습 ]에코요청 메시지( type 8 ) 와 에코응..
2017.06.28 -
ARP Spoofing Attack ( MAC주소 이용 )
대표적인 Sniffing기법중의 하나이다ARP Spoofing은 근거리 통신망(LAN) 하에서 주소 결정 프로토콜(ARP) 메시지를 이용하여 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법 ( Man In The Middle )데이터 링크 상의 프로토콜인 ARP 프로토콜을 이용하기 때문에 근거리상의 통신에서만 사용할 수 있는 공격 [ 실습1 ] - A에게 ARP 패킷을 보낸다A가 B에게 보내는 데이터를 가로채보자 ( A -> hacker -> B )A ip : 192.168.6.41B ip : 192.168.6.200 [1] #vi arping.py : A의 캐시 테이블을 오염시키는 코드import socketimport timefrom header.eth import *from header...
2017.06.23 -
ARP ( Address Resolution Protocol ) 프로그래밍
1계층은 물리계층이며 2계층은 데이터 링크층이라고 한다DataLink층은 상위계층의 패킷을 전달받아 프레임형태로변환하여 물리계층에 전달한다이 때, 이더넷 헤더에는 상위계층의 프로토콜정보와 src,dst MAC Address정보가 담긴다 헤더 물리계층 MAC 프레임 운영체제에서 볼 수 있는 영역 Preamble SFD DST SRC TYPE DATA PADDING FCS 1 2 3 4 5 6 7 1>Preamble SFD : 볼 수 없는 영역, 물리(NIC)2 ~ 7 : 볼 수 있는 영역2>DST(Destination address) : 프레임을 수신할 MAC주소정보 - 이더넷헤더3>SRC(Source address) : 프레임을 송신한 호스트의 MAC주소정보 - 이더넷헤더4>TYPE : 상위 계층 프로토..
2017.06.22 -
계층별 헤더 프로그래밍
헤더의 종류는 세가지로 나뉘어집니다( Ethernet헤더, IP헤더, UDP(orTCP)헤더 )각각의 헤더 정보를 나누어 클래스로 만든다음 하나로 묶어주겠습니다 ( packet.py )즉, 하나의 packet클래스안에 이더넷,아이피,유디피헤더 클래스들을 포함시켜 한번에 헤더의 각각의 정보를 분류하고 얻을 수 있다 [1] eth.py, udp.py, ip.py 각각의 클래스 생성[2] packet.py에서 세개의 클래스들을 import한다[3] 스니퍼프로그램에서 packet클래스를 이용해 각 정보를 이용한 필터링[4] 원하는 정보만을 출력할 수 있다 [Server-A@ header]# vi eth.py // Eth클래스import struct class Eth: def __init__(self,raw=No..
2017.06.20