TCP/IP 패킷 분석 (교육 16일차)

SW·2022년 12월 13일
0

TCP (Transmission Control Protocol)






IP (Internet Protocol)







① 웹서버 : 아파치 웹서버 스타트, 방화벽 중지
-> #systemctl start httpd, #systemctl stop firewalld
② 클라이언트 : 웹서버 핑 확인, 웹문서 요청
-> #ping -c 4 8.8.8.8, #lynx --dump 200.200.200.4

실습> 패킷을 덤프해서 분석하기

ssh 접속은 모두 연결을 종료한다.

1. 패킷 덤프
와이어샤크를 실행해서 VMnet8 Adapter를 선택한다.

2. 웹페이지 접속
웹 문서를 요청한다.
[root@www1 ~]# lynx --dump 200.200.200.4
Welcome to my server.

3. 패킷 분석
와이어샤크에서 패킷 덤프를 중지한다.

[와이어샤크 설정]
패킷의 Sequence 번호를 보이게 설정
하기.
Edit > Preference > Protocols > TCP > Analyze TCP sequence numbers 체크 해제

📌 Tip 📌
와이어샤크 레이아웃 변경하는 방법
Default로 패킷 디테일과 패킷 바이트 화면이 양옆으로 설정된 부분을 위 아래로 변경하여 로그가 짤리지 않고 다 볼 수 있도록 변경

(참고)

  • sshd : 원격접속프로그램, 암호화통신 (도청 x) sniffing
    -> ls /usr/sbin/sshd (데몬서비스용 프로그램)
  • httpd : apache 웹서버
    -> ls /usr/sbin/httpd
  • 웹페이지 : index.html
    -> /var/www/html/index.html
  • 프로세스 : ps aux, ps -ef
    -> 실행중인 프로세스의 목록과 상태 조회

💥💥💥[3 way handshake]💥💥💥

HTTP 패킷 분석
: 패킷 > 마우스 오른쪽 > Follow > TCP Stream

GET / HTTP/1.0
Host: 200.200.200.4
Accept: text/html, text/plain, text/css, text/sgml, /;q=0.01
Accept-Language: en
User-Agent: Lynx/2.8.8dev.15 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/1.0.1e-fips

HTTP/1.1 200 OK
Date: Mon, 12 Dec 2022 22:42:45 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Mon, 12 Dec 2022 22:25:50 GMT
ETag: "16-5efa8fc5104c0"
Accept-Ranges: bytes
Content-Length: 22
Connection: close
Content-Type: text/html; charset=UTF-8

Welcome to my server. <-- 평문 통신

4. 파일 저장

캡처된 패킷을 파일로 저장한다.
저장된 파일은 나중에 다시 분석하기 위해서 와이어샤크에서 열어볼 수 있다.
패킷덤프파일의 확장자: pcap, pcapng(pcap의 업그레이드 버전)

HTTP패킷분석.pcapng

실습> 패킷을 덤프해서 분석하기

nc(NetCat)로 패킷 전송을 한다.

  • TCP/IP 패킷을 전송하는 프로그램

1. 방화벽 비활성화
방화벽을 비활성화한다. 방화벽을 비활성화 한다는 말은 서버가 부팅되도 방화벽이 다시 올라오지 않는다는 말이다.
[root@www2 ~]# systemctl disable firewalld

2. 포트 오픈
nc 로 8000 포트를 열고 외부에서 접속해오기를 귀기울인다.
[root@www2 ~]# nc -lvp 8000

3. 패킷 덤프
wireshark를 실행해서 VMnet8 네트워크의 통신을 분석하기 위해서 VMnet8을 모니터링한다.

4. nc 접속
[root@www1 ~]# nc 200.200.200.4 8000

5. 데이터 전송
[root@www1 ~]# nc 200.200.200.4 8000
Hello

[root@www2 ~]# nc -lvp 8000
Hello
Hi

[root@www1 ~]# nc 200.200.200.4 8000
Hello
Hi
^C

6. 패킷 덤프 중지
와이어샤크에서 패킷 덤프를 중지하고 패킷을 분석한다.

7. 파일 저장
캡처된 패킷을 파일로 저장한다.
저장된 파일은 나중에 다시 분석하기 위해서 와이어샤크에서 열어볼 수 있다.
패킷덤프파일의 확장자: pcap, pcapng(pcap의 업그레이드 버전)

nc패킷분석.pcapng

(참고)
아스키코드
https://ko.wikipedia.org/wiki/ASCII

💥💥💥 TCP Header 💥💥💥
TCP의 Header 부분에 Header Length 부분에는 총 4bit가 설정되어 있다.
32/8 = 4byte
0 ~ 15 까지의 값을 가지고 있고 1bit의 크기는 4byte의 크기를 갖는다.
0000
~
1111

15 * 4 = 60 (최대 60byte)

Q. TCP Header의 길이가 40byte 일 때 HLEN의 값은 무엇인가?
A. 1010

Q. TCP Header의 길이가 20byte 일 때 HLEN의 값은 무엇인가?
A. 0101

Q. TCP Header의 길이가 60byte 일 때 HLEN의 값은 무엇인가?
A. 1111

[파일을 보는 리눅스 명령어]
cat
tac
head
tail
less
more

# cat /etc/protocols
# tac /etc/protocols
# head /etc/protocols
# tail /etc/protocols
# less /etc/protocols
# more /etc/protocols

# grep ^icmp /etc/protocols
# grep ^tcp /etc/protocols
# grep ^udp /etc/protocols

미션> 아래의 미션을 수행하시오.

미션> 아래의 미션을 GNS3에서 수행하시오.

profile
정보보안 전문가

0개의 댓글