# http://www.tcpdump.org/
# 리눅스 계열, 콘솔환경, libcap 사용
# 리눅스(우분투)에 설치
sudo apt-get install tcpdump
# 이더넷 장비를 사용하는것으로 root 권한으로 실행
# 모든 패킷이 캡쳐되어 보기 힘들다.
sudo tcpdump
# 다음과 같은 옵션을 주어 필요한 부분만 캡쳐해 보자
# host 123.123.123.123 : 호스트가 123.123.123.123 인 것만 in/out 캡쳐
# -A : ASCII 로 패킷 출력
# -vvv : 자세하게 보기
# -c 10 : 패킷 10개만 캡쳐하고 끝내기
sudo tcpdump host ysoftman.test.net -A -vvv -c 10
# 소스가 ip 가 123.123.213.123 의 80 , 443 포트를 사용하는 패킷 캡쳐
# and 또는 &&
# or 또는 ||
# not 또는 !
sudo tcpdump 'src 123.123.123.123 and (port 80 or port 443)'
# tcp 포트가 80 이 패킷 캡쳐(http 캡처)
# https 443 포트는 암호화되어 있어 알아볼 수 없다.
sudo tcpdump 'tcp port 80'
# 자주 사용되는 옵션
# -D 사용가능한 interface 리스트
# -i 사용할 interface(이더넷카드)
# -X hexa코드와 ascii 를 같이 보여준다.
# -e protocol 출력
# -w 캡쳐한 내용 파일로 쓰기
# -l stdout line buffered, 패킷 캡쳐중에 데이터를 보고 싶을때(보통 파이프로 grep, sed 로 볼때 사용한다.)
# http 헤더만 보기
sudo tcpdump -vvvs 1024 -l -A | egrep --line-buffered "^........(GET |HTTP\/|POST |PUT |HEAD )|^[A-Za-z0-9-]+: " | sed -r 's/^........(GET |HTTP\/|POST |PUT | HEAD )/\n\1/g'
#####
# ssldump
# http://ssldump.sourceforge.net/
# ssldump 로 두 호스트간의 패킷을 decrypt 할 수 있다.
# -e 절대시간 timestamp
# -A 모든 레코드 출력
# -q quite mode 로 패킷을 한줄로만 표시한다.
# src, dst 명시에는 3가지 타입이 있고 명시하지 않으면 기본 host
# host hostname 또는 10.10.10.10
# net 10.10.0.0/16 (10.10.x.x)
# port 80
sudo ssldump -e -A -q 'dst 10.10.10.10'
# 출력 예시
# 2 : 커넥션 번호
# 3 : 커넥션에서 사용하는 레코드 번호
# 0.2001 : 연결후 상대적인 타임스탬프
# (0.0749) : 이전 레코드 이후 경과시간
# S>C : server to client
# Handshake : 레코드 타입
# (Handshake,IAlert,ChangeCipherSpec, application_data)
# Certificate : 레코드 내용(메시지)
2 3 0.2001 (0.0749) S>C Handshake Certificate
# tcpdump 로 캡쳐한 파일을 읽을 수 있다.
# -r 캡쳐 파일로 부터 읽기
sudo tcpdump -e -w z.out
sudo ssldump -r z.out
#####
# WinDump
# http://www.winpcap.org/windump/install/
# 윈도우 계열, 콘솔환경, winpcap 사용
# windump 는 tcpdump 를 윈도우용으로 만든것으로
# tcpdump 와 기본적인 사용법은 같다.
# WireShark
# http://www.wireshark.org/
# 윈도우/리눅스 계열, GUI환경,
# wireshark 를 실행하면 GUI 환경에서 패킷을 캡처할 수 있다.
# libcap(리눅스), winpcap(윈도우) 사용, 패킷 분석 제공
# 네트워크 캡처 프로그램으로 유명한 WireShark 는
# 윈도우에서 보통 WinPcap 을 이용해서 패킷 캡쳐를 한다.
# tcpdump windump 등으로 패킷을 덤프한 파일을 열어 분석할 수 있다.
# 리눅스(우분투)에서 설치
sudo apt-get install wireshark
# RawCap
# http://www.netresec.com/
# 윈도우 계열, 콘솔환경
# 간단한 command line 상으로 패킷 캡쳐할 수 있다.
# RawCap.exe 실행 --> sniffer 할 인터페이스 선택 --> 캡쳐 내용을 저장할 파일명 선택
# 끝내려면 Ctrl+C