본문 바로가기

Network Hacking

(23)
7일차] ARP개념 + ARP Python Module ARP(주소 경정 프로토콜)이란? 주소 결정 프로토콜(Address Resolution Protocol, ARP)은 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응시키기 위해 사용되는 프로토콜이다. 여기서 물리적 네트워크 주소는 이더넷 또는 토큰링의 48 비트 네트워크 카드 주소를 뜻한다. 이를 테면, IP 호스트 A가 IP호스트 B에게 B와 브로딩캐스팅 물리적 네트워크 주소 FFFFFFFFFFFF를 가지는 ARP 패킷을 네트워크 상에 전송한다. IP호스트 B는 자신의 IP주소가 목적지에 있는 ARP 패킷을 수신하면 자신의 물리적 네트워크 주소를 A에게 응답한다. 이와 같은 방식으로 수집된 IP주소와 이에 해당하는 물리적 네트워크 주소 정보는 각 IP 호스트의 ARP캐시라 불리는 메모리에 테이블..
6일차] MAKE Python Module For Ethernet Header Analysis 제목 그대로 파이선 모듈을 클래스를 정의하여 구현하는 것이다. 바이너리형태로 출력되는 Ethernet header를 우리가 보기쉬운 형태로 보여주고 반대로 바이너리형태가 아닌 string형태로 헤더정보를 넣어도 자동으로 바이너리 형태로 변환되어 헤더를 작성해주는 모듈이다. 샘플 ethernet header : \x00\x0c)\x10\xf9\x11\x00\x0c)\x10\xf9\x9b\x08\x00 결과를 확인하자.
5일차]IP Story 1. IP(Internet Protocol) 주소란 무엇인가 ?? IP 주소는 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해 사용하는 특수한 번호이다. 네트워크에 연결된 장치가 라우터이든 일반 서버이든, 모든 기계는 이 특수한 번호를 가지고 있어야 한다. 이 번호를 이용하여 발신자를 대신하여 메시지가 전송되고 수신자를 향하여 예정된 목적지로 전달된다. IP 주소를 줄여서 IP라고 부르기도 하나 IP는 인터넷 규약 자체를 가리키는 말이기 때문에 엄밀하게는 구별해야 한다. [출처 : 위키백과] 2. 공인 IP 먼저, IP는 IPv4가 있는데 이 주소는 우리도 흔이 알고있는 32비트로 구성된 0~255사이의 십진수 넷을 구분하여 부여한다. IP주소를 192.168.XXX.XXX이런식으로 많이 ..
4일차] Header analysis(Udp, Ip, Ethernet Header) Sniffer 패킷 가로채기 또는 스니핑은 네트워크 통신 내용을 도청하는 행위이다. 이때 사용되는 도구를 패킷 분석기 또는 패킷 스니퍼라고 하며, 네트워크의 일부나 디지털 네트워크를 통하는 트래픽의 내용을 저장하거나 가로채는 기능을 하는 소프트웨어 또는 하드웨어이다. 파이선 코딩으로 간단한 스니퍼 프로그램을 만들고 Udp header를 분석해 보자. [sniffer.py] # law-socket을 통한 분석으로 socket.AF_PACKET, socket.SOCK_RAW 인자가 들어간다. # bind에서 통신 목적이 아니기 때문에 eth0장치를 bind 한다. # sock.recv를 통해 eth0장치의 오고가는 모든 내용을 저장한다. # 짧은시간에 수많은 raw_packet이 오가기 때문에 log.txt..
3일차] TCP Server, Client TCP Server TCP Server는 소켓이 2가지가 필요하다 . 하나는 Server 본인의 socket이고 나머지 하나는 Client의 소켓이다. accept라는 메서드를 이용해 Client의 소켓을 받아오고 그것을 통해서 Cilent와 통신을 한다. TCP는 UDP 통신과 다르게 좀 더 복잡한 과정을 거친다. UDP는 문자 서비스 TCP는 전화 서비스로 비유를 했었는데 문자는 보내기만하면 끝이지만 전화는 전화를 걸고 받아야하는 과정이 있기 때문에 좀 더 복잡하다고 생각하면 된다. Server의 코드를 보며 어떠한 것이 추가되었는지 어떤 역할을 하는지 알아보자. # socket을 생성하는 부분에서 SOCK_STREAM(TCP방식), SOCK_DGRAM(UDP방식) 차이가 있음을 확인 # bind()..
2일차]파이선 환경 구성 및 UDP 통신 1. 리눅스 파이선 설치 #> wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz // 3.x.x 대 버전 사용 2. 개발자 도구 설치 #> yum groupinstall "Development Tools" 3. 파이선 압축 해제 #> tar xvfz Python-3.6.4.tgz 4. 소스코드 빌드 0) #> yum install readline-devel // 파이선 쉘 내에서 화살표나 방향키 오류 잡는 법. 1) #> cd Python-3.6.4 2) #> ./configure 3) #> make 4) #> make install 5. 최종 #> python3 (파이선 버전 확인) 파이선 쉘 실행 및 종료 1) 인터프리터 : #>python..
1일차] 환경 구성 [환경 구성] 1. vmware centos6 설치 후 ip 수동설치 1). IP를 받아오는지 확인한다. 2). HOST IP를 확인한다. 3). vmware에서 ip설정 파일 수정 # 빨간박스 부분이 추가되었고 IPADDR의 앞 192.168.3 은 host와 같아야한다. # 저장 후 reboot를 해준다. 4). reboot 후 ip가 변경되었는지 확인하고 ping을 통해 인터넷이 되는지 확인한다. 2. 리눅스 보안 설정 해제 1) cd /etc/sysconfig 의 iptables 삭제 (#> rm -rf iptables) 2) 같은 디렉터리의 selinux --> disabled