본문 바로가기

등등/네트워크 시스템 보안

네트워크 시스템 보안 - 1일차

* 인터넷은 누가 만들었나요?

  ---->  빈트 서프,  로버트 칸   (ARPA의 연구원,  ARPA는 미국방부 산하의 신기술연구소, 이름이 DARPA변경)

- 1970년대 초반에 현재와 같은 네트워크 완성  ----> ARPAnet  ---> TCP/IP

 

* TCP는 주로 User(사람)가 요청한 경우 (파일 등)  ----> 용량이 큰 경우가 많음

     ex) http(웹),  FTP, SSH, Telnet 등

  UDP는 주로 System간 정보를 교환하는 경우  ---->  신호만 주고 받음(약속된 신호 : 프로토콜)

     ex) SNMP(네트워크 관리), NBNS(윈도 파일 공유), DNS(도메인네임과 IP주소)

 

* LAN : Ethernet, Token Ring, FDDI, Wi-Fi    ----> 많은 컴퓨터들을 연결하는 것이 목적

  WAN : HDLC, PPP, ATM, X.25 등     -----> 장거리 연결이 목적

 

* 캡슐화 : 데이터에 헤더를 붙이는 것

            : 편지지를 봉투에 넣는 것             (데이터=편지지,  헤더=봉투)

             봉투에는 보내는 사람 주소, 받은 사람 주소, 우표, 내용물 표시 등등

             헤더에는 출발지IP주소, 목적지IP주소, TTL, Protocol 등등

 

* 캡슐해제 : 헤더를 분리해서 버리는 것

   -----> 목적지 주소와 자신의 주소가 일치할 때

           (만일, 목적지 주소와 자신의 주소가 일치하지 않는데 내용물을 보는 것은??  Sniffing(데이터 도청) ---> 정보통신망법 위반)

            참고)  남의 전화를 엿들으면 통신비밀보호법 위반

 

* IP헤더는 최초 출발지에서 최종 목적지까지 그대로 유지 ------> IP주소를 추적할 수 있음

  Frame헤더는 구간별로 달라지기 때문에 원래 출발지는 알 수 없음   -----> MAC주소 추적 불가능 (같은 네트워크에서만 알 수 있음)

 

* MAC Address

   78-2b-46-8d-bd-9b

   각 자리는 16진수(2의 4승=4bit)이므로 각자리는 4bit임

   12자리 이므로 12 * 4 = 48bit 주소체계임

 

- 앞의 24bit : 제조사 식별코드(OUI)

- 뒤의 24bit : 제품 일련번호

 

* IEEE (전기전자공학회) : 통신, 네트워크 등을 연구하는 미국의 표준 기관중 하나

  IEEE802.3   Ethernet의 후속버전(표준)

  IEEE802.11  Wi-Fi (Wireless LAN)

  -----> MAC주소를 판매하고 있음

 

* MAC OUI 조회

https://regauth.standards.ieee.org/

 

Welcome to The Public Listing For IEEE Standards Registration Authority

IEEE Registration Authority: Assignments

regauth.standards.ieee.org

 

 

* Wi-Fi MAC주소

  안드로이드 : 설정 > 휴대전화 정보 > 상태   (삼성: 구미시 임수동)

  아이폰  :  설정 > 일반 > 정보   (1 인피니티 루프)

 

 

* 구글에서 'default password'로 검색해보면, 제조사들이 초기세팅해놓은 ID/PW가 정리되어 있음

   (제품을 구매하면 제일먼저 패스워드 부터 변경해야 함)

https://datarecovery.com/rd/default-passwords/

 

List of Default Passwords

A list of default passwords for modems, RDBMS clients, and more.

datarecovery.com

* TTL (Time To Live) : 패킷의 수명을 의미

- 다른 네트워크로 갈 때(라우터를 지날 때)마다 1씩 감소, TTL값이 0이되면 버림 ------>  네트워크 혼잡을 방지하기 위해서

- 출발지 운영체제에 따라 값이 다름    UNIX : 255,  Windows : 128,  Linux : 64    ----->  바꿀수도 있긴 함

 

* 단편화(Fragmentation) 필드

- 패킷이 너무 커서 작게 나눠야 할 때 사용하는 필드들

- Identification : 재조립을 위해서 같은 패킷을 단편화하더라도 같은 ID값을 가짐

- Flag : 막내가 아니면 1,  막내는 0으로 표시

- Fragment Offset : 순서번호 (패킷을 단편화하면 Offset값을 부여함)

 

Quiz) 출발지 IP주소를 바꿀수 있다??  있음  ------> IP Spoofing (출발지 IP를 속이는 것)

       목적지 IP는 속일 수 없음

 

* Port 번호 : 16bit = 2의 16승 = 65536  ( 0~65535)

1) System Port ( Well Known Port) : 1~1023  ----> 공통의 서비스를 사용하는 서버들이 사용하는 포트 번호

          53(DNS),   80(HTTP),  22(SSH),  23(Telnet),  25(SMTP)

2) User Port / Registered Port : 1024~49151   -----> 특정 회사의 Application에서 사용하는 포트 번호 (등록해야함)

          3306(MySQL), 

3) Dynamic Port : 49152~65535   -----> 자유롭게 사용 가능 (주로 웹브라우저가 사용)

 

* 명령 프롬프트를 관리자모드로 실행한 후, 아래와 같이 입력

cmd > netstat  -nab             (b : process)

 

* TCP Flag : UAPRSF (각 1bit씩 6bit할당되어 있음)  ----> On이면 1,  Off일때는 0으로 표시

     - SYN :  000010

     - ACK :  010000

     - ACK/SYN : 010010

 

게임 : 로그인, 게임점수, 수치   -----> TCP (정확하지만 확인과정이 추가)

        게임화면, 음성   ------> UDP (확인과정 없이 처리됨)

 

 

* Wireshark 설치

- 공식 웹사이트 www.wireshark.org

- 원래 이름은 이더리얼이었는데, 상표권을 침해한다고 해서 이름을 Wireshark로 바꿈

- Npcap : Nmap Packet Capture -----> 패킷을 캡쳐

  UNIX/Linux에서는 LibPcap (Packet Capture Library),  Windows는 WinPcap을 사용하다가 Npcap으로 변경됨

- Wireshark : Packet 분석

- 설치할 때 옵션 변경 없이 그대로 next클릭, 설치 종료후 '나중에 리부팅'하는 것으로 선택

 

* 실습 파일 다운로드 안내

https://cafe.naver.com/cloudsec/4

 

FTP_Sniff.pcapng

 

* ARP (Address Resolution Protocol)

- 목적지 IP주소에 대한 MAC주소를 조회하는 프로토콜

- ARP Request : 패킷을 전송하고자 하는 호스트(PC 또는 라우터)가 전체에게 보냄(Broadcast)

- ARP Reply : Target으로 지정된 IP에 해당하는 호스트 물어본 호스트에게 전송(Unicast)

   ------> Reply를 받으면 ARP Cache Table에 보관하게 됨 (300초 보관 이후에는 사용할 때마다 갱신)

 

* Broadcast : 모든 비트가 1로 되어 있음 (같은 네트워크에 있는 모든 호스트에게 전송)

 ex) ff:ff:ff:ff:ff:ff,   255.255.255.255  

 

* DHCP : IP를 할당받지 못한 호스트가 IP를 요청할 때 사용

 

* 3-Way Handshaking : TCP 데이터를 전송하기 전에 먼저 연결 설정을 하는 과정

- Client가 SYN를 보냄

- Server는 SYN를 받으면 ACK/SYN를 보냄

- Client는 ACK/SYN를 받으면 ACK를 보내서 연결 설정이 완료됨

 

* 4-Way Termination : 연결을 종료하는 과정

- Client와 Server가 각각 FIN을 보내고, 그에 대한 답변으로 ACK를 보내면 연결이 끊김

 

* Connection Oriented : 연결설정 - 데이터전송 - 연결해제     ex) 전화, TCP 등

  Connectionless  : 연결설정 과정 없이 데이터를 보내는 것     ex) 문자메시지  

 

* 3-Way Handshaking

- SYN, ACK/SYN, ACK  --->   5번, 8번, 9번

- 21번 포트에 연결을 시도하고 있음 -----> FTP 

* FTP 명령어는 21번 포트 사용,  FTP Data는 20번 포트 사용

 

Quiz) FTP 로그인 계정은?     14번 패킷에 USER : blackpink

Quiz) Password는 ?      18번 패킷에 PASS :  love                               // Dictionary Attack에 취약하기 때문에 사용하면 안됨

32~35 : 4-Way Termination  (종료)

 

40번 패킷 : 현재 위치를 물어보고 있음 (PWD)

41번 패킷 : /home/blackpink라는 디렉토리에 있음

* FTP 패킷 아무거나 골라서 오른쪽 마우스 클릭, Follow > TCP Stream 선택

붉은색 글씨 : Client ---> Server

푸른색 글씨 : Server ---> Client

tcp.stream eq 0     -----> TCP 묶음 0번 (하나의 대화)

tcp.stream eq 1     -----> TCP 묶음 1번

실습) Telnet Sniff.pcapng

* 3-Way Handshaking : 1,4,5

* 로그인 계정은?   Telnet은 Client가 한글자 입력하면 Server에서 Echo로 응답하기 때문에 붉은색글자하나 푸른색글자 하나로 확인

- 계정명과 명령어는 Echo로 응답하도록 설계되어 있음

- 패스워드는 Echo 없음

 

실습) http_sniff.pcapng

Quiz) 로그인 계정과 패스워드를 찾아보세요.

* http 프로토콜의 특징

- http request할때 가장 많이 사용하는 Method가 GET, POST임

- GET : header만 사용해서 페이지를 요청하거나 검색을 할 때 사용

- POST : body에 요청사항을 넣어서 보냄, 로그인 할 때와 게시판 글쓰기, 파일 업로드 할 때 사용

1) 패킷 찾기

  Edit > Find Packet을 선택하고 Display Filter를 string으로 하고 POST(대문자)로 입력하고 엔터

  POST로 시작하는 패킷에서 HTML FORM URL Encoded를 열어보면 admin / password 라고 써있음

2) 디스플레이 필터

   http.request.method == POST

3) frame  contains  password

   frame  matches  password

 

FTP_sniff.pcapng

frame contains PASS  :  PASS를 대소문자 구별해서 정확히 일치하는 것을 찾아줌

frame matches PASS  :  대소문자 구별없이 비슷한 것을 모두 찾아줌

 

 

실습)  ftp-clientside101.pcapng

-----> 클라이언트가 FTP로 다운로드 한 파일은 무엇일까요?

 

FTP-DATA라고 되어 있는 패킷 아무거나 선택하고, 오른쪽 마우스 눌러서 Follow > TCP Stream 하세요.

---> Show data as를 ASCII ---> Raw로 바꾸고, Save as 클릭하고 이름을 지정(pantheon.jpg)하고 저장합니다.

실습) HxD.exe   (Hex Editor)

- 파일을 hex값으로 수정하는 도구

- pantheon.jpg 파일을 열어봅니다.

  JPG파일의 파일 시그니처 :    ÿØÿà (FF D8 FF E0  ~  FF D9)

실습) whoisshe.pcapng

  이분의 이름은 무엇일까요?

248~250 : 3-Way HandShaking

1514bytes짜리 패킷이 많이 있다는 것은 파일을 전송했음을 알 수 있음

오른쪽 마우스 눌러서 Follow > TCP Stream을 해봄

ASCII ---> Raw,  Save as클릭해서 who로 저장

GET~~~~  : 클라이언트의 요청

HTTP~~~  : 서버의 응답

FF D8 FF E0 jpg파일의 파일 시그니처임 -----> 이전 부분은 블럭설정 후 삭제,  jpg확장자를 붙여서 저장하면 됨

실습) 네이버 검색 캡쳐.pcap 파일을 Wireshark로 열어서 무엇을 검색했는지 알아내세요~  

       검색은 Client가 함 ----> http 요청을 보아야 함 ---> 검색은 GET으로 요청한다!! 

 

http.request.method == GET

Query부분에 q= 뒷부분이 검색어 739번 패킷에 있음

----> 스마트폰의 네이버 앱에서 한글자 입력할 때마다 보내서 관련된 단어를 추천해주는 방식 :  steve%20jobs

* File Signature

- PK (50 4B 03 04) :  ZIP, docx, pptx, xlsx, apk 등이 모두 PK로 시작   ( Phil Katz의 이니셜)

- PDF파일은  %PDF-1.5 

 

 

실습) Whatisthis.pcapng 파일을 Wireshark에서 분석해서 어떤 파일을 전송했는지 추출해보세요~     

http.request.method == GET

frame contains file

Follow > TCP Stream

ASCII ---> Raw,  Save as해서 what.pdf 저장하세요.

HxD.exe에 열고  Ctrl+f (찾기)해서 %pdf검색,  이전부분 블럭설정 후 삭제, 저장하면 PDF파일이 보임

 

 

실습) Wireshark NewYork 문제 풀기

  (혹시 압축 프로그램이 없으면, ahnlab.com > 다운로드 > 무료 다운로드    v3zip 다운로드 해서 설치하면 됨)

 

문제 : 내가 아는 어떤 친구는 뉴욕의 술집에서 파티를 계획하고 있습니다. 파티는 초대장을 메일로 보냈고, 메일에 있는 어떤 문구를 알고 있어야 입장이 가능합니다. 파티 주최자가 메일을 보낼때 패킷을 캡쳐했습니다. 여러분들은 인싸들이 모이는 파티에 참가하기 위해서 그 문구를 알아내야 합니다. 무엇일까요?

hint) 단어 3개임 (B B B)

     -> brooklyn beat box

 

 

'등등 > 네트워크 시스템 보안' 카테고리의 다른 글

wireshark  (0) 2022.06.23
네트워크 시스템 보안- 4일차  (0) 2022.05.09
네트워크 시스템 보안-2일차  (0) 2022.05.09
네트워크 시스템 보안 - 3일차  (0) 2022.05.02