Linux/보안장비 운용

tcpdump 를 이용한 패킷 분석

GGkeeper 2022. 3. 10. 14:35

인터페이스 ens33을 지정해서 그 인터페이스에 들어온 패킷을 모니터링 한다.
# tcpdump -i ens33

인터페이스에 들어온 패킷을 tcpdump.pcap 파일로 저장한다.
# tcpdump -w tcpdump.pcap

tcpdump.pcap 파일을 읽어서 화면에 출력한다.
# tcpdump -r tcpdump.pcap

인터페이스 ens33을 지정해서 그 인터페이스에 들어온 패킷중에서 80번 포트를 모니터링한다.
# tcpdump -i ens33 tcp port 80

인터페이스 ens33을 지정해서 그 인터페이스에 들어온 패킷중에서 소스 IP주소가 192.168.108.200으로 되어있는 패킷을 모니터링한다.
# tcpdump -i ens33 src 192.168.108.200

인터페이스 ens33을 지정해서 그 인터페이스에 들어온 패킷중에서 목적지 IP주소가 192.168.108.200으로 되어있는 패킷을 모니터링한다.
# tcpdump -i ens33 dst 192.168.108.200

and 를 이용해서 조건을 조합해서 사용할 수 있다.
인터페이스 ens33 인터페이스에 들어온 패킷중에서 소스 IP주소가 192.168.108.200 and tcp port가 80번으로 되어있는 패킷을 모니터링한다.
# tcpdump -i ens33 src 192.168.108.200 and tcp port 80

-n, -nn 옵션을 이용해서 숫자로 표시할 수 있도록 한다.

실습> tcpdump를 이용한 패킷 분석 1
Victim   : 192.168.108.254
Attacker : 192.168.108.200

1. 패킷 덤프
Victim ~# iptables -F
Victim ~# systemctl start httpd
Victim ~# tcpdump -nn -i ens33 tcp port 80 

2. 공격
-c : 패킷 개수
--flood : 최대한 빠르게
--rand-source : 소스 IP주소 랜덤 
-S : SYN
-p : 서비스 포트

Attacker ~# time hping3 -p 80 -S -c 1000 --rand-source --flood 192.168.108.254

3. 패킷 분석
Victim ~# tcpdump -nn -i ens33 tcp port 80 
  :
  :(생략)
16:05:50.269051 IP 192.168.108.254.80 > 251.161.123.94.4338: Flags [S.], seq 265646084, ack 951782247, win 29200, options [mss 1460], length 0
16:05:50.269063 IP 192.168.108.254.80 > 251.54.23.209.6247: Flags [S.], seq 3393248518, ack 761058206, win 29200, options [mss 1460], length 0
16:05:50.269076 IP 192.168.108.254.80 > 251.241.88.180.1960: Flags [S.], seq 1977647507, ack 147854872, win 29200, options [mss 1460], length 0
16:05:50.868863 IP 192.168.108.254.80 > 241.144.35.144.3267: Flags [S.], seq 1270929157, ack 322989806, win 29200, options [mss 1460], length 0
16:05:50.868960 IP 192.168.108.254.80 > 240.23.51.144.1172: Flags [S.], seq 873743248, ack 1900502327, win 29200, options [mss 1460], length 0
^C
2570 packets captured
248216 packets received by filter
245646 packets dropped by kernel

4. 패킷 저장 및 분석
ens33 인터페이스로 들어오는 목적지가 80번 포트이면 tcpSynflooding.pcap 파일로 저장한다.
Victim ~# tcpdump -w /var/www/html/tcpSynflooding.pcap -i ens33 tcp port 80 
tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
^C

3초 동안 TCP SYN 패킷을 80포트에 전송한다.
3초 지나고 Ctrl + C를 눌러서 패킷 전송을 종료한다.
Attacker ~# time hping3 -p 80 -S -c 1000 --rand-source --flood 192.168.108.254

웹 브라우저에서 다운로드 받아서 와이어샤크로 분석한다.
http://victim/tcpSynflooding.pcap