리눅스 tcpdump 편집하기

IT위키

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
1번째 줄: 1번째 줄:
[[분류:리눅스]]
[[분류:리눅스]][[분류:리눅스 명령어]][[분류:보안 도구]][[분류:정보보안기사]]
[[분류:리눅스 명령어]]
; 네트워크 인터페이스를 거치는 패킷을 캡쳐해주는 도구(패킷 스니퍼)
[[분류:보안 도구]]
[[분류:정보보안기사]]


;네트워크 인터페이스를 거치는 패킷을 캡처해주는 도구(패킷 스니퍼)
== 사용법 ==
 
<pre class='shell'>
==사용법==
<pre class="shell">
# tcpdump [옵션] [BPF]
# tcpdump [옵션] [BPF]
</pre>
</pre>


==주요 옵션 및 사용법==
== 주요 옵션 ==
 
* -i : 인터페이스를 지정한다.
*-i: 인터페이스를 지정
* -nn : 출력시 호스트/서비스명이 아닌 IP주소와 Port번호로 출력한다.
*-nn: 출력시 호스트/서비스명이 아닌 IP주소와 Port번호로 출력
* -v, -vv, -vvv : 패킷을 헤더부까지 자세하게, 더 자세하게 출력한다.
*-v, -vv, -vvv: 패킷을 헤더부까지 자세하게, 더 자세하게 출력
*IP주소는 192.168.0.1/24와 같이 CIDR 포맷으로 지정 가능
 
==BPF==


== BPF ==
;Berkely Packet Filter
;Berkely Packet Filter
* 원하는 패킷만을 스니핑 하기 위한 룰 지정 부
* 대부분의 패킷 스니퍼에서 표준으로 지원되는 형식


*원하는 패킷만을 스니핑하기 위한 룰 지정부
== 사용 예시 ==
*대부분의 패킷 스니퍼에서 표준으로 지원되는 형식
* tcpdump -i eth0 -nn "tcp port 80"
 
* tcpdump -i eth1 -nn "tcp and host 192.168.123.1"
==사용 예시==
 
*'''tcpdump -i eth0''': 인터페이스 eth0을 보여줌
*'''tcpdump -i eth0 -c 10''': 10개만 덤프
*'''tcpdump -i eth0 tcp port 80''': TCP 80 포트로 통신하는 패킷 덤프
*'''tcpdump -i eth0 src 192.168.0.1:''' 출발지 IP가 192.168.0.1인 패킷 덤프
*'''tcpdump -i eth0 dst 192.168.0.1''': 목적지 IP가 192.168.0.1인 패킷 덤프
*'''tcpdump -i eth0 src 192.168.0.1 and tcp port 80''': 목적지 IP가 192.168.0.1이면서 TCP 80 포트인 패킷 보여줌
*'''tcpdump -i eth0 dst 192.168.0.1''': 목적지IP가 192.168.0.1인 패킷 보여줌
*'''tcpdump host 192.168.0.1''': 특정 호스트 IP로 들어오거가 나가는 양방향 패킷 모두 덤프
*'''tcpdump src 192.168.0.1''': 특정 호스트 중에서 출발지가 192.168.0.1인 것만 덤프
*'''tcpdump dst 192.168.0.1''': 특정 호스트 중에서 목적지가 192.168.0.1인 것만 덤프
*'''tcpdump port 3389''': 포트 양뱡항으로 3389이면 덤프
*'''tcpdump src port 3389''': 출발지 포트가 3389인 것만 덤프
*'''tcpdump dst port 3389''': 목적지 포트가 3389인 것만 덤프
*t'''cpdump udp and src port 53''': UDP이고 출발지 포트가 53이면 덤프
*'''tcpdump src 192.168.0.1 and not dst port 22''': 출발지 IP가 192.168.0.1이고 목적지 포트가 22 가 아닌 패킷 덤프
*'''tcpdump -w tcpdump.log''': 결과를 파일로 저장(텍스트가 아닌 바이너리 형식으로 저장)
*'''tcpdump -r tcpdump.log''': 저장한 파일을 읽음
 
== 실무 예제 ==
X-Forwarded-For 조회
 
결과 예시<blockquote>GET /api/files/file/name/History%20EX-Guide.docx/properties?aewgaweg.com&siteName=asgsd.com&folderName=1231212 HTTP/1.1
 
Host: mydlb.lb.anypointdns.net
 
X-Real-IP: 1.1.1.1
 
X-Forwarded-For: 1.1.1.1
 
User-Agent: curl/7.64.1
 
Accept: */*
 
Authorization: bearer 23423</blockquote>조회 방법<blockquote>tcpdump -A -s 10240 'tcp port 8091 and (((ip[2: 2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' | egrep --line-buffered "^ ........(GET |HTTP\/|POST |HEAD )|^[A-Za-z0-9-]+: " | sed -r 's/^........(GET | HTTP\/|POST |HEAD )/\n\1/g'</blockquote>
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 IT위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소 편집 도움말 (새 창에서 열림)