보안/네트워크 보안

0915 시스템/ 네트워크 해킹(System/Network Security)

Bordercolli 2022. 9. 15. 17:38
728x90

이론이 매우 중요! 이론을 실습으로 연결하는 것

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

인터넷의 종류: www(80년대), ftp, telnet, ssh, 토렌트, gopher, archie(60년대)

인터넷이 만들어진 이유?

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

전쟁에 쓰이는 무기를 개발하려다보니 연구기관들이 다 흩어져 있다. 그래서 데이터를 교류하려고 보니 과거는 비행기를 타고 갔다. 그래서 선을 연결할 수 없을까 생각하다가 개발하게 됨.

연결하려고 보았더니 통신방법이 다 다르다. 어떤 연구기관은 CISCO방식, 유에스로보틱스 방식 등을 사용하면서 서로 다른 회사의 네트워크 장치를 사용하다보니 호환이 안되는 상태, 그래서 알파가 공통의 프로토콜을 하나 만들자 라고 제안

이 연구를 한 사람은 빈트서프, 로버트칸

이들이 만든 것을 ARPnet이라고 한다. 이를 어떻게 활용할ᄁᆞ 고민하다가 전세계 미군부대를 연결하게 되었다. 한군데가 공격을 받으면 다른 곳들이 공격할 수 있다. 1960년대는 소련이 핵을 개발한 상태, 그래서 미국은 소련 주변 국가들의 미군기지에 핵무기를 배치함.

kgb(소련 첩보원)이 이 선들을 다 끊고 다님, 그래서 미군 전용 네트워크(milnet)와 인터넷으로 분리를 하게 된다. , ARPnet을 둘 로 나눠서 milnet와 인터넷으로 분리함

milnet의 중심이 되는 슈퍼컴퓨터:skynet

인터넷은 악성코드에 점령을 당함 그래서 skynet과 인터넷을 연결하자라고 생각함. 현재는 분리된 상태(skynet도 악성코드에 감염당할 수 있기 때문에)

 

ARPA는 현재 이름을 DARPA(달파)로 변경함

defense를 추가함

DARPA챌린지: 로봇 경진대회

보스턴로보틱스(보스턴다이내믹스) 현대차에서 인수

네트워크 장치가 서로 달라도  arpnet 을 통해서 통신가능해짐

 

ip는 시스템을 식별하는 프로토콜이고, tcp는 애플리케이션을 식별하는 것

그래서 이 이름을 tcp/ip 원래는 알파넷이었는데, tcp/ip로 나뉘어졌다.

기능의 복잡성을 해결하려고 기능을 나누었다.(1974년초)

보니까 이것만으로 해결이 안돼서 tcp는 꼼꼼하는 스타일인데, 속도를 더 빨리 하게 하기 위해서 udp를 제작, 그래서 오늘날의 구조는 이러한 구조이다.

ip를 사용하지 않으면, 인터넷이 안됨. app에서 tcp/udp중 무엇을 사용할 것인지 선택하고 ip를 연결하고 네트워크 장치를 사용해 통산한다. 여기에는 arp, icmp 등등 있는데, 이들을 묶어서 여기서는 suite라고 한다. 그래서 미국애들은 tcp/ip protocol suites라고 한다. 전송계층/ 네트워크 계층 안에 해당하는 프로토콜은 100개가 넘는데, 가장 중심은 tcp/ip

→ 책추천

 

ARPnet이 분리되어서 tcp, udp, ip가 되었다. DNS가 두 개인 이유는 TCP를 사용할지, UDP를 아용할지 결정하기 위한 것.

ex) 카카오톡이 TCP헤더를 붙이고, IP헤더를 붙이고 WIFI헤더를 붙인다. 편지를 쓰는 것과 같은 개념 (편지를 써서 편지봉투에다 넣고, 우체통에다 넣고, 차에다 싦고가는 것과 비슷하다.)

데이터를 편지봉투에다 넣으면, 세그먼트, 편지봉투를 자루에다가 넣으면 패킷, 패킷을 차에 넣으면 frame(운송수단 ex) 와이파이, 이더넷, 5g, 4g, 광랜) 패킷 규격은 똑같이 맞춰야지만 인터넷이 가능하다. (frame이 이용가능하다.)

 

어떤 것을 이용하던지 간에 L7에다가 데이터를 넣는다. (공유화면, 목소리, 아바타 정보 등) 웹 브라우저를 이용해서 웹 사이틀 볼때도 L7에 들어간다. 앞에 TCP헤더가 붙는다. 그리고 앞에 IP헤더가 붙는다. 그다음 FRAME 헤더가 붙는다. L2는 방식이 다 다르다. (이더넷? 광랜? ATM? FDDI?)다양한 종류의 헤더들이 사용된다.

제대로 전송되었는지 확인하고 싶으니 뒤에 추가됨. 데이터에다가 주소가 사용되고, TCP에 누구에게 보내는지, IP에는 출발지와 목적지, FRAME에는 어디 우체국?으로 경유할지 구조

 

MAC(media access control address)

 

OSI 7계층(TCP가 먼저 나옴)

SEGMENT : APP+ TCP

APP+ TCP+ IP + 네트워크 장치에 맞는 헤더+오류검사하는 부분

만약에 TCP대신에 UDP를 이용한다면

APP+ UDP+ IP + 네트워크 장치에 맞는 헤더+오류검사하는 부분

TCP를 이용하는 경우와 UDP를 이용하는 경우

: TCP 유저가 데이터를 보내는 경우와 받을 때/ 데이터가 크거나 전송이 확실해야할떄, 이럴떄 / 주로 사용하는 경우: 파일, 사진, 로그인, 동영상 등 (ftp)

UDP 정확성보다 속도가 중요할 떄 / 주로 시스템간의 정보를 교환할 떄 / 주로 사용하는 경우: 음성, 비디오 등 실시간으로 데이터를 전송할 때, 게임화면 등 전송

(시스템 간의 정보를 교환 ex) 지금 시간이 몇시야? ntp(network time prootcol), snmp )

 

게임을 하기 위해서 로그인할떄는 TCP, 게임화면을 변경할 때

※ 동영상 (.mp4)과 비디오(화상면접, zoom)를 구분하자.

 

패킷 분석: ip헤더를 보는 것

tcp 세그먼트는 패킷에 들어있고, 패킷은 frame을 타고 간다. 근데 여기에 사이즈가 있다. 프레임도 짐을 실을 수 있는데 이 무게는 1500바이트ᄁᆞ지 실을수 있다. 1500바이트 중에서 헤더의 무게를 고려해야 한다. 헤더의 무게 40바이트(tcp헤더/ip헤더) 빠지면 1460ᄁᆞ지의 내용물을 넣을 수 있다.

 

패킷: 패킷(컨테이너)은 혼자갈 수 없다. 패킷 자체도 무게가 엄청나다. 그리고 차량(트레일러)도 무게가 나간다. 그리고 항만에 도착하면 패킷을 들어올린다. 그리고 frame()에다가 싣고 가고, 도착해서 패킷을 기차에 싳는다.

프레임: 와이파이를 통해서 가다가 이더넷으로 갈 수 있다. 이더넷으로 가다가 통신사 내부망으로 들어가게 되면 멀리간다? 그러면 atm으로 가든지 ppp로 가든지 그런 걸로 간다. , 중간에 어느 경로로 가는지에 ᄄᆞ라서 프레임은 바뀐다.

프레임 전송 방식의 종류

wifi, ethernet, 토큰링, fddi lan(근거리 통신)

atm, ppp, HDLC, FRAME,-RELAY 등등 WAN(원거리 통신)

 

네트워크 위주로 생각하면 인천공항 여객 터미널, 화물 터미널, 직원 사무실, 항공사들이 사용하는 사무실 등 이러한 것들은 LAN으로 연결한다. 서울 네트워크와 인천 네트워크는 WAN으로 연결한다.

EX) 인천 공항에 있는 친구에게 카톡을 보내면 처음에는 WIFI에 도착하고 공유기에 도착해서 이더넷으로 가다가 라우터/ 스위치를 통해서 가다가 건물 밖으로 나가는 통신(광랜(이것도 이더넷인데...) )으로 가다가 KT에 들어가서 FRAME-RELAY로 주고 받다가 멀리가면 ATM을 탈 수 있고, 인천공항으로 들어가려면 FDDI을 사용하고 안으로 들어가면 LAN을 사용한다.

TCP/IP를 변경하면 인터넷이 아니다. 그래서 여기는 바꿀 수 없음.

 

tcp가 데이터를 자르는 경우/ ip가 데이터를 자르는 경우

Segmentation: 어떤 가수의 노래를 다운 받으려는데 이 용량이 7메가이다. 하지만 우리는 1518바이트 밖에 보낼 수 없다. 그러면 어떻게 ?

7메가를 1500으로 나눠야하는데 TCP/IP헤더를 써야한다. 그래서 1460바이트로 짜른다. TCP가 이러한 것들을 자른다. 이를 분할이라고 하고 segmentation이라고 한다. 우리가 어떤 데이터를 보낼때 1460이 넘으면 tcp가 이를 1460만큼 자르고 tcp를 붙이고 그 다음 ip를 붙인다.

 

2. Fragmentation: ip가 데이터를 자르는 경우, tcp를 사용하지 않는경우가 있다.

ip가 데이터를 자르는 경우를 단편화(fragmentation)라고 한다. 1480만큼 잘라서 ip를 뒤에다가 붙인다.

 

대표적으로 icmp가 있는데 ping을 보낼때 icmp를 사용한다. ping을 보낼때 단편화를 한다.

 

tcp를 사용하지 않는경우? 실시간으로 할떄,

tcp를 사용하지 않는데, 데이터가 큰게들어가있는 경우, udp는 이를 자르지 못한다. 그래서 ip가 데이터를 자른다.

 

tcp는 쓸수도 안쓸수도 있는데 ip는 무조건 사용해야 한다.

 

tcp/ip에서 ip를 사용하지 않을 수 없다. ip프로토콜을 전체집합이라고 할떄, 그 중에는 tcp라는 프로토콜이 있다. 그리고 udp라는 프로토콜이 있다. 이들은 서로 겹치지 않는다. 그러면 이들을 이용하지 않는 경우는? icmp / igmp 그래서 만약에 tcpftp, tenlnet, http, ssh, smtp 들이 있는데, 여기서 얘네들이 용량 큰 것을 보내면 tcp가 처리하면 된다. tcp를 제외한 나머지는 누가 해줘야 하는가? ip가 해야한다. 우선순위는 tcp가 제일 높다. tcp가 할 수 있으면 하고 못하면 나머지들이 하는 것이다. (tcp헤더가 포함되면 tcp헤더가 데이터를 자른다.)

, tcp를 사용하는 경우에는 tcp가 데이터를 분할(segmentation)한다. tcp를 사용하지 않는 경우는 ip가 단편화(fragmentation)한다.

 

 

udp데이터를 만들었는데, udp헤더가 있고 이게 너무 크다. ip가 이걸 보고 너무 크다 싶으면 이를 자른다. udp헤더는 한번만 쓰이고, ip는 해당 데이터만 잘라낸다.

 

udp ex) 갈치를 삿는데, 갈치를 잘라서 온다. 자를 때 몸통을 자를거 아냐. 갈치의 머리는 한 군데만 있다. ip는 생선가게 아저씨, 잘린 몸통에 갈치 머리가 각각 있을 수 없으니ᄁᆞ. , udp 헤더는 잘리 부분에 한 군데만 있다고 생각

 

tcp ex)

tcp는 자기가 자르니ᄁᆞ 봉지에다가 다 넣어준다 라고 생각. 조각케이크를 판다고 이해하면 됨.

 

icmp ex) icmp헤더는 한 군데만 들어가 있다. 그리고 ipip헤더가 자르니ᄁᆞ ip헤더가 각각마다 들어가있다.

mac

네트워크 장치에 들어있다.

이더넷은 누가 만들었는? 제록스(Xerox), 빌게이츠와 스티브 잡스가 아이콘을 누르면 창이 보이고 이러한 것을 만들었다. 하지만 제록스가 먼저 만듦. 제록스가 이들에게 소송을 냈다. 현재는 이들에게 밀려서 복사기 회사가 됨. xerox 연구원이었던 Dr.metcalf가 이더넷을 처음 제작. (1974) 이 사람이 독립해서 3com이라는 회사를 설립. 나중에 hp에서 인수한다. 그래서 사라짐. (hp networks가 되었다.) 이더넷을 만들 때 mac address라는 주소체계를 만들어서 장비마다 번호를 부여하는 방식, 그래서 mac주소를 가지고 있는 장치들끼리는 통신이 가능하다. 현재 가장 많이 사용되는 lan방식

표준화를 하면서 제록스꺼니까 이름은 IEEE802.3로 지정.

IEEE802.3을 속칭해서 이더넷2라고 한다.

 

$ipconfig /all mac주소를 볼 수 있음. (c-E0-1B-68)

각 자리는 16진수, 1624승이므로 4bit 각 자리는 4bit 두 개씩 묶으니 8bit, 48bit가 된다.

4bit12자리(8bit6자리)이므로 48bit주소 체계임 주소의 개수는 248승개를 사용한다.

그런데 48bit중에서 반으로 잘라서 앞에 24bit, 뒤에 24bit

앞에 24bitOUI(제조사 식별코드): 어느 회사 제품인지 알 수 있음.

뒤데 24bit는 제품 일련번호: 의미 없음

 

mac주소의 oui 공식 관리 사이트

: https://standards.ieee.org/products-programs/regauth/oui/

 

구글에서 default password로 검색하면 제조사별 모델별 기본 idpw를 알 수 있다. 기본 패스워`드를 변경하지 않는 경우에는 로그인이 가능하다.

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

 

ipv4 주소

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

각 자리는 8bit로 되어 있다. 28(255.255.255.255) 8bit=1byte=octet (octa:8)

8bit4자리이므로 32bit주소체계임(4 octet이라고 함)

mac보다 주소가 작다. 그래서 주소고갈 문제

네트워크 부분과 호스트 부분으로 나뉘어 진다. 네트워크는 성(surname, lastname), 호스트는 이름을 의미(first name)

어디까지가 네트워크 부분일지는 알 수 없다. 그러면 어떻게 구분?

 

1) classful: 클래스 기반

ip주소는 길이가 다르다.

CLASS A: 네트워크. 호스트. 호스트. 호스트 호스트는 가용이 가능하다. 호스트부분은 사용범위 8bit*3=24bit=224=1777만개

class B: 네트워크. 네트워크.호스트.호스트 호스트부분은 사용 범위는 8bit씩 두 자리 21665536

class C: 네트워크.네트워크.네트워크.호스트 사용 범우니느 8bit, 28, 256

classD : 멀티캐스트용

classE: 사용되지 않음.(실험용)

내가 주소를 가질 수 있다면 무조건 a클래스를 가지고 싶을 것이다. a클래스를 가지면 1777만개의 주소를 가질 수 있다.

이렇게 하면 주소 낭비가 너무 심해서 더 이상 주소기반방식(classful address) 사용하지 않기로 하였다. (1992년부터 ...)

 

2) classless: (1992-현재), 네트워크하고 호스트 어떻게 구별?

서브넷 마스크로 구분한다.(이진수로) 1에 해당하는 ip부분은 network, 0에 해당하는 ip주소부분은 host

그러면 만약에 192.168.190.1에서 서브넷 마스크가 255.255.255.0으로 주어지면/ 네트워크.네트워크.네트워크.호스트이다.(255=11111111) , 192,168,190은 네트워크에 해당한다.

그래서 192.168.190.0이 네트워크 주소에 해당한다.

네트워크 주소를 표기할떄는 호스트 부분은 0으로 사용한다.

넷마스크: 네트워크와 호스트를 서브넷 마스크로 구분하려고 만든 것

서브넷 마스크를 만든 이유는 클래스를 없애고 네트워크와 호스트를 구분하기 위함이다.

네트워크 주소는 알아서 어디에 쓸까? 목적지를 찾아준다. ex) 용인 이씨

 

ex) 누가 한xx에게 편지를 보냈다. 우체부는 한이라는 성을 보고도 한씨 집정촌을 찾아가서 한xx를 찾는다. 이때 우체부 아저씨가 라우터, 네트워크만 보고 목적지가 집적된 곳을 찾아준다. 이는 서브넷 마스클 통해서 알아낸다.

 

네트워크 주소의 길이는 서브넷 마스크를 봐야지 알 수 있다. 서브넷 마스크 없으면 어디까지 인지 알 수 없음.

 

osi7계층을 만든 이유는 tcp/ip를 보편화하려니까 돈이 안생김. ? 내가 만든걸 써야 라이선스 요금을 받을텐데, tcp/ip는 국방부로 운영하는 기관이라서 돈을 내지 않는다. isp(lg유플, sk브로드밴드, kt)는 좋아하한다. 그런데 네트워크 장비를 팔아먹는 회사들(cisco, usrobotics )이 보니 돈도 안생기는 것을 할려고 하니 tcp/ip만 있는 것이 아니고 공통의 네트워크 규칙을 지키면 만들 수 있어 라고 하다가 문제가 생김. cisco회사들이 표준을 제시하기 시작함. 그래서 데이터링크와 네트워크 계층, 물리 계층에 신기술을 낸다. 그런데 잘못하면 cisco위주로 돌아가겠다 생각하여, 다른 회사들이 반cisco를 만들어서 표준을 만들었다. 그래서 너무 복잡해짐. 그래서 osi7계층은 명목상의 표준이라고 칭하게 됨. (이름만 있는 표준, De Jure)

구현이 안된 이유: 지나친 cisco의 견제

tcp/ip 계층은 사실상의 표준, 워낙 많이 사용하니까(De Facto)

 

기본헤더 한줄이 4바이트(32bit) 4바이트씩 5

20바이트

 

옵션은 0-40바이트

 

ipv4헤더

 

버전(4bit): 4, 0아니면 1들어감, 0100(4)

ipv4를 의미한다.

60110으로 표시

헤더길이: 풀옵션으로 사용하면 60비트로 들어감

전체길이: 헤더와 데이터를 합친 길이, 65536

ip프로토콜이 만들 수 있는 최대 크기(16bit라서 65535까지 만들 수 있다.)

프레임에 실을 때는 1500으로 잘라서 각 조각들을 프레임으로 싣고 간다.

 

아까는 1500밖에 안들어간다면서 무슨말일까?

만드는 것은 65535까지 가능하고 만들어서 자른다. 그리고 프레임에 싣고 간다. 1500으로 싣고 간다. ip에서 만들수 있는 최대 크기는 65536

 

두번째줄의 3개는 단편화 필드: 큰 덩어리가 있는데, 같은 것을 자르면 id는 다 같다. offset은 변위(번호이다.)

 

ttl: 패킷의 수명, 데이터 유효 기간, 다른 네트워크로 갈때마다 ttl값이 1씩 줄어든다. 그래서 ttl0이 되면 라우터는 폐기한다. 이유는 네트워크 혼잡을 방지하기 위해서 (목적지를 못찾고 이리저리 왔다갔다하면 ttl=0되는 순간 없어진다.)

 

보안에서 중요한 것인데, 운영체제에 따라서 ttl의 초기값이 다르다. 그래서 unix255, 윈도우는 128, 리눅스는 64, 이렇게 설정됨. 그래서 상대방이 나에게 ttl값을 얼마를 주느냐 본 다음에 너의 운영체제는 무엇인지 알 수 있다.

 

 

구글와 내 컴퓨터 사이에 라우터는 9개라는 의미, 리눅스를 사용해서 64개 였으나 9개의 라우터를 거쳐왔으니 64-9가 되어 ttl값이 55가 되었다.

지역 DNS로드밸런싱

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

 

내부망에서만 서비스를 하는 서버(외부로 패킷이 나가면 안되는 경우) TTL값을 1또는 0으로 설정(이때는 밖으로 나가게 되면 버려진다.)

 

프로토콜: 데이터라는 부분에 TCP가 올 수도 있고, UDP가 올 수 있는데,IP헤더 뒤에 뭐가오는지 표시하는 부분.

 

IP주소가 32BIT이기 때문에, 딱 한 줄씩 들어간다.

 

Quiz) 출발지 ip주소를 다른 주소로 바꿀 수 있다? 이를 ip스푸핑이라고 한다.(스푸핑이란 속임수라는 의미)

Quiz) 목적지 ip주소를 다른 주소로 바꿀 수 있다? 목적지를 바꾸면 바뀐 대로 가서 조작을 할 수는 없다.

 

옵션: 거의 쓰이지 않는데, 쓰이는 경우는 32bit단위로 써야한다.10줄까지 사용 가능. 다 사용하지 않으면 padding으로 채운다.

 

ip주소는 IANA(인터넷 주소 관리 위원회)에서 관리한다.

iana가 혼자서 관리할 수 없으니 대륙을 나누어서 (5) 관리를 하고 있다.

000/8 내부망에서 사용하는, 8비트만 따지니ᄁᆞ 뒤에는 보지 않는다. 첫 번쨰 옥텟만 본다.

003/8 원레는 GE라는 회사가 가지고 있었다. 에디슨이 설립. 이 주소를 다 사용하지 못해서 북미관리기구에다가 반납을 한다. 요즘에는 아마존이 이를 사용함.

 

IANA를 관리하는 곳은 ICANN에서 관리한다.

AT&T 벨 연구소: 미국의 KT같은 통신회사

IANAIPV4, IPV6, 포트번호, AS번호(기관 식별자)를 관리한다.

 

IP주소를 할당하는 이유? 컴퓨터를 식별하기 위해서

 

포트번호 (16BIT할당, 2^16=65536(0-65535))

사용이유? 컴퓨터 내부의 서비스를 식별하기 위해서

내가 웹 브라우저를 사용하고 있는데, 여러 탭을 사용한다. 그러면 내가 만약에 3번쨰 탭에서 무엇을 요청하면 내가 요청한 정보가 3번쨰 탭으로 와야한다. 웹 브라우저도 여러 가지를 사용하는 중이다. 어느 웹 브라우저에서 요청한 것인지 구별해야 할 것이다. 그래서 APP식별자 또는 서비스 식별자라고 한다. 컴퓨터 한 대에서 여러 가지가 돌고 있기 떄문에 이를 구별해주기 위한 것이 PORT라고 한다.

 

1) 0이라는 포트는 없으니, 1-1023번까지 well-known port(과거) 요즘에는 시스템 포트라고 한다.시스템 포트는 일반적으로 공통의 서비스. 특정 회사 서비스가 아닌 범용 서비스를 위한 포트번호

- 범용 서비스란? ex) http80을 사용한다. ftp20/ 21, telnet23, smtp25번 등 이런 식으로 1023번ᄁᆞ지는 지정되어 있다. (https443)

용도를 미리 지정해놓은 이유? 전송계층에서 이를 구분하기 위함. 물어보지 않기 위해서

ex) 웹 브라우저는 웹 서비스를 이용하기 위해 만들어진 것이니 80포트틀 사용한다.

 

구글이라는 주소를 치면 dnsip주소를 알려주고 거기로 이동하게 된다. dns를 사용하려면 dns서버를 하나 세팅한다. 비용이 발생한다. 도메인 네임을 물어볼때마다 dns는 응답을 해줘야 한다. 근데 포트번호는 용도를 미리 지정해서 이런 것들이 필요로 하지 않는다. (알려주는 누군가가 필요 없다.) 그래서 이를 시스템 포트라고 한다.

 

2) registered port : 1024-49151, app을 개발하면 다른 기존의 app과 중복되지 않도록 번호를 사용해야 한다. 왜냐하면 80포트를 443을 사용하고 있는데 카톡을 설치했더니 80포트를 쓰네? 그러면 서비스 충돌이 발생. 웹 서버와 카톡이 80포트면 충돌이 나니, 이 구간을 사용하면 안되고 내가 ceo라면 이 구간을 사용해야 한다. 그래서 충돌 방지를 위해 이를 사용하기 위해서 등록을 하고 사용해야 한다.

대표적인 것: mysql(3306)으로 이 포트는 등록되어 있으므로 다른 사람들은 이 포트번호를 사용할 수 없다.

사설 app을 개발하는 경우에 사용하는 포트

포트 스캐닝이란?

어떤 포트가 열려있다는 것은 서비스가 실행중이라는 것인데, 어떤 서비스가 실행된다는 것을 알 수 있다. 이것을 무엇이라고 하는가? 이를 포트 스캐닝이라고 한다.

 

3) dynamic port : 49152-65535

자유롭게 사용할 수 있는 포트, 클라이언트용 프로그램들이 많이 사용 ex) 웹 브라우저

웹 브라우저는 과거는 registered를 사용했으나 사용자 증가로 여기를 사용

사용에 제한이 없음

 

cmd> netstat na

포트번호를 알 수 있음.

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

만약 웹 브라우저가 아니면 백도어 또는 트로이안 목마이다.(위험...)

443 으로  https 를 확인할 수 있다 .

 

 

포트번호는 컴퓨터 내부에 프로세스가 여러개가 있는데 이를 구분하는 역할을 한다.

 

wireshark설치

- npcap 설치: nmap에서 만든 패킷 캡처 도구 스캐닝 취약점 분석 도구 중 하나(최근에는 이걸로 사용)

- libpcap(packet capture library): 유닉스용

- winpcap(윈도우용 패킷 캡처 프로그램): 윈도우에서... (라이선스 때문에 현재 사용x)

 

wireshark는 패킷을 분석하고 캡처는 저 위에 ~cap들이 한다.

과거는 ethereal이었는데, 제록스가 쓰지말라고 함. 상표권 문제로 이름을 wireshark로 변경

최근에는 기능이 확장되어서서 usb트래픽을 분석할 수도 있고, 다양한 개인 네트워크(pan, personal area network: 블루투스, zigbee, rfid )도 분석 가능하다. 다양한 기능을 제공하다보니 과거는 이더넷만 분석했다. 전세계에서 가장 많이 사용하는 오픈소스

클릭을 하면 가장 아래쪽에 있는게 가장 최신 패킷이다.

 

7 계층에 오는 과정에서 오류 검사 (2 계층에서 실행함 ) 는 사라짐 , app~ 이더넷만 보이는 중이다 .app 은 데이터를 지칭

 

우리가 보고있는 브라우저는 7계층!!

 

패킷에는 번호가 없는데, wireshark에서 태그에다가 번호를 붙이고 있다. 패킷에 time은 시간을 표시하지 않고, 태그에 있는 것. 주요 프로토콜을 보여주며, length는 패킷의 길이, 1480을 넘지 않는 크기이다. info는 주요 내용. 이 패킷이 왜 다녀갔는지를 표시하는 곳

 

coordinated universal time (utc): 표준시

서버가 한 군데가 아닌 글로벌하게 배치됨. 그러면 언제 공격이 있었는지 정확하게 알려면 시간을 통일해야 하기 때문에 (패킷이 시간마다 어디에 있는지 알기 위해서)

 

tls 는 암호화하는 프로토콜
wireshark 에서도 자체적으로 주소를 알고 있다 .  인텔인지 다보링크 주소인지 알 수 있다.

 

 

 

 

 

 

실습)

우분투DVWA, Wireshark

 

 

 

92byte가 나온 이유는? ip헤더 20byte + icmp 64bytes + 이더넷 헤더 14bytes =98bytes

 

 

92byte가 나온 이유는?

ip헤더 20byte + icmp 64bytes + 이더넷 헤더 14bytes =98bytes

 

실습) 패킷찾는 방법

wireshark(vmnet8), dvwa

wireshark는 저장하고 확장자는 .pcapng로 저장된다. (packet capture next generation: pcapng)

* 문제) 내가 입력한 id,pw?

get 단순 페이지 요청, 검색어 입력

post 게시판 글쓰기, 로그인

 

방법1)

디스플레이 필터에 저렇게 작성하고, 헤더와 바디를 찾는데 바디에 아이디와 비번이 있다.

검색된 POST를 클릭하고 가운데 단을 보면

hypertext transfer protocol http헤더

html from url encoded http바디

호스트는 body를 쓰니까 body를 봐야한다.

 

 

 

 

방법2) 에디터 find packet string에서 login을 입력해서 계속 find눌러서 httpbody부분을 살펴본다.

 

방법3) frame에 매치되는 단어를 검색한다.

입력 필터에 frame matches password

방법4) frame에 포함된 단어를 검색한다.

frame contains password

실습2) ftp_sniff.pcapng

ftp로 로그인한 계정의 idpw를 찾아보자.

방법1)info 부분 보기

실습3) http_sniff

로그인한 계정과 패스워드의 패킷 번호를 찾아보자.