OSI 7 Layer
http://www.youtube.com/watch?v=-6Uoku-M6oY
9.
OSI 7 Layer
• Application Layer
• 아이템을 제공함.
• 서비스를 제공함.
10.
OSI 7 Layer
• 가장 중요함.
-> 최종 목표인 서비스에 도달하기 때문.
• 서비스를 제공함.
-> 메일, FTP, 게임, 기타 등등.
• DHCP, DNS, FTP, HTTP 등의 프로토콜이 쓰임.
• 물리적인 장비는 쓰이지 않음.
- > 구동되는 프로그램들 정도.
11.
OSI 7 Layer
• Presentation Layer
• 양쪽이 원하는 방식
으로 신호를 번역함.
• 케틀과 내가 이기기
위한 트리플킬.
12.
OSI 7 Layer
• 번역담당.
• 인코딩 & 암호화.
-> ASCII -> UTF-8 등 데이터 형식쪽..
• 송신 -> 수신측이 원하는 형태로 변환시킴.
• 수신 -> 응용계층이 원하는 형태로 변환시킴.
• JPEG, MPEG, SMB, AFP 등의 프로토콜이 쓰임.
• 인코딩 & 암호화 등의 표현 형태이기 때문에 마찬
가지로 쓰이는 장비가 존재하지 않음.
OSI 7 Layer
• 연결!고리!
-> 여러 응용프로그램의 연결을 관리
• 연결 방식
– 반이중 방식(half-duplex)
– 전이중 방식(Full Duplex)
• 세션이라 불리는 연결을 만들고 · 유지하고 · 끊음.
• Transport Layer 에서 쓰이는 보안의 기능도 함.
-> 로깅을 한다.
• 이름(세션의 종류 등)을 알아봄.
• 이 계층을 지나가면 누구든지 기억을 함.
• SSH, TLS, 등의 프로토콜이 쓰임.
• 통신을 할 때 특정 질서를 지켜주는 부분이므로 역시 따로
장비는 쓰이지 않음.
15.
OSI 7 Layer
• Transport
• 판단을 함.
• 그 말이 유효한지.
• 그 말이 안되는지.
-> 방화벽
16.
OSI 7 Layer
• 보안 · 유효성 관리
• 방화벽이 존재.
• 데이터가 유효한지 · 신뢰성 있는지 ·
메시지가 제대로 전달되는지 확인.
• 세그먼트라는 조각들로 쪼개어 정리를 함.
• 세션이 지나간 데이터를 기억하므로, 위의 유효성과
신뢰성, 정확성에 자꾸 오류가 나면 연결을 끊어버릴
수도 있음.
• TCP, UDP, ARP 프로토콜이 쓰임.
• 종합적으로 연결 자체를 관리해주기 때문에
물리적으로 게이트웨이 장비가 쓰임.
17.
OSI 7 Layer
• NetWork
• 라우팅(포지셔닝)
작업을 함.
• 어디로 가는지.
-> 나는 봇감.
18.
OSI 7 Layer
• 라우팅 작업을 함.
-> 패킷의 경로설정
• IP, ICMP, IGMP 등의 프로토콜이 쓰임.
• 가끔 보안 장비가 있을 수 있음.
-> 패킷 필터링 라우터, 라우터 +@방화벽
19.
OSI 7 Layer
• Datalink
• 에러없는 통신을
유지할 수 있도록
해줌.
-> 수락 :: 게임가능
-> 거절 :: 게임불가
20.
OSI 7 Layer
• 패킷 -> 프레임
• 에러없는통신유지.
• 위의 계층들이 에러없는 통신을 유지할 수 있
도록 해준다.
• MAC, PPP 프로토콜을 사용함.
• MAC 어드레스를 붙이거나, PPP 프로토콜을
사용하기 위해 스위치 장비를 사용함.
21.
OSI 7 Layer
• Physical
• 겜을 하기 위해
직접적인 접속.
• 큐 -> 사람만남
22.
OSI 7 Layer
• 프레임 -> 비트단위로 변환
• 물리적 전기신호로 전송.
• 전송매체(UTP 케이블) 등을 통해서 직접적
으로 물리적인 전기적 통신신호를 보냄.
• 물리적인 방식들이 프로토콜…(RS-232C)
• 허브 & 리피터 등이 장비로 쓰인다.
23.
Port
• 통신하기위한 통로
와 같은 역할.
• “문”과 도 같다.
< 갱킹할때 쓴 통로.
24.
Port
• 0번~ 1023번: 잘 알려진 포트 (well-known port)
– 20, 21 : FTP, 22:SSH, 23:Telnet, 80:HTTP
• 1024번 ~ 49151번: 등록된 포트 (registered port)
– FTP 패시브모드시 사용, 3389:MSTSC
• 49152번 ~ 65535번: 동적 포트 (dynamic port)
– RPC 동적포트 할당, etc…
25.
HTTP
• HyperTextTransfer Protocol
• WWW(웹)에서 쓰는 프로토콜
中하나.
• HTML 문서를 주고받는데 쓰임.
• HTTP 프로토콜로 주고받는 패
킷 분석 툴.
-> Paros, Fiddler, FireFox Developer
26.
DNS
• 킬로삼십이-> 카타리나
• 딥퍼플 -> 아칼리
└>오늘새벽 게임기준
• 닉네임을 부르기쉽게 아는 챔프이름으로
27.
DNS
• 203.249.6.100-> http://www.kknock.org
• 202.131.30.11 -> http://www.naver.com
• IP를 알기쉽게 문자열로 변경하여 사용.
• IPv6 -> https://vsix.kr/
DNS
• ForwardZone
• 도메인 이름-> IP
• 도메인을 구성하는 호스트의 정보를 기록
• Reverse Zone
• IP -> 도메인 이름
• DNS 서버 자기 자신에 대한 정보를 기록.
30.
DNS
DNS서버에 질의후돌아오는응답 두가지
Authoritative Answer
Non-authoritative Answer
31.
DNS
• Authoritativeanswer
• DNS서버가 질의받은 도메인 또는 IP를
Forward, Reverse 모두 가지고 있을 때.
• Non-authoritative answer
• DNS서버가 질의받은 도메인 또는 IP가
Forward, Reverse 둘중 하나라도 없을때.
32.
DNS
• 잘알려진 DNS 서버 목록
• Google Public DNS :: 8.8.8.8
• Norton ConnectSafe :: 198.153.192.60
• OpenDNS :: 208.67.222.222
• KT DNS :: 168.63.1
• SK Broadband :: 210.220.163.82
SSH & Telnet
• Telnet 사용시 사용가능한 명령어들
1. 압축하기 : tar cvfz [경로]000.tar.gz
2. 압축풀기 : tar xvfz [경로]000.tar.gz
3. ls : 현재 디렉토리의 파일 리스트를 보여줌.
ls -al : 파일의 속성(크기, 퍼미션, 히든 파일)을 보여줌.
ls -at : 파일이 생성된 시간까지 보여줌.
4. cd : 지정된 경로로 디렉토리를 이동할 수 있다.
ex) cd /; cd /bin/src; cd ; /* cd는 현재 디렉토리를 보여주고, 해당경로를 지정하였을 때 이동한다.*/
5. chmod : 파일이나 디렉토리의 퍼미션을 변경해줌.
ex) chmod 755 test01.java
6. mkdir : 디렉토리를 생성
ex) mkdir test01
7. rmdir : 디렉토리를 제거
ex) rmdir : testdir
8. rm : 디렉토리 및 파일을 제거(지움)
rm -r : 해당 경로에 포함된 디렉토리까지 지움
rm -f : 지움 명령을 다시 한번 확인하지 않고 바로 지움.
rm -rf : 디렉토리를 강제로 지움. 디렉토리가 비워져 있지 않아도 강제로 지움.
ex) rm -rf testdir
9. cp : 디렉토리 및 파일을 복사.
cp -r : 해당 경로에 포함된 디렉토리까지 복사
ex) cp test01.java test02.java /* test01.java를 test02.java로 같은 디렉토리 내에 복사*/
ex) cp -r testdir /workspace/test/testdir /* 현재 디렉토리 내에 있는 testdir 디렉토리를 /wokrspace/test/testdir로 복사 */
10. mv : 디렉토리 및 파일을 이동시키거나 이름을 변경
ex) mv test01.java test02.java /* test01.java를 test02.java로 이름 변경*/
ex) mv test01.java ../test /* test01.java를 현재 디렉토리 내에 있는 test디렉토리로 이동*/
ex) mv testdir testdir01 /* testdir을 testdir01로 이름 변경*/
11. du : 디스크 사용에 관한 정보를 알려줌
ex) du / (리눅스의 총용량)
54.
SSH & Telnet
12. 기타 명령어
Telnet의 명령어는 대부분 유닉스/리눅스 명령어와 부합되어 있다.
각 장비 및 시스템에 포팅되어 있는 버전에 따라 각 명령어가 조금씩 다르니 확인 후 사용해야 함.
adduser : 유저를 만들 때 사용하는 명령
chown : 파일이나 디렉토리의 ownership을 바군다
ex) chown lp /dev/lp
diskinfo : 시스템에 설치되어 있는 디스크의 정보를 보여준다.
ex) diskinfo /dev/rdisk/c0t6d0
date : 현재 시각 표시
echo : 표준 출력에 문자열을 출력
exit : 로그아웃하고 프로그램 종료
file : 파일 내용의 성격을 보여준다(파일의 종류를 알아볼 때)
finger : 현재 로그인 되어 있는 사용자의 인적사항을 출력한다.
find : 파일 시스템에서 파일이나 디렉토리를 찾을 때 사용
ex) find /-name core -print
grep : 파일 내에서 특정 패턴을 찾는다
ex) grep 0- l ifconfig /sbin/init.d/*
gzip : 압축명령
gunzip : 압축해제명령
jobs : 백그라운드에서 실행되고 있는 작업들의 작업번호, 작업 상태등을 보여줌.
kill : 실행 중인 프로세서를 강제종료할 때.
ex) kill -9 924
last : 최근 접속한 사용자의 이름과 장소, 시간 등을 알려줌
lp : 시스템의 기본 프론터에 파일을 프린트 함.
lpstate -t : 모든 프린터 스풀러에 관련된 정보를 보여줌
mail : 다른 사용자에게 편지 보내기
more : 텍스트 파일 내용을 페이지 단위로 봄(더 보려면 spacebar 누름, 한줄 보기는 enter)
ps -ef : 시스템에서 수행되고 있는 모든 프로세스를 보여줌
passwd : 암호 변경
shutdown : 시스템 끔
top : 주기적으로 변하는 프로세스의 정보를 보여줌
useradd : 사용자 추가
userdel : 사용자 삭제
usermod : 사용자 권한 주기
what : 파일의 버전 정보를 보여줌
who : 로그인 된 사용자 목록을 보여줌
who am i : 현 사용자의 로그인 명, tty 및 로그인한 날짜/시간을 보여줌
who -r : 현재의 run state를 보여줌
sort : 파일정렬
sleep : 지정한 시간만큼 쉰다.
shutdown -h now : 당장 종료
shutdown -r now : 시스템 리부팅
userdel pr 디렉토리명 : 사용자의 홈디렉토리까지 삭제
13. vi : Linux의 vi edit 기능을 수행함.
vi edit는 크게 입력모드와 명령모드로 구분된다.
>>입력모드 : 입력모드로 전환하기 위해서 다음과 같이 i,a,o,O를 타입핑해야 i 커서가 놓여 있는 위치의 문자 앞에 삽입
a 커서가 놓여 있는 위치의 문자 뒤에 삽입
o 현재행의 아래행을 밀어내고 입력모드로 전환
O(대소문자 구분) 현재행을 한줄 아래로 밀어내고 입력모드로 전환
입력모드를 벗어나려면 ESC 키를 누르면 명령모드로 돌아온다.
>>명령모드
:q 저장하지 않고 종료
:q! 강제 종료
:w 저장
:w! 강제로 저장
:wq 저장하고 종료(=:x)
:wq! 강제로 저장하고 종료
:w file_name 새이름으로 저장
-> 커서이동 :명령모드에서 이동할 수 있다(리눅스에서는 일반 방향키로도 이동이
h(왼쪽), (아래쪽)j, k(위쪽), l(오른쪽),
w(오른쪽), b(왼쪽), 0(행의 처음으로 이동), $(행의 마지막으로 이동)
-> 텍스트교체
R(커서가 있는 자리부터 여러문자를 교체)
r (커서가 있는 자리부터 한글자만 교체)
-> 삭제명령
dw 한 단어 삭제
dd 한 줄 삭제
D 커서 위치부터 행 끝까지 삭제
x 한 글자 삭제
-> 자르기와 붙여넣기
y(텍스트를 복사), yy(한줄을 복사)
->범위지정
:행번호(문서의 지정 번 행으로 이동)
:$(행의 마지막으로 이동), :$=(현재 편집중인 텍스트 내용이 총 몇 줄인지 확인
:시작행,마지막행d (시작행부터 마지막행까지 지움)
:시작행,마지막행y (시작행부터 마지막행까지 임시버퍼에 저장)
SSH & Telnet
• 이름부터가 “Secure SHell”.
• 보안에 중점을 두었다.
• 심지어 Telnet보다 속도도 더빠름…
• SSH >>> 넘사벽 >>> 다차원우주 >>>>
미지의세계 >>>>>>> Telnet
• SSH보다 Telnet이 더 좋은점이 없음.
60.
SSH & Telnet
• 따라서 스푸핑의 대책인 암호화에 의하여
설사 도청을 해도 안전하게 엑세스 가능함.
(물론 방법은 다 있음.. 은신트위치를 발견하기 위해 핑와를 박는것처럼…)
(Ettercap툴은 SSH1.5까지 자동으로 복호화 및 강제로 SSH1.5를 사용하게함)
• 공개키 암호화 방식.
-> 공개용 키 & 개인용 키가 따로 존재.
• SSH, OpenSSH(feat. BSD licence)
• 기본적으로 대부분 리눅스에 설치되있음.
SSH & Telnet
• OpenSSL + zlib -> OpenSSH
• 소스파일을 모두 받아서 설치해줌.
63.
SSH & Telnet
• Telnet이 그냥커피면 SSH는 TOP
-> 트래픽이 압축되어 전송되어짐.(속도↑)
-> X11 세션 연결을 이용함(보안↑)
-> 터널기능도 지원(기능↑)
64.
CSS – ClientSide Script
• 클라이언트에서 실행되는 웹 스크립트.
• 브라우저 내 스크립트엔진이 실행시킴.
• JavaScript
• VBScript.
65.
CSS – ClientSide Script
• Javascript
– 자바와 관련 없음..
– 자바랑 비슷한 구문이 있긴함.
– C언어를 기반으로 제작됨.
– 동적 웹페이지를 개발할 때 사용함.
– 해킹기법에 자주 쓰이므로 제한을 자주함.
– 오픈소스라 퍼다쓰는게 더나음(…)
66.
CSS – ClientSide Script
• Javascript를 이용한 해킹기법
• XSS
– 스크립트를 실행하는 클라이언트를 공격.
– 쿠키와 같은 클라이언트에서 처리하는 정보를
다룰 수 있음.
– 특정 사이트로 접속 시도 가능.(납치태그)
67.
SSS - ServerSide Script
• 서버단에서 스크립트를 실행하여 클라이
언트가 원하는 정보를 퍼다줌.
• PHP
• JSP
• ASP
• Perl
• Python
68.
SSS - ServerSide Script
• PHP
– 텍스트나 HTML 문서에 특화되어있음.
• URL 파싱
• 정규표현식.
• JSP
– 웹디자인 짱짱.
• HTML안에 자바코드를 삽입할 수 있음(동적)..
Cookie & Session
• Cookie
– 클라이언트단에서 나중에 쓰기 위하여 정보를
저장해 둠.
– Ex) 자동로그인, 최근 본 상품 등등..
• Session
– 통신을 하는 두 대의 컴퓨터간 활성화된 접속
을 의미함.
– 커맨드 입력 -> 응답출력 까지를 세션이라 함.
HTTP 헤더 분석
• Method
– GET – URL 에서 자료의 전송을 요청.
– POST – Entity Body 안에 정보를 넣어 요청.
– HEAD – 자료에 대한 정보만을 받음.
– PUT – 해당 URL에 자료를 저장.
– DELETE – 해당 URL의 자료를 삭제.
– TRACE – 이전에 요청했던 내용을 요청.
– OPTION – 어떤 HTTP 메소드를 지원하는지 요청.
– CONNECT – 프록시가 사용하는 요청.