* 인터넷의 시작
= 통신 장치들이 호환이 안됨 ( 네트워크 장비를 만드는 회사들이 독자적 기술을 사용했기 때문!)
= ARPA가 장비 종류가 달라고 통신이 가능하도록 프토로콜을 개발함 ( ARPAnet : 빈트서프, 로버트 칸 )
= Mlinet 과 TCP/IP로 나누어져 TCP/IP는 민간에 개방 ( 상업용 ) ---> 무료로 사용 ( ISP들이 선호 )
= IP프로토콜 : IP주소를 분배하고 IP끼리 통신할 수 있도록 하는 프로토콜
= TCP, UDP : Port 번호를 사용해서 Application을 구분하는 식별자 역할을 지원
* TCP의 특징 ( 동일 경로, 순차 전송 )
= Connetcion Oriented : 데이터를 송 수신 하기 전에 연결을 확보 --> 동일경로 전송 ---> 전화와 비슷
= 순차전송 : 순서대로 도착해야 함 , 중간에 못 받은 것이 있으면 그 뒤는 다 버림, 재전송 요청
= 수신측에서 받을 수 있는 크기를 확인하는 기능 ---> Windows Size
* Port 번호
= System port : 0~1023 ( Well known Port : 용도가 미리 지정되어 있다는 의미 ) ----> Server용 포트
= Registered port : 1024~49151 ------> ( 특정 회사에서 개발한 ) Application ( MySQL, Oracle, Battlenet, KakaoTalk, 게임 등등 )
= Dynamic port : 49152~65535 ------> 자유롭게 사용 가능, 주로 Client가 사용 ( Chrome, internet Exploere, Edge, Firefox 등 )
Ex) Web Browser가 50000번을 사용해서 Web Server의 443포트에 접속하려고 함
-------------> TCP Header의 Source port 는 50000, Destination port는 443
* TCP Header
= Sequence Number : TCP Segment가 분할된 경우, 순서 번호가 들어감
= Acknowledgement Number : 응답번호, 다음에 받을 Sequence 번호를 표시
= Ack Number가 1001이라면, 주는 쪽에서는 1000번까지 잘 받았구나 하고 판단하게됨
--------------> 순차 전송이 가능해진다!
* TCP Flag : TCP의 속성을 나타냄
= URG : Urgent ( 긴급 )
= ACK : Acknowledge ( 응답 )
= PSH : Push ( 상위 계층으로 보내서 처리 )
= RST : Reset ( 연결해제 ) // "OK캐쉬백 얼마 있구요~, 보험 가입 하실래요?" 하니까 바로 끊기 and 도를 아십니까?
= SYN : Syncronization ( 동기화 요청, 연결 요청 ) // 데이터를 보내도 될까요? 물어보는것 ---> ACK가 오면 그때부터 보내기 시작
= FIN : Finish ( 종료 요청 ) // 엄마 저 이제 전화 끊어야돼요~
EX ) 1bit씩 할당, 순서는 UAPRSF
000010 ----->SYN 연결 요청
010010 ----->ACK/SYN
000001 ----->FIN
* UDP
= 순서 체크 하나요? 안함
= 경로 확보 하나요? 안함
= 상대방이 얼마나 받을 수 있는지 확인? 안함
= 재전송 요청 하나요? 안함
------------------> 아무고토 하지 않으니까 빠른 처리 가능 ( 가는 속도는 더 빠른건 아니지만 도착하면 바로 사용자에게 보여주거나 바로 처리됨 )
= 주로 실시간 음성이나 화면을 처리하는데 사용 ex) 화상회의, 온라인게임
= 시스템간에 네트워크 상태 정보(패킷개수 통계 등 ), 시간동기화, DNS정보, 간단한 요청 등을 처리 ---->크기가 매우 작음 (보통 60 바이트 이하 )
* 자신의 LANcard에 있는 MAC주소와 프레임의 목적지 MAC 주소가 일치하지 않으면 버리는게 정상
-----> 하지만 배우자의 전 애인이 보낸 편지를 뜯어보듯 버리지 않고 수신하도록 설정하는 것을 Promiscuous Mode( 마구잡이 모드 ) 라고 함
와이어 샤크에서 볼 수 있는 Promiscuous Mode
------------------------------------------------------------------------------------------------------------------------------------------------------------
실습 ) telnet_sniff.pcapng
= 목표 : Telent으로 접속한 사용자의 ID와 PW는 무엇일까요?
아무 TELNET이나 오른쪽 마우스 누르고 TCP stream 선택 ---> TCP의 흐름을 한번에 보는 방법
빨간건 클라이언트가 서버로
파란건 서버가 클라이언트로 보내는것
------>ID가 한글자씩 번갈아 가면서 색깔이 다름 ---> Client가 입력할 때마다 Server에서 확인으로 다시 알려줌 (Echo)
------>예전에 인터넷이 구릴때 확인하는용도로 사용하는게 기능이 남아있는 것.
Login : blackpink
Password : love
cf. Telent은 암호화가 되지 않기 때문에 사용할 경우, Sniffing(도청)의 위험이 매우 높음 ----> 사용금지!!( Windows에서 지원안됨)
---->SSH(SecureShell)을 사용해야함
실습 ) ftp-clientside101.pcapng
= 목표 : FTP로 전달된 파일을 추출하세요
= FTP와 FTP-DATA의 차이는 무엇일까요? TCP 헤더에 있는 포트번호
= FTP : 21 ----> 명령어를 송,수신하는 포트
= FTP - DATA : 20 -----> 파일을 송,수신 하는 포트
그러면 FTP는 냅두고 FTP-DATA중 아무거나 우클릭 - 팔로우 - TCP Stream
show data as 를 raw로 바꾸고 save as 를 누르고 pantheon.jpg로 저장해준다
* Follow TCP Stream을 왜할까?
= 보낸 정보를 한번에 보려고 ----> 그러면 왜 나눠져 있지?
= TCP분할 과정을 거쳤기 때문에!
실습 ) whoisshe.pcapng
= 목표 : 사진의 주인공은 누구?
유라의 사진을 GET요청 후
1514 를 꽊꽊 채워서 보내는걸 보니 사진을 보내는 중일것.
아까처럼 일단 저장한다.
HxD로 열어서
jpg 파일의 파일 시그니처 이전까지 다 삭제한다
그리고 저장~
사진을 열면 걸스데이 유라가 서있다.
실습 ) 네이버 검색캡쳐.pcap ( 나는 매우 어려웠다 ㅠ )
= 목표 : 네이버로 검색한 단어는?
방법 1 )검색은 : GET 요청을 보내짐 ---> http.request.method == GET
방법 2 ) Edit - Find Packet - String 으로 변경하고 search 검색
방법3 ) Display Filter 에 frame matches search를 입력해서 찾음
실습 ) lemieux.pcap
= 목표 : 파티에 참석하기 위한 비밀문구는 무엇일까요?
내가 아는 친구가 뉴욕의 술집을 빌려서 파티를 계획하고 있습니다. 초대를 받지 못했지만, 파티에 참석하고 싶습니다. 다른 친구가 초대받은 메일을 스니핑 했습니다. 그 메일에 있는 비밀문구를 알면, 파티에 들어갈 수 있습니다. 그 비밀 문구는 무엇일까요?
이렇게 까지 말했는데 스니핑 까지 해가면서 이악물고 가는....자괴감 들고 괴로워.....
= 해설 =
hint ) Email을 찾아야 하고 , 키워드 (party, friend, newyork, Invitation, secret 등등 ) 을 찾아야함~
frame contains party
Follow TCP Stream
저걸 복사해서 BlueBell Decoder 밑에 넣고 UTF-8 누르면 보기 더 편하게 나오긴한다.
* 그러면 frame contains 와 frame matches 의 차이는 뭘까?
= frame contains "검색어" : 정확하게 일치하는 것만 찾음
= frame matches "검색어" : 대소문자 구분 없이 비슷하면 모두 찾아줌, PCRE ( 정규 표현식, Perl Compatible Regular Expression ) 을 사용 가능
-------------------------------------------------------------------------------------------------------------
실습 ) 1_evidence01.pcap, 2_evidence02.pcap
= 목표 회사 내부의 스파이를 잡아라
그리고 Recipe.docx 파일도 찾아서 Raw 로 다운로드 해준다
그리고 HxD로 열어서 파일시그니처 이전 부분을 삭제 해준다.
참고 : docx 파일은 파일 시그니처가 PK로 시작한다.
하지만 HxD 를 열어서 PK부터 이전의 내용을 지워주고 파일을 저장해준다.
그러면 완성~
* 해시값 계산방법
= Fasthash_kr.exe, Bluebell_decoder : 파일의 해시값을 계산
실습 ) 2_evidence02.pcap
일단 frame matches Mr.x 을 해보자
2 6 7 8
* 비밀번호 : 558r00lz // 2클리어
= pass 를 검색해서 password 라고 나오는 값을 base64 디코딩함
cd. 유명 해킹 그룹 : Lulzsec( 룰즈섹 ) 의 오마주 r00lz
* Email 과 Web Mail 차이는?
= 웹메일은 웹브라우저로 열어봄
= 이메일은 아웃룩,아웃룩 익스프레스 , 메일( 윈도우 10 ) --> 확장자는? eml
만나기로한 장소는 멕시코의 플라야 델 카르멘 ( playa del carmen ) 이다. // 5,7 클리어
이제 MD5 ( 해시값 ) 은 블루벨 디코더나 패스트해시 등을 사용하면된다.
이메일 : 9E423E11DB88F01BBFF81172839E1923
이메일 속 그림 : 2DEDA162E18ACC15FB9BE01F012559D5
전부 클리어~~
실습 ) 3_evidence03.pcap
= 도망간 스파이를 잡아라!
MAC : 00:25:00:fe:07:c4
User-Agent: AppleTV/2.4
검색어 : hack
= 할게 너무많아서...필기는 pass 그리고 해설 중간에 끕똥이 찾아와서...... pass...
tcp.stream eq 18 부터 시작
iknowyourewatchingme // 조금 소름돋는 문장
지금까지 강사님이 찾은 제목은
hack
sneb ( 증분 검색 )
sneak
iknowyourewatchingme
= 프리뷰 url 찾기Edit - 파인드 패킷 - 왼쪽에 패킷 디테일스 - 오른ㅁ쪽에 preview 검색
( 패킷 리스트, 패킷 디테일스 차이 : 패킷 리스트는 겉에 부분만 살짝 검색하는거고 패킷 디테일스는 안쪽 바디값까지 다 뜯어서 디코딩 후 검색해줌! )
312번 패킷URL : /WebObjects/MZStore.woa/wa/viewMovie?id=333441649&s=143441
= 구매가격 찾기
검색창에 price-display 검색하면 나온다.
두번째 가격인 9.99달러가 정답이었다 ( Sneakers 의 가격 )
-----------------------------------------------------------------------------------------------------------------------------------
실습 ) 4_evidence04.pcap
* 스캐닝
= 열린 포트에서는 ACK/SYN으로 응답 , 닫힌 포트에서는 ACK/RST로 응답 ---> 응답을 보고 열린포트를 알 수 있음
1. TCP SYN Scan ( Half Open Scan, Stealth Scan)
= SYN를 보내고, 서버의 포트가 열려있는지만 확인하고, 마지막 ACK를 안보냄 ------> 연결이 이루어지지 않음
2.TCP ACK Scan
= ACK를 보내서, 응답이 없으면 열린포트, RST가 오면 닫힌 포트
3. UDP Scan
= 실행중인 포트에서 UDP응답이 옴 ( UDP는 HandShaking 이 없으므로, 닫힌포트는 ICMP destination unreachable )
4. TCP Connect Scan ( 연결 완성 )
= SYN를 보내서, ACK/SYN가 오면, ACK를 보내줌 ----> 정상연결
5. TCP Xmas
= TCP Flag를 모두 1로 만들어서 보내는 공격 : 111111 ---->Flag 6개를 모두 활성화 ( 엉터리 로직 ) , 크리스마스 전구처럼 다 11111로 켜져있어서 이름이 Xmas~
= 열린포트는 응답 없음, 닫힌 포트는 RST를 보냄 ---> 구분 가능
6. TCP RST
= RST를 보내는 기법 ( 잘 사용 안함 )
* Apple MAC : Hardware와 OS를 같이 판매 ----> MAC주소에 Apple 이라고 나옴
Windows : Hardware는 MAC주소가 Network 장비 회사, OS는 TTL = 128로 응답, 135, 139번 포트가 열려있음
* TCP Flag 순서 : UAPRSF
U:32, A:16, P:8, R:4, S:2, F:1 ---->
* 열린포트에서 어떻게 응답??? ACK/SYN ---> 010010 ----> 16+2 = 18 디스플레이 필터 tcp.flags == 18
* ACK 로 응답했는지 확인 하려면? 010000 ---> tcp.flags == 16
2번의 답 : TCP Connect Scan
3번의 답 : 10.42.42.25 / 10.42.42.50 / 10.42.42.56
4번의 답 : 00:16:cb:92:6e:dc / 00:23:8b:82:1f:4a /70:5a:b6:51:d7:b2 맨 마지막꺼인듯
5번의 답 : 10.42.42.50
6번의 답 : 너무 어렵다
'공부 > 시스템,네트워크 보안' 카테고리의 다른 글
9월 22일 시스템/네트워크 보안 6 (0) | 2022.09.22 |
---|---|
9월 21일 시스템/네트워크 보안 5 (0) | 2022.09.21 |
9월 20일 시스템/네트워크 보안 4 (0) | 2022.09.20 |
9월 19일 시스템/네트워크 보안 3 (0) | 2022.09.19 |
9월 15일 시스템/네트워크 보안 1 (0) | 2022.09.15 |