본문 바로가기
반응형

프로그래밍/NETWORK HACKING32

[네트워크 보안] DNS header 구조 / 파이썬을 이용해 DNS 요청 보내서 응답 받아오기 DNS header 구조 / DNS Request 보내서 Response 받아오기에 대해서 정리한다. * dns도 dhcp와 마찬가지로 응용헤더에서 트랜젝션 아이디로 구분 시켜준다. DNS Header 1). transaction id(2byte): 통신에 대한 식별번호 2). Flag(2byte): DNS 메세지 타입 3). questions(2byte): 질의 갯수 - 요청 필드의 갯수 - 질의 하려는 도메인의 갯수와 일치 * 데이터의 크기가 커지면 자동으로 TCP 통신으로 전환된다. 4). answer(2byte): 응답 필드의 갯수 5). authority(2byte): 권한 필드의 갯수 6). additional(2byte): 추가적인 정보를 표현를 표현하는 필드의 갯수 ------------고.. 2017. 7. 26.
[네트워크 보안] DNS 역질의 구조 설계 DNS 역질의 구조 설계에 대해서 정리한다. DNS Server 구축 1. bind #> yum install -y bind.i686 #> yum install -y bind-utils.i686 2. 캐시 서버 설정 - /etc/named.conf 3. bind 실행 * DNS 캐시서버가 제대로 작동하지는지 nslookup이나 ping을 보내서 확인해볼수 있다. * listen-on port 53, allow-query를 any;로 설정 했는데 안된다면 dns 보안 설정 문제로 dnssec-enable, dnssec-validation 설정을 no로 해주면 될수도 있다. * 설정한 DNS 서버에 도메인 정보가 없다면 기본적으로 캐시서버로 동작하게 된다. ( netstat -anu 명령어를 통해서 확인해보.. 2017. 7. 24.
[네트워크 보안] DHCP 동작 및 역이용 스니핑 / DNS 개념 DHCP 동작 및 역이용 스니핑 / DNS 개념에 대해서 정리한다. ※ DHCP 출처: https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol ( 서버와 클라이언트 사이의 DHCP 동작 방식은 위 그림처럼 4단계를 거쳐서 진행이 된다 ) - DHCP 클라이언트 포트는 68번 서버 포트는 67번을 사용한다. - DHCP를 wireshark에서 분석할때 트랜잭션 아이디가 같아야한다. - UDP에서는 내 요청이 맞는지 확인을 할때 어플리케이션층에서 트랜잭션 아이디를 이용해서 구별한다. ( UDP 자체로는 구별할 방법이 없기 때문에 대부분 이 부분을 어플리케이션층에서 해결해준다 ) - 클라이언트는 Offer로 받은 ip를 사용하기 위해서 DHCP R.. 2017. 7. 20.
[네트워크 보안] DHCP / wireshark 사용법 DHCP 동작 이해/ wireshark 사용법에 대해서 정리한다. 1. UDP를 통해서 데이터를 주고 받는 어플리케이션 - DHCP, DNS, ... 2. TCP - FTP, HTTP, ... DHCP( Dynamic Host Configuration Protocol ) - 같은 네트워크 내에서 누구든지 서비스 제공자가 될 수 있다. ( 즉, DHCP 서비스를 제공하는 서버가 여러대 있어도 된다 ) - DHCP를 이해하기 위해서 리눅스에서 DHCP 서버를 구성해서 실습을 할때 DHCP 서버 설정을 정확하게 해줘야하고 설정이 제대로 되있지 않다면 내부 네트워크에 다른 사용자의 인터넷 사용에 영향을 미칠수 있다. ( 이러한 부분이 DHCP의 취약점이라고 볼수도 있다 ) - 리눅스 DHCP 서버 설정 1. D.. 2017. 7. 20.
[네트워크 보안] TCP 통신 직접 구현 해보기 / tcping.py TCP 통신 직접 만들어 보기(raw) / tcping.py에 대해서 정리한다. ! 로우 소켓을 이용한 TCP 통신을 직접 만들어봄으로써 TCP 통신 과정을 이해한다. 1. tcp 동기화 2. 데이터 송/수신 3. 동기화 해제 - raw 패킷으로 TCP 통신 직접 구현 * 직접 만들어보면서 TCP 통신을 이해하는 과정이기 때문에 순서대로 하나씩 구현 해봤다.* TCP 통신을 하기 위해서 이전에 만들었던 TCP 에코서버를 사용했다.* 클라이언트 측에서 SYN 패킷을 보내면 서버와 3-way handshake 과정을 거치고 서로 간의 세션 연결이 되면 클라이언트 측에서 'hello'라는 데이터를 PSH+ACK을 보내게 되고 에코 서버이기 때문에 클라이언트가 보낸 데이터를 그대로 다시 보내주게 된다. 그 이후.. 2017. 7. 19.
[네트워크 보안] TCP SYN Flooding TCP SYN Flooding에 대해서 정리한다. * SYN Flooding - TCP 통신에서 세션 연결을 위해 서버에게 SYN 패킷을 보내면 서버는 SYN + ACK로 응답을 하면서 SYN_RECV 상태가 되고 클라이언트에게 응답(ACK)을 받기 전까지는 그 상태를 일정 시간동안 유지하고 있게 되는데 그점을 이용해서 여러 아이피 혹은 포트로 변경해 가면서 출발지 정보를 바꿔 다수의 SYN 패킷을 서버로 보내 여러개의 세션을 생성 시켜 다수의 SYN_RECV 상태를 만들어 해당 리소스를 다 소모시켜 다른 사용자가 TCP 통신을 하지 못하도록 하는 공격 - 예전에는 DOS 공격만으로도 SYN Flooding이 가능했지만 패치가 되어서 요즘에는 DDOS 공격을 이용한 공격이 아니라면 하나의 호스트만으로는 .. 2017. 7. 15.
[네트워크 보안] TCP 포트 스캔 / TCP SYN 패킷 전송 TCP 포트 스캔 / TCP SYN 패킷 전송에 대해서 정리한다. TCP는 플래그에 따라서 다양한 통신이 존재 1. 열린 포트에 대한 검색 1). half-open 방식( 스텔스 방식 ) - 로그에 남지 않으면서 포트를 스캔 할 수 있는 방식 ( 완벽하게 세션을 맺지 않는다 ) - 포트가 열려있는 경우: SYN + ACK(18) 응답이 온다 - 포트가 닫혀 있는 경우: RST + ACK(20) 응답이 온다 ( 표준 동작은 응답을 안해주도록 되있는데 운영체제마다 동작이 다르다 ) 2). full-scan 방식 - 세션을 완전히 맺는 방식 - 로그에 기록이 남는다. ( 방화벽이나 다른 상황 때문에 세션이 완전히 맺어지지 않는 경우도 있다 ) 2. 닫힌 포트에 대한 검색 - 닫혀있는 경우에만 응답이 온다. -.. 2017. 7. 14.
[네트워크 보안] 스니퍼를 이용한 TCP 이해 스니퍼를 이용한 TCP 패킷 분석에 대해서 정리한다. - flag 필드 0 0 0 0 0 0 U A P R S F F: Finish(FIN) S: Synchronize(SYN) R: Reset(RST) P: Push(PSH) -> 데이터를 전달하는 경우 A: Acknowledgement(ACK) U: Urgent(URG) - 스니퍼를 이용해서 TCP 통신에 대해서 이해한다. * 클라이언트( 192.168.6.112 )에서 서버( 192.168.6.200 )로 TCP 통신을 하고 서버는 클라이언트가 보낸 데이터를 그대로(echo) 돌려주도록 구성되있다. * 서버에게 11이라는 2바이트 크기의 데이터를 보냈다. 00:50:56:3b:25:f8 -> 00:50:56:31:a8:43 ethernet type: .. 2017. 7. 12.