공부/시스템,네트워크 보안

9월 15일 시스템/네트워크 보안 1

마준123 2022. 9. 15. 10:12

 * 인터넷을 만든 사람은? 빈트 서프, 로버트 칸 ( 1970년 초반 )

 

 * 인터넷의 종류 : WWW( 80년대 후반 ), FTP, Telnet, Torrent, SSH, Archie, Gopher 등

 

 *  인터넷은 왜 만들었을까?

 - 미 국방부 산하에 ARPA(알파, 국방과학연구소 ) 에서 전쟁에 쓰이는 무기를 연구 ( 신무기 개발 )

 - 멀리 떨어진 연구기관 및 대학교 등을 연결 필요성 ------> 문제점 : 통신 방법이 다 다름

 - 서로 다른 회사의 네트워크 장치를 사용 하다보니 호환이 안되는 상태

 - 알파에서 공통의 프로토콜을 만들기로 함 ----> ARPAnet 이라고 이름을 붙임

 - 전세계 미군 부대를 연결할 계획 ( 1960년대 ) -----> ARPAnet 을 둘로 나누어서 미군 전용 네트워크 (Milnet)와 인터넷 (TCP/IP)으로 분리

 - Milnet의 중심이 되는 슈퍼컴퓨터 : Skynet

 

 * ARPA는 이름을 DARPA(달파)로 바꿈 // D는 디펜스

 - DARPA Challenge : 로봇 경진대회

 - 로봇이 전쟁터에 투입되는 영화 : 채피

 - 보스턴 로보틱스 -----> 현대차에서 인수

 

 - 처음엔 Application 과 네트워크 장치를 연결하려고 ARPAnet이 탄생

 

 

 - 나중엔 복잡한 기능을 나눔 ---> TCP/IP로 변경 

 - 그런데 TCP는 좀 꼼꼼한 편인데 꼼꼼할 필요가 없는 경우를 위해 UDP의 탄생

 

 

 - 애플리케이션을 개발할때 TCP로 할건지 UDP로 할건지 결정

 - 수백가지 넘는 종류의 이런애들 모음을 TCP/IP Protocol Suites 라고 함

 

좀 더 디테일한 사진

 

 

 - DATA : 편지

 - Segmant : 편지봉투

 - Packet : 우체통 ( 규격화 )

 - Frame : 우체부?

 

라고 생각하면 되겠습니다~

 

집중력이 흐려지는 내용들

 

 

 

둘중 뭐가 먼저 나왔을까? 라는 질문에 많은 사람들이 잘못 알고 있었다! ( 나는 아에 몰랐다 )

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

 

TCP를 이용하는 경우와 UDP를 이용하는 경우의 구조

 

 * 그러면 어떨때 TCP를 이용하고 어떨때 UDP를 이용할까??

 

 - TCP

   주로 TCP는 USER가 데이터를 보내거나 받을때

   전송이 확실해야 할 때

   데이터가 큰경우 ( 파일, 사진, 동영상, 로그인 등 )

 

 - UDP

   시스템간 정보를 교환할 때 

   정확성보다 속도가 중요할 때

   실시간으로 음성,비디오, 게임화면 등 전송

 

 - 게임 속에서 로그인이나 이런부분은 TCP, 게임화면 등은 UDP를 사용하는 등 의 차이

 - 동영상과 비디오는 다른개념 ( 비디오는 스트리밍 느낌? )

 

 * 각 구조별 크기 차이

 - FCS와 Frame Header ( 자기 자신 ) 을 제외하고 1500byte를 담을 수 있고 Tcp와 ip의 헤더 40byte를 빼면 1460byte정도가 담길 수 있다.

 

 

 * 프레임도 어느정도 크기를 차지하는걸 쉽게 포현해주고 종류가 많다는걸 표현해주는 그림

그리고 패킷은 옮겨 가는동안 전혀 바뀌지 않지만

차 - 배 - 기차 등으로 컨테이너가 옮겨가듯 프레임은 각 구간별 통신 방식에 따라 달라질 수 있다.

 

 * Frame 전송 방식의 종류

 - Wi-Fi, Ethernet, Token Ring, FDDI  ---> LAN ( 근거리 통신 )

 - ATM, PPP, HDLC, Frame - Relay 등등 ---> WAN ( 원거리 통신 )

 

 * 카톡을 보내면?

 Wi-Fi ---> Ethernet ---> 광랜(Ethernet) ------> Frame-Relay ---->ATM ----> FDDI --->Ethernet

 이런식으로 Frame 헤더가 계속 바뀜!

추가 자료

 

 * 큰 용량을 패킷으로 나누어서 전송한다

 - 누가 나누냐? TCP

 * IP가 데이터를 나누는 경우도 있다. 

이런경우 ( 사실 확실하지 않음, 아래서 확인 )

 

 * 용어차이

 - TCP가 데이터를 나누면 분할 ( Segmantation )

 - IP가 데이터를 나누면 단편화 ( Fragmentation )

 

내가 궁금했던것 /  순범님 ㅎㅇ

 

TCP가 할 수있는건 TCP가 나머지 여집합 애들은 IP가 하는것.

결국 위에 경우(UDP)도 IP가 자르는 경우가 맞았다.

 

 

이러한 내가 상상하지도 못했던 질문들을 해주셔서 참 감사했다.

크게 보면 TCP는 자기가 직접 자르기 때문에 각 TCP Segment에 TCP헤더가 20씩 들어가지만

나머지 여집합 애들(ICMP,UDP등등)은 IP가 잘라주기 때문에 각 Segmant에 데이터만있고 IP가 잘라주기 때문에 IP헤더만 Packet 단계에서 붙는다.

근데 이렇게보면 TCP는 자기가 잘랐는데 마지막에 IP헤더가 붙으니 뭔가 억울해 보이긴 한다 ( 사실 알기 쉽게 생각한 개념이기 때문에 일맥 상통해서 생각하지 못하긴 하다.... )

 

-------------------------------------------------------------------------------------------------------------------------------------------------------

 

 * Ethernet은 누가 만들었을까요?

 - Xerox의 연구원이었던 Dr.Metcalff가 Ethernet을 처음으로 만듦 --->3COM이라는 회사를 설립 ---> HP에서 인수 (HP Networks)

 - MAC Address라는 주소체계를 만들어서 장비마다 번호를 부여하는 방식

 - 현재 가장 많이 사용되는 LAN 방식

 - 표준화 하면서 이름을 IEEE802.3 으로 지정

 - IEEE802.3을 속칭 Ethernet || 라고 함

 

MAC주소 : D0-3C-1F-D1-3B-43 이런 형태

 - 각 자리는 16진수, 16은 2의 4승이므로 4bit ----> 각자리는 4bit

 - 4bit가 12자리 (8bit가 6자리 ) 이므로 48bit주소 체계임 --->주소의 개수는 2의 48승개

 - 앞의 24bit 를 OUI ( 제조사 식별코드 ) : 어느회사 제품인지 알 수 있음

 - 뒤의 24bit 는 제품 일련번호 (의미 없음 )

 

 * 구글에서 MAC OUI IEEE로 검색하면 링크가 나온다 : https://standards.ieee.org/products-programs/regauth/oui/

   (MAC주소 OUI를 관리하는 공식 기관)

 

 * ipconfig /all 을 하면 MAC 주소를 알 수 있다

내 노트북의 맥주소

 

강사님꺼
내꺼

주소는 조금 다르지만 인텔 코퍼레이션인건 똑같다.( 당연하다 같은 사양의 노트북이니깐.. )

 

내 핸드폰도 한번 해봤다~

 

 

 * 구글에서 default password 로 검색하면 제조사별 모델별 기본 ID와 PW를 알 수 있음

   --------> 기본 패스워드를 변경하지 않는 경우에는 로그인 가능

 

 

 

 

 

 * IPv4 주소

 - 0부터 255까지의 번호가 4자리로 되어 있음 ( 구분자 : . (dot) )

 - 각 자리는 8bit로 되어 있음 ---> 8bit는 2의 8승 이므로 256 (0~255) -------> 8bit = 1byte = Octet ( Octa : 8 )

 

 - 8bit 씩 4자리 이므로 32bit 주소 체계임 ( 4 Octet 이라고도 함 )   ----> Mac 주소 보다도 작고, 주소 고갈 문제 발생

 - 네트워크 부분과 호스트 부분으로 나눠짐 ( 네트워크 : 집안이름, 호스트 : 개인이름 )

                                                ex ) 홍 길동,  남궁 민

 - 어디까지가 네트워크 부분일까?     192.168.190.1 ------> 알 수 없다!!

 

-------------------------------------------------------------------------------------------------------------------------------------------

 

1) Classful : 클래스 기반

 - Class A : N.H.H.H --------> Host 부분은 사용범위 8bit * 3 = 24bit = 2의 24승 = 1777만개

 - Class B : N.N.H.H --------> Host 부분은 사용범위 8bit * 2 = 16bit = 2의 16승 = 65536개

 - Class B : N.N.N.H --------> Host 부분은 사용범위 8bit = 2의 8승 = 256개

 - Class D : Multicast 용으로 지정되어 있음

 - Class B : Not Use

-------------> 주소 낭비 -------> Classful 방식을 더이상 사용하지 않기로 함 ( 1992년 ) // 더이상 의미가 없는 내용 ㅋㅋ

 

2) Classless : 클래스를 무시하는 방식 ( 1992년 ~ 현재 )

-------------> 네트워크와 호스트를 서브 넷 마스크로 구분 ( 이진수로 1에 해당하는 IP부분은 Network, 0에 해당하는 IP주소 부분은 Host )

          ex) 192.168.190.1  255.255.255.0   ( 255= 11111111)

                        -------> 192.168.190.0 네트워크 주소 ( 성, 가문의 이름 )

                        -------> 네트워크 주소를 알아서 어디에 쓸까요? 목적지를 찾아줌

 

왼쪽은국방부가 만든거라 돈을 못벌어서 오른쪽에 가라로 표준을 만든 그런내용 이었나.......역사는 어려워.....

 

 * IP 헤더의 구조

 

 * IPv4 헤더

 - Version ( 4bit ) _ _ _ _ : 0100 = 4 -----> IPv4,      (만일, IPc6 헤더라면 0110)

 - Total Length : IP프로토콜이 만들 수 있는 최대 크기 ( 16bit = 65535bytes 까지 만들 수 있음 )

   ( Frame 에 실어서 보내려면 1500으로 잘라서 보내면 됨 )

- TTL ( Time to Live : 패킷의 수명 ) : 다른 네트워크로 이동할 때마다 TTL값이 1씩 줄어듦 ----> TTL이 0이되면 라우터가 버림 ( 더이상 전달 안함 ) 

     TTl이 0이 된 패킷을 버리는 이유는 네트워크의 혼잡을 방지하기 위해서 ( 목적지를 못찾고 이리저리 왔다갔다 하면 TTL=0 이 되는 순간 없어짐 )

     운영 체제에 따라 TTL의 초기값이 다름 Unix : 255, Windows : 128, Linux : 64 -----> 관리자가 설정을 변경할 수 있긴 함

 

참고 ) 지역 DNS 로드 밸런싱

 - 사용자가 접속한 위치 ( 국가별, ISP ) 에 따라 다른 서버에 접속

 

-------------------------------------------------------------------------------------------------------------------------------------------------

 

Quiz ) 출발지 IP 주소를 다른 주소로 바꿀 수 있다?  정답은 있다! ---> IP Spoofing 이라고 함 ( Spoofing : 속임수 )

Quiz ) 목적지 IP 주소를 다른 주소로 바꿀 수 있다?  물론 바꿀 수 는 있겠지만 다른 곳으로 가니까 사실상 못바꾼다.

 

 * IP주소는 IANA에서 관리하고 있음

 - IANA ( 인터넷 주소 관리 위원회 ) ( https://www.iana.org/ )

 - IANA 를 관리하는 곳은 ICANN에서 관리

 - IPv4, IPv6, Port 번호, AS번호 ( 기관식별자 )

 

 * IP주소는 컴퓨터를 식별하기 위한 목적으로 사용

 ex) www.naver.com  -----> IP주소를 알려줌  ( DNS가 알려줌 )

 

 * Port 번호 ( 16bit 할당 ) : 컴퓨터 내부의 서비스를 식별하기 위해서 사용 (= Application 식별 )

 - 16bit = 2의 16승 = 65536 ( 0~65535 )

 

 1 ) System port : 1~1023번까지 Well - Known Port ( 예전이름 )

 - 범용 서비스를 위한 포트 Ex) http(80), FTP(20,21), SSH(22), Telnet(23), SMTP(25), https(443)

 - 용도를 미리 지정해 놓으면 물어보지 않아도 됨

 

 2 ) Registered Port : 1024 ~ 49151

 - Application을 개발하면, 다른 Application 과 중복되지 않는 번호를 사용해야 함

 - 등록을 하고 사용하면 중복을 막을 수 있음  ( 그래서 이름이 등록된(Registered) 포트 임! )

    Ex) MySQL : 3306, 

 

 * cf. Port Scanning 

 어떤 포트가 열려있다는 것은 어떤 서비스가 실행중임을 알 수 있기 때문에 어떤 포트가 열려있는지 조사하는 것

 

 3 ) Dynamic port : 49152~65535

 - 주로 클라이언트용 프로그램들이 사용하는 주소 ex) Web Browser 등

 - 사용에 제한이 없음

 

실습 ) 사용중인 포트번호를 확인해보자 

 명령프롬프트에 netstat -na 를 쳐보자

그렇다고 합니다..

외부 주소의 서버 포트가 443 또는 80이면 로컬 주소 에서 사용하는 포트는 ' 웹 브라우저 ' 일 가능성이 높다.

 

----------------------------------------------------------------------------------------------------------------------------------------

 

 * Wireshark 설치 : https://www.wireshark.org/

 

 - 아무것도 설정할 필요 없이 계속 다음 누른다

 - 중간에 Npcap이 뜨면 I Agree 하고 또 아무것도 설정 할 필요 없이 인스톨~

 

 * Libpcap ( Packet Capture Library )

 - Winpcap ( Windows Packet Capture Program ) ------> 현재는 사용하지 않음

 - Npcap ( Nmap Packet Capture ) -----> 최근에는 이것을 사용

 

 * Wireshark 는 패킷 분석 도구임

 - 에전 이름은 Ethereal 이었는데, 상표권 문제로 이름을 Wireshark로 변경

 - 최근에는 기능이 확장되어서 USB 트래픽을 분석할 수도 있음, 다양한 PAN ( Personal Area Network : Bluetooth, Zigbee, RFID 등 ) 도 분석 가능 

 - 가장 많이 사용하는 오픈소스

 

실행한 모습
와이파이를 눌러보자

 

 - 맨 위는 실시간 패킷을 보여주고 하나 누르면 중간에 정보가 나온다

 - 맨 밑에는 가운데와 같은데 왼쪽은 Hex 오른쪽은 아스키

 - UDP가 엄청많은데 지금 게더타운으로 강의를 듣고있기 때문에 ( 스트리밍 ) 많은것 같다.

 

 - 첫번째줄은 와이어 샤크에서 붙인 태그이기 때문에 신경 꺼도 된다고 하신다.

 - 두번째는 이더넷 헤더

 - 세번째는 IP 헤더

 - 네번째는 UDP 헤더

 - 마지막은 데이터

 - 오류검사는 이미 완료해서 떼서 버렸다고한다

 

 - 왼쪽에 No.는 패킷은 사실 번호가 없기때문에 와이어 샤크에서 임의로 붙인거다

 - Time 또한 마찬가지

 - 소스는 패킷의 출발지이다, 데스티네이션은 도착지

 - 프로토콜은 말 그대로 주요 프로토콜을 보여줌

 - Length 는 패킷의 길이 아까 배운대로 1480을 넘지 않는다

 - info // 잘 못들었는데 별로 안중요했음....

 

시간을 바꿔보자

뷰 - 타임 - 디스플레이포맷 3번째꺼 누르면 원래 켠 상태에서 몇초 지났냐 였지만 누르고 나면

시간으로 나온다

 

 

아무거나 눌러서 IP

 - 0100 = 4 버전인듯 (4)

 - 0101 = 5 내용이 5줄

 - 밑에 소스 어드레스 = ?

 - 프로토콜 : TCP (6)

 

 

실습 )

  VM에서 우분투 켜자

 와이어 샤크에서 위에 x모양 아이콘 클로즈 디스 캡쳐 파일 눌른다 ( without saving)

 그리고 VM 8번을 누른다 ( 우리가 켠 우분투 )

 

 

그리고 우분투에서 핑을 보낸다

 

핑을 캡쳐한 모습

 

 * Ubuntu_DVWA 에서 VM Gateway ( 192.168.5.2 )

$ ping 192.168.5.2

 -------------> 98bytes가 나온 이유는?

이더넷 헤더 14 + IP헤더 20 + ICMP 64 = 98 bytes (각 줄을 눌러보면 맨 밑에줄에 크기가 나온다 )

 

-------------------------------------------------------------------------------------------------------------------------------------------

 

아니 이거 왜이러냐

 

실습때 나 혼자만 안되는 상황이 생기니까 졸라 답답스 하다.

 

우분투만 3번째 껏다키는중

 

beebox는 잘 되는거 보니까 우분투 문제인거같다.

 

일단 해결은 나중에 하고 강의 봐야겠다..

 

 

 

 

 

 

 

POST만 고르는법

 

 - 녹색은 헤더 

 - 붉은색은 바디 

  POST는 바디에 데이터를 담아서 보내기 때문에 열어보면 아이디 비밀번호가 나온다.

다른방법 ) Edit - Find Packet - 필터를 Srting 로 바꿔주고 login  검색

 

그리고 뜨는 많은 패킷중 GET말고 POST를 찾으면 아마 맞을듯~

 

 

 

 

실습1 ) FTP_sniff.pcapng

 

이 경우는 info 부분만 봐도 알 수가 있긴 하다고 한다.

 

32번이다~

 

수업은 여기까지... 우분투 재설치 해보러 가야겠다..

 

결국 재설치 했지만 IP가 131로 바뀌었다.

조금 귀찮아졌다..