Network
DNS(Domain Name System)과 URI, URL, URN
🌐 DNS (Domain Name System) DNS는 IP와 도메인을 매칭하는 시스템이다. 🤜 Domain (도메인) Domain Name은 IP Address를 대신해 도메인의 특성을 담은 이름으로 정의한 주소이다. ✅ Domain 의 IP 주소 알아내기 nslookup 터미널에서 nslookup 명령어를 통해 도메인의 IP 주소를 확인할 수 있다. 🤛 DNS (Domain Name System) 사용자가 입력한 도메인을 실제 네트워크 상에서 사용하는 IP 주소로 바꾸고 해당 IP 주소로 접속하는 전체적인 과정을 담당하는 시스템이다. ① 도메인 네임스페이스 (Domain Name Space) DNS는 거대한 분산 시스템으로 이뤄져있으며, 도메인 네임스페이스는 이러한 DNS가 저장 및 관리하는 "계층..
[Dreamhack] 쿠키(Cookie)와 세션(Session)
쿠키와 세션은 인터넷을 사용하는 클라이언트의 인증정보를 포함하고 있다. 🌐 쿠키(Cookie) Cookie는 HTTP의 Connectionless, Stateless의 특성을 고려하고, HTTP에서 상태를 유지할 수 있도록 고안된 개념으로, Key와 Value로 이뤄진 일종의 단위이다. 서버가 클라이언트에게 쿠키를 발급하게 되면, 클라이언트는 서버에 요청을 보낼 때 마다 쿠키를 같이 전송하고, 서버는 클라이언트의 요청에 포함된 “쿠키”를 확인해 클라이언트를 구분할 수 있다. 클라이언트의 IP주소와 User-Agent는 매번 변경될 수 있는 고유한 정보 + HTTP의 Connectionless와 Stateless 특징 ⇒ 웹 서버에서는 클라이언트를 기억할 수 없다. HTTP의 Connectionless :..
네트워크 장비: 허브, 스위치, 라우터
🔌허브 (L1 Hub) 허브는 네트워크 장비들을 서로 연결해주는 통신 장비다. Multiport Repeater 하나의 포트로 들어온 데이터를 나머지의 모든 포트로 전달한다. Multiport: 여러 개의 포트를 가지고 있음 Repeater: 들어온 데이터를 그대로 재전송 → LAN의 최대 전송 거리 연장 물리계층(1계층) 장치로, 여러 대의 PC를 하나의 LAN에 연결하는 네트워크 장치다. 허브에 존재하는 포트의 개수에 따라 연결할 수 있는 PC의 수가 결정된다. 한 번에 하나의 장치에서만 데이터를 보낼 수 있어 Collision이 발생할 수 있다. 반이중방식 🔌스위치 (L2 Switch) 허브와 마찬가지로 네트워크 장비들을 서로 연결하는 통신 장비다. 허브와 사용목적은 비슷하지만 네트워크 속도가 훨씬..
네트워크 주소: IP Address - (IPv4, IPv6) / MAC Address
🌐 IP Address TCP/IP 프로토콜(인터넷을 사용하기 위해 필요한 프로토콜)을 사용하는 모든 장비들을 구분하기 위한 특수한 번호(주소)를 말한다. 네트워크에 연결된 장치가 어떤 것이든, 모든 기계는 IP 주소를 할당받아야만 한다. 0000 0000.0000 0000.0000 0000.0000 0000 (2) -> X.X.X.X (10) IP 주소는 이진수 32자리로 구성되어 있고, 이를 8개씩 묶어 10진수로 변환해 주로 사용한다. 변환하게 되면 우리에게 익숙한 형태의 196.X.X.X와 같은 형태의 IP 주소를 볼 수 있게된다. (이러한 방식은 IPv4이며, IPv6의 경우 표기방법이 조금 달라진다.) 쉽게 말해, IP 주소는 네트워크에 연결되기 위해 필요한 네트워크 주소다. 🤜 IPv4 4번..
[CTF-D/Network] lol team이라는 의심스러운 팀이 있습니다.
📢 Description lol team이라는 의심스러운 팀이 있습니다. 제가 잠시 동안 그들을 주시하다가 그들이 비밀 번호를 바꾸고 있을 때 그들의 브라우저를 스니핑 할 수 있었습니다. 그들은 비밀번호를 무엇으로 바꿨습니까? Hint : pcapng파일 여는 방법 모르십니까? 주어진 파일을 Wireshark로 열고, 패킷 파일에서 변경된 비밀번호를 찾아야할 것 같은 문제다! ✏️ Anlayze 패킷파일을 Wireshark를 사용해 열어보면 TCP 프로토콜에 의한 통신 내용과 HTTP 통신을 확인할 수 있다. 그 중에서도 "/api/account/update"라는 키워드를 보고 패스워드 변경과 관련한 내용을 확인할 수 있을 듯 하여 좀 더 자세한 내용을 확인하기 위해 클릭한다. 클릭하면 HTML Form..
[CTF-D/Network] woodstock1
📢 Description 누군가 illustris와 codelec 사이의 채팅을 가로 챘다. KEY format : BITSCTF{(key)} 두 사람 사이에 주고 받은 채팅을 가로챈 패킷 파일이 제공되고, 둘이 주고받은 내용 중 플래그를 찾으면 되는 것 같다. ✏️ Analyze illustris와 codelec 사이의 TCP 통신을 하고 있는 것을 확인할 수 있고, 총 3번의 stream으로 구성되어 있는 것을 알 수 있다. [Statistics] > [Conversations] 메뉴를 선택해 확인하면, 총 3개의 TCP stream을 확인할 수 있다. 그 중 첫 번째 stream을 선택한 후 [Follow Stream]을 누르게 되면 대화내용과 함께 플래그를 확인할 수 있다.
[CTF-D/Network] 당신은 캡처 파일에서 플래그를 찾을 수 있는가?
📢 Description 따로 문제 설명이 있지는 않고, 패킷 캡쳐 파일(pcap)만 주어졌다. ✏️ Analyze wireshark를 사용해 주어진 pcap 파일을 열어보면 대략적으로 아래와 같은 정보를 얻을 수 있다. TCP 통신을 통해 하나의 목적지와 통신을 했다. 데이터를 1byte씩 전송한다. 하나씩 어떤 데이터를 전달하는 것인지 알기 어렵기 때문에 Wireshark에서 제공하는 [Statistics] > [Conversations] 기능을 사용했다. 현재 TCP 기반 통신을 하고 있으므로 TCP 를 선택하고 [Follow Streams]를 선택하게 되면 아래와 같이 플래그를 확인할 수 있다.
네트워크 메세지 전송 방식: 유니캐스트, 멀티캐스트, 브로드캐스트
🌐 유니캐스트 (Unicast) 유니캐스트 방식은 고유 주소(MAC Address)로 식별된 하나의 네트워크 목적지에 1:1로 정보를 전송하는 방식을 말한다. 전송하는 프레임에 출발지와 목적지의 MAC Address를 포함한다. 로컬 네트워크에 연결되어 있는 모든 시스템은 해당 프레임을 전달받은 후, 랜카드에서 자신의 주소와 비교한다. 로컬 이더넷은 기본적으로 연결된 모든 시스템에 프레임을 전송하는 Shared 방식을 사용한다. 전달하는 과정까지 CPU에 영향을 주지 않으므로 시스템의 성능을 저하시키지 않는다. 주소가 다른 경우 해당 프레임은 버리고, 주소가 같은 경우 해당 프레임을 CPU로 올린 후 처리한다. 🚨 유니캐스트 플러드 (Unicast Flood) 목적지의 고유 주소인 MAC Address를..
HTTP Request 와 Response
🌐 HTTP (HyperText Transfer Protocol) HTTP(HyperText Transfer Protocl)는 인터넷 상에서 HTML과 이미지, 파일, 영상 등의 자료를 주고 받기 위해 설계된 서버-클라이언트 모델의 전송 프로토콜이다. TCP/IP 위에서 작동하고 있으며, 하나의 연결에는 하나의 요청을, 하나의 요청에는 하나의 응답을 주는 구조로 되어 있다. 🤜 HTTP Request (요청) ① start line HTTP 메소드 (GET, PUT, POST / HEAD, OPTIONS 등) Request Target: 주로 URL, 프로토콜, 포트, 도메인의 절대 경로로 나타낸다. → HTTP 메소드에 따라 포맷이 달라진다. origin: 끝에 ?와 쿼리 문자열이 붙는 절대 경로 ⇒ ..
네트워크 통신 프로토콜 - TCP, UDP, IRC
🌐 TCP(Transmission Control Protocol) 🔏 Protocol 이란? 프로토콜은 해석하면 "규약"으로, 서로 다른 시스템에 있는 개체들이 성공적으로 데이터를 주고받을 수 있도록 하는 통신 규약을 말한다. 특정한 목적을 위해서는 각 목적에 따른 프로토콜을 반드시 지켜야하며, 컴퓨터끼리 서로 소통할 때는 같은 프로토콜을 사용해야만 한다. 네트워크 프로토콜은 총 7계층에 따라 그 종류를 나눌 수 있다. ( ⇒ OSI 7 layer) 그 중에서도 대표적인 프로토콜을 살펴보자면 아래와 같다. TCP/IP (Transmission Control Protocol / Internet Protocol): 전송 제어 및 인터넷 프로토콜 → 인터넷에 연결하기 위해 반드시 지켜야하는 프로토콜 FTP (..