* 인터넷은 누가 만들었나요?
----> 빈트 서프, 로버트 칸 (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 |