CLI 환경에서 사용하는 패킷 수집 및 분석 도구인 Tshark와 TCP dump에 대해서 알아보았다.
Tshark
WireShark의 콘솔 버전으로 윈도우와 리눅스 환경에서 사용이 가능하다.
WireShark가 GUI 환경을 이용해 여러 가지 편의 기능과 그래픽을 지원해 자세한 패킷 분석이 가능하다면
Tshark는 CLI환경을 이용하며 기능의 경량화로 대용량 패킷 수집에 적합하다고 할 수 있다.
WireShark 설치 시 같이 설치된다.
사용하기
Tshark를 이용해 패킷을 수집하기 전 네트워크 인터페이스를 설정하여야 한다.
실습에서는 VMware의 NAT 게이트웨이 네트워크를 선정하였다.
# 인터페이스 카드 확인
tshark -D
# 인터페이스 카드 선정 후 패킷 감시
tshark -i 1
# 다른 터미널로 네트워크 트래픽 생성
ping 8.8.8.8
간단한 사용으로 eth0 인터페이스의 네트워크 패킷이 캡처되는 것을 보여준다.
캡처한 패킷을 저장한다.
패킷 분석기에 맞는 확장자로 저장하면 와이어샤크같은 프로그램에서도 읽을 수 있다.
# -w : 캡처된 패킷을 파일로 저장
tshark -i 1 -w output.pcapng
# 패킷 파일 정보 확인
capinfos output.pcapng
capinfos의 정보를 보면 이름, 타입같은 기본적인 정보와 더불어 패킷 캡처 시작/종료 시간, 패킷 수, 데이터 레이트 등 다양한 정보를 한눈에 확인할 수 있다.
저장한 패킷 파일을 읽어보고 필터를 적용하면 어떻게 출력되는 지 확인해보자.
# 패킷 파일 읽기
tshark -r ouptput.pcapng
# 필터를 적용하여 패킷 파일 읽기
# -Y : 필터 적용
# icmp 패킷 검색
tshark -r ouptput.pcapng -Y 'icmp'
# 출발지가 192.168.10.128인 패킷 검색
tshark -r output.pcapng -Y ip.src==192.168.10.128
-r 옵션을 통해 pcapng 파일을 읽으면 포맷이 갖춰진 캡처 파일이 출력되는 것을 확인할 수 있다.
필터를 적용하지 않았기 때문에 캡처한 모든 패킷이 출력된다.
캡처 파일은 바이너리 파일이므로 cat, tail 등으로 읽을 수 없다.
icmp 패킷만 출력한 결과이다. 이전 결과와 달리 ARP, SSDP 패킷이 필터링된 모습이다.
출발지 IP가 192.168.10.128인 패킷만 필터링한 결과이다.
이렇듯 원하는 패킷만 필터링하여 활용할 수 있다.
다음은 패킷 수집 조건을 적용해 조건에 만족하면 알아서 종료되도록 설정해본다.
# -a files:3 3개의 파일을 수집하면 종료
# -b duration:10 10초 동안 수집 후 파일 생성
tshark -i 1 -a files:3 -b duration:10 -w shark.pcapng
캡처가 진행된 후 10초마다 파일을 생성하였으며 3개의 파일이 생성된 후 종료되었다.
그밖에 더 많은 명령어와 사용법은 tshark 공식 문서를 살펴볼 수 있다.
https://www.wireshark.org/docs/man-pages/tshark.html
TCPdump
리눅스에서 사용하는 패킷 수집 툴이다.
사용방법은 tshark와 매우 유사하다.
# 네트워크 인터페이스 확인
sudo tcpdump -D
# 첫번째 네트워크 인터페이스의 패킷 캡쳐
sudo tcpdump -i 1
# 캡쳐한 패킷을 파일로 저장
sudo tcpdump -i 1 -w tcpdump.pcapng
# 패킷 파일 읽기
sudo tcpdump -r tcpdump.pcapng
## 종료 조건 설정
# 패킷 30개 캡처 후 종료
sudo tcpdump -i 1 -c 30
## 순환 저장 설정
# -W : n개의 파일에 순환 저장
# -C : 파일 당 n MB 저장 후 새 파일 생성
# 5개의 파일에 200MB씩 순환 저장하며 5개 모두 가득차면 처음 파일에 덮어쓰기 시작한다.
sudo tcpdump -i 1 -W 5 -C 200 -w dump.pcapng
## 필터 적용
# tcp 80포트로 연결된 패킷만 캡쳐
tcpdump -i 1 tcp port 80
# 입력한 출발지 IP인 패킷만 캡쳐
tcpdump -i 1 src 192.168.10.128
# 여러 조건 동시 사용
tcpdump -i 1 src 8.8.8.8 and icmp
tcpdump는 패킷 수집 단계에서도 필터를 적용하여 필요한 패킷만 캡처할 수 있다.
리눅스 CLI환경에서 간단하게 사용할 수 있는 패킷 수집 도구 두 가지를 알아보았다.
tshark와 tcpdump는 약간의 기능 차이만 존재할 뿐 사용 방법이 유사하며 성능도 비슷하다.
대용량의 패킷은 CLI 기반 패킷 수집도구를 이용해 수집하고 세밀한 분석은 와이어샤크로 진행한다.
'보안 이론 > 네트워크 보안' 카테고리의 다른 글
네트워크 보안 장비(방화벽/IDS) 개념 및 설명 (0) | 2022.10.02 |
---|---|
WireShark를 이용한 패킷 분석 실습 (0) | 2022.09.23 |
공개키 암호와 해시를 이용한 인증 원리 (0) | 2022.09.21 |
대칭키(Symmetric Key) 암호화 방식 (0) | 2022.09.20 |
TCP/IP Protocol Suite (0) | 2022.09.19 |