SlideShare a Scribd company logo
© ISS 2007.10 Tcpdump  기술 문서
1. tcpdump 란 ? tcpdump 는  Lawrence Berkley Nation Lab 의  Network Rearch Gruop 에서 만든 것으로 네트워크의 패킷 을 출력해주는 프로그램이다 .  주어진 조건식을 만족하는 네트워크 인터페이스를 거치는 패킷들의  헤더들을 출력해 주는 프로그램이다 .  주로 쓰임은 지정된 상대방 호스트로부터 들어오는 패킷을 체크 하는 데 있다 . Tcpdump  옵션 및 사용법 2. tcpdump 의 사용법 (1)  사용법 tcpdump [options] [host] (2) tcpdump 의 결과보기 [root@www root]# tcpdump 01:37:09.744959 203.xxx.xxx.10.4847 > linux.co.kr.ftp: S 2082495566:2082495566(0) win 16384 <mss 460,nop,nop,sackOK> (DF) => ( 결과설명 ) -  01:37:09.744959 : Timestamp 로 보통  ' 시간 . 특정한숫자값 ‘  형태로 부여된다 . -  203.xxx.xxx.10.4847 : Source_address.source_port  로 소스의  IP 주소와  Port 번호를 나타낸다 . * Traffic direction  으로 방향을 나타낸다 . -  linux.co.kr.ftp : destination_address.destination_port  로 도착지  IP 주소와  Port  번호를 나타낸다 . -  S : TCP flag 로 특정한 표시문자를 일컫는다 . -  2082495566:2082495566(0) : sequence number 이다 . -  win 16384 : window size 이다 . -  <mss 460,nop,nop,sackOK> : various options  이다 . -  (DF) : Don't fragment 3. tcpdump  플래그  (flags) SYN (S)  =  Syn  패킷 ,  접속요청을 할 때 보내는 패킷을 말한다 . TCP  접속 시에 가장먼저 보내는 패킷이다 . ACK (ask) =  ACK  패킷 ,  상대방으로부터 패킷을 받은 뒤에 알려주는 패킷을 말한다 .  다른 플래그와 같이 출력되는 경우도 있다 . FIN (F)  =  접속종료를 위한 플래그로 이 패킷을 보내는 곳이 현재 접속하고 있는 곳과 접속을 끊고자 할 때 사용한다 . RESET (R) =  이 패킷을 보내는 곳이 현재 접속하고 있는 곳과 즉시 연결을 끊고자 할 때 사용한다 . PUSH (P) =  데이터를 즉시 목적지로 보내라는 의미이다 .  텔넷과 같이 상호작용이 중요한 프로그램의 경우 빠른 응답이 중요하다 .  이때 사용하는 플래그이다 . UGENT (URG) =  긴급한 데이터는 다른 데이터에 비해 우선순위가 높아야 한다 .  예를 들어  ftp  로 자료를 받고 있는 도중  [CTRL] + [C]  를 받으면 즉시 자료받기를 중단해야 하는 것처럼 이 때 사용하는 플래그이다 . Placeholder (.) =  패킷이  SYN, FINISH, RESET, PUSH  등의 플래그가 없는 경우 이 플래그가 세팅된다 .  이 플래그는  ACK  플래그와 함께 사용되는 경우도 있다 .
4. tcpdump  의 옵션 (1)  옵션 -h :  버전 및 기본 사용법을 보여준다 . -a : Network & Broadcast  주소들을 이름들로 바꾼다 . -c Number :  제시된 수의 패킷을 받은 후 종료한다 . -d : Compile  된  packet-matching code  를 사람이 읽을 수 있도록 바꾸어 표준 출력으로 출력하고 ,  종료한다 . -dd : packet-metching code  를  C program  의 일부로 출력한다 . -ddd : packet-matching code  를 숫자로 출력한다 . -e :  출력되는 각각의 행에 대해서  link-level  헤더를 출력한다 . -f :  외부의  internet address  를 가급적 심볼이 아닌 숫자로 출력한다 . (Sun 의  yp Server 와의 사용은 가급적 피함 ) -F file : filter  표현의 입력으로 파일을 받아들인다 .  커맨드라인에 주어진 추가의 표현들은 모두 무시된다 . -i device :  어느 인터페이스를 경유하는 패킷들을 잡을지 지정한다 .  지정되지 않으면 시스템의 인터페이스 리스트를 검색하여 가장 낮은 번호를 가진 인터페이스를 선택한다 . -I :  표준 출력으로 나가는 데이터들을  line buffering  한다 .  다른 프로그램에서  tcpdump  로 부터 데이터를 받고자 할 때 유용한다 .  ->  보통  ‘ tcpdump  – I | tee dat ’   나  ‘ tcpdump  – I <dat & tail  – f dat ’   명령으로 연계해서 사용하면 편리하다 . -n :  모든 주소들을 번역하지 않는다 . (port, host, address  등등 ) -N :  호스트 이름을 출력할 때 ,  도메인을 찍지 않는다 . -O : packter-matching code optimizer  를 실행하지 않는다 .  이 옵션은  optimizer  에 있는 버그를 찾을 때나 쓰인다 . -p :  인터페이스를  promiscuous mode 로 두지 않는다 . -q :  프로토콜에 대한 정보를 덜 출력한다 .  따라서 출력되는 라인이 좀 더 짧아진다 . -r file :  패킷들을  ‘ -w ’   옵션으로 만들어진 파일로부터 읽어 들인다 .  파일에  “ - ”   가 사용되면 표준 입력을 통해서 받아들인다 . -s length :  패킷들로부터 추출하는 샘플을  default  값인 68 Byte 외의 값으로 설정할 때 사용한다 . (Sun OS 의  NIT  에서는 최소가  98 Byte 이다 .) 68 Byte 는  IP, ICMP, TCP, UDP  등에 적절한 값이지만  Name Server  나  NFS  패킷들의 경우에는 프로토콜의 정보들을  Truncation  할 우려가 있다 . 이 옵션을 수정할 때는 신중해야만 한다 .  이유는 샘플 사이즈를 크게 잡으면 곧 패킷 하나하나를 처리하는데 시간이 더 걸릴 뿐만 아니라 패킷 버퍼의 사이즈도 자연히 작아지게 되어 손실되는 패킷들이 발생할 수 있기 때문이다 .  따라서 가급적 캡쳐하고자 하는 프로토콜의 헤더 사이즈에 가깝게 잡아주어야 한다 . -S : TCP sequence  번호를 상대적인 번호가 아닌 절대적인 번호로 출력한다 . -t :  출력되는 각각의 라인에 시간을 출력하지 않는다 . -tt :  출력되는 각각의 라인에 형식이 없는 시간들을 출력한다 . -v :  좀 더 많은 정보들을 출력한다 . -vv : -v  보다 좀 더 많은 정보들을 출력한다 . -vvv : 16  진수 값 형태로 정보를 보여준다 .  보통  – X  옵션과 사용된다 . -w :  캡쳐한 패킷들을 분석해서 출력하는 대신에 그대로 파일에 저장한다 . -x :  각각의 패킷을 헥사코드로 출력한다 . -X :  헥사코드와  ascii  형태 모두 출력해준다 .  보통  – x  옵션과 같이 사용된다 . Tcpdump  옵션 및 사용법
(2)  조건식 (expression) 옵션의 제일 마지막인 조건식은 어떤 패킷들을 출력할 지를 선택하는 데 쓰인다 .  조건식이 주어지지 않는다면 모든 패킷들이 대상이 된다 .  조건식들은 하나 또는 여러 개의  primitive 들로 구성되어 있고  primitive 들은 다시 하나 또는 여러 개의  qualifier 들 다음에 오는 하나의 값으로 이루어진다 . *qualifier - type :  주어진 값의 종류가 무엇인지를 나타낸다 .  가능한  type 들은  'host', 'net', 'port' 가 있다 . type 이 없는 값들은  type 을  host  라 가정한다 . - dir : id 로 부터의 어떤 특정한 전송 방향을 나타낸다 .  가능한 방향은  'src', 'dst', 'src or dst', 'src and dst' 이다 .  만약 방향이 정해지지 않았다면 , src or dst  라 가정한다 .  &quot;For `null' link layers (i.e. point to point protocols such as slip) the inb ound and out bound qualifiers can be used to specify a desired direction.&quot; -  proto :  매칭을 특정 프로토콜에 한해서 수행한다 .  가능한 프로토콜들은  ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp, udp 이다 .  만약 프로토콜이 명시되지 않았다면 ,  해당하는 값의  type 에 관련된 모든 프로토콜들이 그 대상이 된다 . *  위의 패턴을 따르지 않는  primitive : gateway, broadcast, less, greater,  산술식이 있으며  참고로 더 정교한 조건식을 사용하려면  'and(&&)','or(||)','not(!)'  을 사용할 수 있다 . Tcpdump  옵션 및 사용법 (3)  사용 가능한  Primitive  들 - dst host HOST  =>  Packet  의  IP destination  항목이  HOST  일 때  “ 참 ” - src host HOST  =>  Packet  의  IP source  항목이  HOST  일 때  “ 참 ” - host HOST  =>  IP source, IP destination  항목 중 어느 하나라도  HOST  이면 참이다 . - ether dst ehost  =>  ethernet destination  주소가  ehost  일 때  “ 참 ” - ether src ehost  =>  ethernet source  주소가  ehost  일 때  “ 참 ” - ether host ehost  =>  ethernet source, destination  항목들 중 어느 하나라도  ehost  이면  “ 참 ” - gateway host  =>  패킷이  host  를 게이트웨이로 사용하면  “ 참 ”   ->  이 말의 의미는  ethernet source  나  destination  항목은  host  이지만 , IP source  와  destination  은  host  가 아닐 때를 말한다 . - dst net NET  =>  패킷의  IP destination  주소가  NET  의  network number  를 가지고 있을 때  “ 참 ” - src net NET  =>  패킷의  IP source  주소가  NET 의  network number  를 가지고 있을 때  “ 참 ” - net NET  =>  패킷의  IP source  주소 혹은  destination  주소가  NET  의  network number  을 가지고 있을 때  “ 참 ” - ip proto protocol  =>  패킷이 지정된 종류의 프로토콜의  IP  패킷이면  “ 참 ”   protocol  은  icmp, igrp, udp, nd, tcp  중의 하나 혹은 몇 개가 될 수 있다 . 여기서 주의할 점은  tcp, udp, icmp  들은  ‘ ’   로  escape  되어야 한다 . - ether broadcast  =>  패킷이  ethernet broadcast  패킷이라면  “ 참 ” , ether  생략가능 - ip broadcast  =>  패킷이  IP multicast  패킷이면  “ 참 ” - ether multicast  =>  패킷이  IP multicast  패킷이라면  “ 참 ”
5. tcpdump  로 패스워드 알아내기  (Tip) (1)  개요 - Telnet  를 이용하여 서버에 접속을 하면 패킷 전송시에 암호화하지 않기 때문에 쉽게 내용을 볼 수 있다 . Tcpdump  를 이용하여 패스워드를 알아낼 수 있다 . (2)  사용 예 1)  실행명령 [root@www root]# tcpdump port telnet  – l  – vvv  – x  – X >dumpdata & tail  – f dumpdata 2)  패킷분석  :  패킷의 양이 많으므로 세밀하게 관찰해야 함 . ( 먼저 연결된 포트를 확인한다 .) 20:38:22.395281 xxx.com.telnet > 210.xxx.xxx.100.35383: P [tcp sum ok] 175:182(7) ack 81 win 5792 <nop,nop,timestamp 80867670  35878949> (DF) [tos 0x10]  (ttl 64, id 59193, len 59) 0x0000  4510 003b e739 4000 4006 ca41 cbf7 28fc  E..;.9@.@..A..(. 0x0010  d27b c1c2 0017 8a37 2992 16d8 2041 b972  .{.....7)....A.r 0x0020  8018 16a0 5fec 0000 0101 080a 04d1 f156  ...._..........V 0x0030  0223 7825 6c6f 6769 6e3a 20  .#x% login :. =>  서버  (xxx.com)  에서 클라이언트  (210.xxx.xxx.100)  에게  ‘ login ’   이라는 것을 보여줌을 알 수 있다 .  또한 연결된 클라이언트의 포트번호가  35383  임을 알 수 있다 . 이 포트 번호를 확인해야 패킷을 찾아갈 수 있다 . -----  중략  ----- 20:38:23.979306 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 81:82(1) ack 182 win 5840 <nop,nop,timestamp 35879107  80867670> (DF) [tos 0x10]  (ttl 56, id 49475, len 53) 0x0000  4510 0035 c143 4000 3806 f83d d27b c1c2 E..5.C@.8..=.{.. 0x0010  cbf7 28fc 8a37 0017 2041 b972 2992 16df ..(..7...A.r)... 0x0020  8018 16d0 5130 0000 0101 080a 0223 78c3 ....Q0.......#x. 0x0030  04d1 f156 70  ...V p =>  클라이언트에서 서버로 전송하는 부분만을 확인하면 된다 . P  다음에 존재하는  81:82  와  ack  다음에  182  라는 번호를 꼭 확인한다 .  다음 패킷번호는  82:83  이 되고 , ack 183  번이 되므로  ack 183  이라는 부분을 찾아가면 된다 .  여기서 클라이언트에서 서버로 전송한 글자는 맨 마지막에 표시된다 .  즉  ‘ P ’   이다 .  Tcpdump  옵션 및 사용법
-----  중략  ----- 20:38:24.162490 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 82:83(1) ack 183 win 5840 <nop,nop,timestamp 35879126  80868481> (DF) [tos 0x10]  (ttl 56, id 49477, len 53) 0x0000  4510 0035 c145 4000 3806 f83b d27b c1c2 E..5.E@.8..;.{.. 0x0010  cbf7 28fc 8a37 0017 2041 b973 2992 16e0 ..(..7...A.s)... 0x0020  8018 16d0 4ef0 0000 0101 080a 0223 78d6 ....N........#x. 0x0030  04d1 f481 6f  .... o -----  중략  ----- 20:38:24.322785 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 83:84(1) ack 184 win 5840 <nop,nop,timestamp 35879142  80868575> (DF) [tos 0x10]  (ttl 56, id 49479, len 53) 0x0000  4510 0035 c147 4000 3806 f839 d27b c1c2 E..5.G@.8..9.{.. 0x0010  cbf7 28fc 8a37 0017 2041 b974 2992 16e1 ..(..7...A.t)... 0x0020  8018 16d0 4a80 0000 0101 080a 0223 78e6 ....J........#x. 0x0030  04d1 f4df 73  .... s -----  중략  ----- 20:38:24.445142 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 84:85(1) ack 185 win 5840 <nop,nop,timestamp 35879154  80868657> (DF) [tos 0x10]  (ttl 56, id 49481, len 53) 0x0000  4510 0035 c149 4000 3806 f837 d27b c1c2 E..5.I@.8..7.{.. 0x0010  cbf7 28fc 8a37 0017 2041 b975 2992 16e2 ..(..7...A.u)... 0x0020  8018 16d0 5820 0000 0101 080a 0223 78f2 ....X........#x. 0x0030  04d1 f531 65  ...1 e -----  중략  -----  20:38:24.532360 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 85:86(1) ack 186 win 5840 <nop,nop,timestamp 35879163  80868720> (DF) [tos 0x10]  (ttl 56, id 49483, len 53) 0x0000  4510 0035 c14b 4000 3806 f835 d27b c1c2 E..5.K@.8..5.{.. 0x0010  cbf7 28fc 8a37 0017 2041 b976 2992 16e3 ..(..7...A.v)... 0x0020  8018 16d0 53d6 0000 0101 080a 0223 78fb ....S........#x. 0x0030  04d1 f570 69  ...p i -----  중략  ----- 20:38:24.624350 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 86:87(1) ack 187 win 5840 <nop,nop,timestamp 35879172  80868764> (DF) [tos 0x10]  (ttl 56, id 49485, len 53) 0x0000  4510 0035 c14d 4000 3806 f833 d27b c1c2 E..5.M@.8..3.{.. 0x0010  cbf7 28fc 8a37 0017 2041 b977 2992 16e4 ..(..7...A.w)... 0x0020  8018 16d0 4e9f 0000 0101 080a 0223 7904 ....N........#y. 0x0030  04d1 f59c 6e  .... n -----  중략  ----- => posein 이라는 글자를 알 수 있다 .  즉 사용자  ID 가   posein  이다 . Tcpdump  옵션 및 사용법
-----  중략  ----- 20:38:24.932380 xxx.com.telnet > 210.xxx.xxx.100.35383: P [tcp sum ok] 190:200(10) ack 89 win 5792 <nop,nop,timestamp 80868969  35879203> (DF) [tos 0x10]  (ttl 64, id 59201, len 62) 0x0000  4510 003e e741 4000 4006 ca36 cbf7 28fc E..>.A@.@..6..(. 0x0010  d27b c1c2 0017 8a37 2992 16e7 2041 b97a .{.....7)....A.z 0x0020  8018 16a0 d40b 0000 0101 080a 04d1 f669 ...............i 0x0030  0223 7923 5061 7373 776f 7264 3a20  .#y# Password :. =>  서버에서 클라이언트에게  Password  라는 글을 보내어 출력시킨다 . -----  중략  ----- 20:38:25.300524 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 89:90(1) ack 200 win 5840 <nop,nop,timestamp 35879239  80868969> (DF) [tos 0x10]  (ttl 56, id 49490, len 53) 0x0000  4510 0035 c152 4000 3806 f82e d27b c1c2 E..5.R@.8....{.. 0x0010  cbf7 28fc 8a37 0017 2041 b97a 2992 16f1 ..(..7...A.z)... 0x0020  8018 16d0 557f 0000 0101 080a 0223 7947 ....U........#yG 0x0030  04d1 f669 66  ...i p -----  중략  ----- 20:38:25.454778 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 90:91(1) ack 200 win 5840 <nop,nop,timestamp 35879255  80869177> (DF) [tos 0x10]  (ttl 56, id 49491, len 53) 0x0000  4510 0035 c153 4000 3806 f82d d27b c1c2 E..5.S@.8..-.{.. 0x0010  cbf7 28fc 8a37 0017 2041 b97b 2992 16f1 ..(..7...A.{)... 0x0020  8018 16d0 489e 0000 0101 080a 0223 7957 ....H........#yW 0x0030  04d1 f739 72  ...9 a -----  중략  ----- 20:38:25.659340 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 91:92(1) ack 200 win 5840 <nop,nop,timestamp 35879275  80869236> (DF) [tos 0x10]  (ttl 56, id 49492, len 53) 0x0000  4510 0035 c154 4000 3806 f82c d27b c1c2 E..5.T@.8..,.{.. 0x0010  cbf7 28fc 8a37 0017 2041 b97c 2992 16f1 ..(..7...A.|)... 0x0020  8018 16d0 554e 0000 0101 080a 0223 796b ....UN.......#yk 0x0030  04d1 f774 65  ...t s -----  중략  ----- 20:38:25.777475 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 92:93(1) ack 200 win 5840 <nop,nop,timestamp 35879287  80869341> (DF) [tos 0x10]  (ttl 56, id 49493, len 53) 0x0000  4510 0035 c155 4000 3806 f82b d27b c1c2 E..5.U@.8..+.{.. 0x0010  cbf7 28fc 8a37 0017 2041 b97d 2992 16f1 ..(..7...A.})... 0x0020  8018 16d0 54d8 0000 0101 080a 0223 7977 ....T........#yw 0x0030  04d1 f7dd 65  .... s Tcpdump  옵션 및 사용법
-----  중략  ----- 20:38:26.049208 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 93:94(1) ack 200 win 5840 <nop,nop,timestamp 35879314  80869402> (DF) [tos 0x10]  (ttl 56, id 49494, len 53) 0x0000  4510 0035 c156 4000 3806 f82a d27b c1c2 E..5.V@.8..*.{.. 0x0010  cbf7 28fc 8a37 0017 2041 b97e 2992 16f1 ..(..7...A.~)... 0x0020  8018 16d0 887f 0000 0101 080a 0223 7992 .............#y. 0x0030  04d1 f81a 31  .... w -----  중략  ----- 20:38:26.243634 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 94:95(1) ack 200 win 5840 <nop,nop,timestamp 35879334  80869541> (DF) [tos 0x10]  (ttl 56, id 49495, len 53) 0x0000  4510 0035 c157 4000 3806 f829 d27b c1c2 E..5.W@.8..).{.. 0x0010  cbf7 28fc 8a37 0017 2041 b97f 2992 16f1 ..(..7...A..)... 0x0020  8018 16d0 86df 0000 0101 080a 0223 79a6 .............#y. 0x0030  04d1 f8a5 32  .... o -----  중략  ----- 20:38:26.442302 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 95:96(1) ack 200 win 5840 <nop,nop,timestamp 35879353  80869640> (DF) [tos 0x10]  (ttl 56, id 49496, len 53) 0x0000  4510 0035 c158 4000 3806 f828 d27b c1c2 E..5.X@.8..(.{.. 0x0010  cbf7 28fc 8a37 0017 2041 b980 2992 16f1 ..(..7...A..)... 0x0020  8018 16d0 8768 0000 0101 080a 0223 79b9 .....h.......#y. 0x0030  04d1 f908 31  .... r -----  중략  ----- 20:38:26.540930 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 96:97(1) ack 200 win 5840 <nop,nop,timestamp 35879363  80869742> (DF) [tos 0x10]  (ttl 56, id 49497, len 53) 0x0000  4510 0035 c159 4000 3806 f827 d27b c1c2 E..5.Y@.8..'.{.. 0x0010  cbf7 28fc 8a37 0017 2041 b981 2992 16f1 ..(..7...A..)... 0x0020  8018 16d0 80f7 0000 0101 080a 0223 79c3 .............#y. 0x0030  04d1 f96e 37  ...n d -----  중략  ----- =>  패스워드가  password 라는 것을 알 수 있다 . Tcpdump  옵션 및 사용법

More Related Content

What's hot

20150212 c++11 features used in crow
20150212 c++11 features used in crow20150212 c++11 features used in crow
20150212 c++11 features used in crow
Jaeseung Ha
 
2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영
2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영
2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영
Tae Young Lee
 
Linux programming study
Linux programming studyLinux programming study
Linux programming study
Yunseok Lee
 
[NDC2015] C++11 고급 기능 - Crow에 사용된 기법 중심으로
[NDC2015] C++11 고급 기능 - Crow에 사용된 기법 중심으로[NDC2015] C++11 고급 기능 - Crow에 사용된 기법 중심으로
[NDC2015] C++11 고급 기능 - Crow에 사용된 기법 중심으로
Jaeseung Ha
 
리눅스 소켓 프로그래밍 기초
리눅스 소켓 프로그래밍 기초리눅스 소켓 프로그래밍 기초
리눅스 소켓 프로그래밍 기초
Yu Yongwoo
 
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)
Tae Young Lee
 
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍
흥배 최
 
소켓 주소 구조체 다루기(윈도우 네트워크 프로그래밍)
소켓 주소 구조체 다루기(윈도우 네트워크 프로그래밍)소켓 주소 구조체 다루기(윈도우 네트워크 프로그래밍)
소켓 주소 구조체 다루기(윈도우 네트워크 프로그래밍)문익 장
 
프로그래밍 대회: C++11 이야기
프로그래밍 대회: C++11 이야기프로그래밍 대회: C++11 이야기
프로그래밍 대회: C++11 이야기
Jongwook Choi
 
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
Ki-Hwan Kim
 
Jnetpcap quickguide
Jnetpcap quickguideJnetpcap quickguide
Jnetpcap quickguideSukjin Yun
 
Jupyter notebok tensorboard 실행하기_20160706
Jupyter notebok tensorboard 실행하기_20160706Jupyter notebok tensorboard 실행하기_20160706
Jupyter notebok tensorboard 실행하기_20160706
Yong Joon Moon
 
파이선 실전공략-1
파이선 실전공략-1파이선 실전공략-1
파이선 실전공략-1
Nomota Hiongun KIM
 
문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의
Kwangyoun Jung
 
[Swift] Protocol (2/2)
[Swift] Protocol (2/2)[Swift] Protocol (2/2)
[Swift] Protocol (2/2)
Bill Kim
 
[2012 CodeEngn Conference 07] nesk - Defcon 20th : 본선 CTF 문제풀이
[2012 CodeEngn Conference 07] nesk - Defcon 20th : 본선 CTF 문제풀이[2012 CodeEngn Conference 07] nesk - Defcon 20th : 본선 CTF 문제풀이
[2012 CodeEngn Conference 07] nesk - Defcon 20th : 본선 CTF 문제풀이
GangSeok Lee
 
[2009 CodeEngn Conference 03] hkpco - DEFCON CTF 2009 Binary Leetness 100-500...
[2009 CodeEngn Conference 03] hkpco - DEFCON CTF 2009 Binary Leetness 100-500...[2009 CodeEngn Conference 03] hkpco - DEFCON CTF 2009 Binary Leetness 100-500...
[2009 CodeEngn Conference 03] hkpco - DEFCON CTF 2009 Binary Leetness 100-500...
GangSeok Lee
 
Javascript개발자의 눈으로 python 들여다보기
Javascript개발자의 눈으로 python 들여다보기Javascript개발자의 눈으로 python 들여다보기
Javascript개발자의 눈으로 python 들여다보기
지수 윤
 
What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )
What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )
What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )
Gunhee Lee
 
Android audio system(오디오 플링거 서비스 초기화)
Android audio system(오디오 플링거 서비스 초기화)Android audio system(오디오 플링거 서비스 초기화)
Android audio system(오디오 플링거 서비스 초기화)fefe7270
 

What's hot (20)

20150212 c++11 features used in crow
20150212 c++11 features used in crow20150212 c++11 features used in crow
20150212 c++11 features used in crow
 
2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영
2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영
2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영
 
Linux programming study
Linux programming studyLinux programming study
Linux programming study
 
[NDC2015] C++11 고급 기능 - Crow에 사용된 기법 중심으로
[NDC2015] C++11 고급 기능 - Crow에 사용된 기법 중심으로[NDC2015] C++11 고급 기능 - Crow에 사용된 기법 중심으로
[NDC2015] C++11 고급 기능 - Crow에 사용된 기법 중심으로
 
리눅스 소켓 프로그래밍 기초
리눅스 소켓 프로그래밍 기초리눅스 소켓 프로그래밍 기초
리눅스 소켓 프로그래밍 기초
 
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)
 
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍
[KGC 2012]Boost.asio를 이용한 네트웍 프로그래밍
 
소켓 주소 구조체 다루기(윈도우 네트워크 프로그래밍)
소켓 주소 구조체 다루기(윈도우 네트워크 프로그래밍)소켓 주소 구조체 다루기(윈도우 네트워크 프로그래밍)
소켓 주소 구조체 다루기(윈도우 네트워크 프로그래밍)
 
프로그래밍 대회: C++11 이야기
프로그래밍 대회: C++11 이야기프로그래밍 대회: C++11 이야기
프로그래밍 대회: C++11 이야기
 
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
 
Jnetpcap quickguide
Jnetpcap quickguideJnetpcap quickguide
Jnetpcap quickguide
 
Jupyter notebok tensorboard 실행하기_20160706
Jupyter notebok tensorboard 실행하기_20160706Jupyter notebok tensorboard 실행하기_20160706
Jupyter notebok tensorboard 실행하기_20160706
 
파이선 실전공략-1
파이선 실전공략-1파이선 실전공략-1
파이선 실전공략-1
 
문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의
 
[Swift] Protocol (2/2)
[Swift] Protocol (2/2)[Swift] Protocol (2/2)
[Swift] Protocol (2/2)
 
[2012 CodeEngn Conference 07] nesk - Defcon 20th : 본선 CTF 문제풀이
[2012 CodeEngn Conference 07] nesk - Defcon 20th : 본선 CTF 문제풀이[2012 CodeEngn Conference 07] nesk - Defcon 20th : 본선 CTF 문제풀이
[2012 CodeEngn Conference 07] nesk - Defcon 20th : 본선 CTF 문제풀이
 
[2009 CodeEngn Conference 03] hkpco - DEFCON CTF 2009 Binary Leetness 100-500...
[2009 CodeEngn Conference 03] hkpco - DEFCON CTF 2009 Binary Leetness 100-500...[2009 CodeEngn Conference 03] hkpco - DEFCON CTF 2009 Binary Leetness 100-500...
[2009 CodeEngn Conference 03] hkpco - DEFCON CTF 2009 Binary Leetness 100-500...
 
Javascript개발자의 눈으로 python 들여다보기
Javascript개발자의 눈으로 python 들여다보기Javascript개발자의 눈으로 python 들여다보기
Javascript개발자의 눈으로 python 들여다보기
 
What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )
What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )
What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )
 
Android audio system(오디오 플링거 서비스 초기화)
Android audio system(오디오 플링거 서비스 초기화)Android audio system(오디오 플링거 서비스 초기화)
Android audio system(오디오 플링거 서비스 초기화)
 

Similar to Tcpdump

Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명
진우 이
 
중급 소켓프로그래밍
중급 소켓프로그래밍중급 소켓프로그래밍
중급 소켓프로그래밍quxn6
 
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
S.O.P.T - Shout Our Passion Together
 
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Ryu with OpenFlow 1.3, Traffic Monitor
Ryu with OpenFlow 1.3, Traffic MonitorRyu with OpenFlow 1.3, Traffic Monitor
Ryu with OpenFlow 1.3, Traffic Monitor
jieun kim
 
[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?
용민 박
 
Character Encoding in python
Character Encoding in pythonCharacter Encoding in python
Character Encoding in python
daesung7kang
 
실무로 배우는 시스템 성능 최적화 10부. 네트워크 모니터링
실무로 배우는 시스템 성능 최적화   10부. 네트워크 모니터링실무로 배우는 시스템 성능 최적화   10부. 네트워크 모니터링
실무로 배우는 시스템 성능 최적화 10부. 네트워크 모니터링
Hyunsoo Jung
 
Netmanias L2,L3 Training (5) L3 SW Architecture
Netmanias L2,L3 Training (5) L3 SW ArchitectureNetmanias L2,L3 Training (5) L3 SW Architecture
Netmanias L2,L3 Training (5) L3 SW Architecture
Chris Changmo Yoo
 
파이썬+네트워크 20160210
파이썬+네트워크 20160210파이썬+네트워크 20160210
파이썬+네트워크 20160210
Yong Joon Moon
 
하이퍼레저 패브릭 데이터 구조
하이퍼레저 패브릭 데이터 구조하이퍼레저 패브릭 데이터 구조
하이퍼레저 패브릭 데이터 구조
Logpresso
 
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)주영 송
 
빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)SeongHyun Ahn
 
Netmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoSNetmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoS
Chris Changmo Yoo
 
세션1. block chain as a platform
세션1. block chain as a platform세션1. block chain as a platform
세션1. block chain as a platform
Jay JH Park
 
불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14 불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14
명신 김
 
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
Hyunjik Bae
 
Reproducible research(2)
Reproducible research(2)Reproducible research(2)
Reproducible research(2)
건웅 문
 

Similar to Tcpdump (20)

Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명
 
퀴즈요약
퀴즈요약퀴즈요약
퀴즈요약
 
중급 소켓프로그래밍
중급 소켓프로그래밍중급 소켓프로그래밍
중급 소켓프로그래밍
 
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
 
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
 
Ryu with OpenFlow 1.3, Traffic Monitor
Ryu with OpenFlow 1.3, Traffic MonitorRyu with OpenFlow 1.3, Traffic Monitor
Ryu with OpenFlow 1.3, Traffic Monitor
 
[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?
 
Character Encoding in python
Character Encoding in pythonCharacter Encoding in python
Character Encoding in python
 
실무로 배우는 시스템 성능 최적화 10부. 네트워크 모니터링
실무로 배우는 시스템 성능 최적화   10부. 네트워크 모니터링실무로 배우는 시스템 성능 최적화   10부. 네트워크 모니터링
실무로 배우는 시스템 성능 최적화 10부. 네트워크 모니터링
 
Netmanias L2,L3 Training (5) L3 SW Architecture
Netmanias L2,L3 Training (5) L3 SW ArchitectureNetmanias L2,L3 Training (5) L3 SW Architecture
Netmanias L2,L3 Training (5) L3 SW Architecture
 
파이썬+네트워크 20160210
파이썬+네트워크 20160210파이썬+네트워크 20160210
파이썬+네트워크 20160210
 
하이퍼레저 패브릭 데이터 구조
하이퍼레저 패브릭 데이터 구조하이퍼레저 패브릭 데이터 구조
하이퍼레저 패브릭 데이터 구조
 
technical report
technical reporttechnical report
technical report
 
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
 
빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)
 
Netmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoSNetmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoS
 
세션1. block chain as a platform
세션1. block chain as a platform세션1. block chain as a platform
세션1. block chain as a platform
 
불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14 불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14
 
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
 
Reproducible research(2)
Reproducible research(2)Reproducible research(2)
Reproducible research(2)
 

Tcpdump

  • 1. © ISS 2007.10 Tcpdump 기술 문서
  • 2. 1. tcpdump 란 ? tcpdump 는 Lawrence Berkley Nation Lab 의 Network Rearch Gruop 에서 만든 것으로 네트워크의 패킷 을 출력해주는 프로그램이다 . 주어진 조건식을 만족하는 네트워크 인터페이스를 거치는 패킷들의 헤더들을 출력해 주는 프로그램이다 . 주로 쓰임은 지정된 상대방 호스트로부터 들어오는 패킷을 체크 하는 데 있다 . Tcpdump 옵션 및 사용법 2. tcpdump 의 사용법 (1) 사용법 tcpdump [options] [host] (2) tcpdump 의 결과보기 [root@www root]# tcpdump 01:37:09.744959 203.xxx.xxx.10.4847 > linux.co.kr.ftp: S 2082495566:2082495566(0) win 16384 <mss 460,nop,nop,sackOK> (DF) => ( 결과설명 ) - 01:37:09.744959 : Timestamp 로 보통 ' 시간 . 특정한숫자값 ‘ 형태로 부여된다 . - 203.xxx.xxx.10.4847 : Source_address.source_port 로 소스의 IP 주소와 Port 번호를 나타낸다 . * Traffic direction 으로 방향을 나타낸다 . - linux.co.kr.ftp : destination_address.destination_port 로 도착지 IP 주소와 Port 번호를 나타낸다 . - S : TCP flag 로 특정한 표시문자를 일컫는다 . - 2082495566:2082495566(0) : sequence number 이다 . - win 16384 : window size 이다 . - <mss 460,nop,nop,sackOK> : various options 이다 . - (DF) : Don't fragment 3. tcpdump 플래그 (flags) SYN (S) = Syn 패킷 , 접속요청을 할 때 보내는 패킷을 말한다 . TCP 접속 시에 가장먼저 보내는 패킷이다 . ACK (ask) = ACK 패킷 , 상대방으로부터 패킷을 받은 뒤에 알려주는 패킷을 말한다 . 다른 플래그와 같이 출력되는 경우도 있다 . FIN (F) = 접속종료를 위한 플래그로 이 패킷을 보내는 곳이 현재 접속하고 있는 곳과 접속을 끊고자 할 때 사용한다 . RESET (R) = 이 패킷을 보내는 곳이 현재 접속하고 있는 곳과 즉시 연결을 끊고자 할 때 사용한다 . PUSH (P) = 데이터를 즉시 목적지로 보내라는 의미이다 . 텔넷과 같이 상호작용이 중요한 프로그램의 경우 빠른 응답이 중요하다 . 이때 사용하는 플래그이다 . UGENT (URG) = 긴급한 데이터는 다른 데이터에 비해 우선순위가 높아야 한다 . 예를 들어 ftp 로 자료를 받고 있는 도중 [CTRL] + [C] 를 받으면 즉시 자료받기를 중단해야 하는 것처럼 이 때 사용하는 플래그이다 . Placeholder (.) = 패킷이 SYN, FINISH, RESET, PUSH 등의 플래그가 없는 경우 이 플래그가 세팅된다 . 이 플래그는 ACK 플래그와 함께 사용되는 경우도 있다 .
  • 3. 4. tcpdump 의 옵션 (1) 옵션 -h : 버전 및 기본 사용법을 보여준다 . -a : Network & Broadcast 주소들을 이름들로 바꾼다 . -c Number : 제시된 수의 패킷을 받은 후 종료한다 . -d : Compile 된 packet-matching code 를 사람이 읽을 수 있도록 바꾸어 표준 출력으로 출력하고 , 종료한다 . -dd : packet-metching code 를 C program 의 일부로 출력한다 . -ddd : packet-matching code 를 숫자로 출력한다 . -e : 출력되는 각각의 행에 대해서 link-level 헤더를 출력한다 . -f : 외부의 internet address 를 가급적 심볼이 아닌 숫자로 출력한다 . (Sun 의 yp Server 와의 사용은 가급적 피함 ) -F file : filter 표현의 입력으로 파일을 받아들인다 . 커맨드라인에 주어진 추가의 표현들은 모두 무시된다 . -i device : 어느 인터페이스를 경유하는 패킷들을 잡을지 지정한다 . 지정되지 않으면 시스템의 인터페이스 리스트를 검색하여 가장 낮은 번호를 가진 인터페이스를 선택한다 . -I : 표준 출력으로 나가는 데이터들을 line buffering 한다 . 다른 프로그램에서 tcpdump 로 부터 데이터를 받고자 할 때 유용한다 . -> 보통 ‘ tcpdump – I | tee dat ’ 나 ‘ tcpdump – I <dat & tail – f dat ’ 명령으로 연계해서 사용하면 편리하다 . -n : 모든 주소들을 번역하지 않는다 . (port, host, address 등등 ) -N : 호스트 이름을 출력할 때 , 도메인을 찍지 않는다 . -O : packter-matching code optimizer 를 실행하지 않는다 . 이 옵션은 optimizer 에 있는 버그를 찾을 때나 쓰인다 . -p : 인터페이스를 promiscuous mode 로 두지 않는다 . -q : 프로토콜에 대한 정보를 덜 출력한다 . 따라서 출력되는 라인이 좀 더 짧아진다 . -r file : 패킷들을 ‘ -w ’ 옵션으로 만들어진 파일로부터 읽어 들인다 . 파일에 “ - ” 가 사용되면 표준 입력을 통해서 받아들인다 . -s length : 패킷들로부터 추출하는 샘플을 default 값인 68 Byte 외의 값으로 설정할 때 사용한다 . (Sun OS 의 NIT 에서는 최소가 98 Byte 이다 .) 68 Byte 는 IP, ICMP, TCP, UDP 등에 적절한 값이지만 Name Server 나 NFS 패킷들의 경우에는 프로토콜의 정보들을 Truncation 할 우려가 있다 . 이 옵션을 수정할 때는 신중해야만 한다 . 이유는 샘플 사이즈를 크게 잡으면 곧 패킷 하나하나를 처리하는데 시간이 더 걸릴 뿐만 아니라 패킷 버퍼의 사이즈도 자연히 작아지게 되어 손실되는 패킷들이 발생할 수 있기 때문이다 . 따라서 가급적 캡쳐하고자 하는 프로토콜의 헤더 사이즈에 가깝게 잡아주어야 한다 . -S : TCP sequence 번호를 상대적인 번호가 아닌 절대적인 번호로 출력한다 . -t : 출력되는 각각의 라인에 시간을 출력하지 않는다 . -tt : 출력되는 각각의 라인에 형식이 없는 시간들을 출력한다 . -v : 좀 더 많은 정보들을 출력한다 . -vv : -v 보다 좀 더 많은 정보들을 출력한다 . -vvv : 16 진수 값 형태로 정보를 보여준다 . 보통 – X 옵션과 사용된다 . -w : 캡쳐한 패킷들을 분석해서 출력하는 대신에 그대로 파일에 저장한다 . -x : 각각의 패킷을 헥사코드로 출력한다 . -X : 헥사코드와 ascii 형태 모두 출력해준다 . 보통 – x 옵션과 같이 사용된다 . Tcpdump 옵션 및 사용법
  • 4. (2) 조건식 (expression) 옵션의 제일 마지막인 조건식은 어떤 패킷들을 출력할 지를 선택하는 데 쓰인다 . 조건식이 주어지지 않는다면 모든 패킷들이 대상이 된다 . 조건식들은 하나 또는 여러 개의 primitive 들로 구성되어 있고 primitive 들은 다시 하나 또는 여러 개의 qualifier 들 다음에 오는 하나의 값으로 이루어진다 . *qualifier - type : 주어진 값의 종류가 무엇인지를 나타낸다 . 가능한 type 들은 'host', 'net', 'port' 가 있다 . type 이 없는 값들은 type 을 host 라 가정한다 . - dir : id 로 부터의 어떤 특정한 전송 방향을 나타낸다 . 가능한 방향은 'src', 'dst', 'src or dst', 'src and dst' 이다 . 만약 방향이 정해지지 않았다면 , src or dst 라 가정한다 . &quot;For `null' link layers (i.e. point to point protocols such as slip) the inb ound and out bound qualifiers can be used to specify a desired direction.&quot; - proto : 매칭을 특정 프로토콜에 한해서 수행한다 . 가능한 프로토콜들은 ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp, udp 이다 . 만약 프로토콜이 명시되지 않았다면 , 해당하는 값의 type 에 관련된 모든 프로토콜들이 그 대상이 된다 . * 위의 패턴을 따르지 않는 primitive : gateway, broadcast, less, greater, 산술식이 있으며 참고로 더 정교한 조건식을 사용하려면 'and(&&)','or(||)','not(!)' 을 사용할 수 있다 . Tcpdump 옵션 및 사용법 (3) 사용 가능한 Primitive 들 - dst host HOST => Packet 의 IP destination 항목이 HOST 일 때 “ 참 ” - src host HOST => Packet 의 IP source 항목이 HOST 일 때 “ 참 ” - host HOST => IP source, IP destination 항목 중 어느 하나라도 HOST 이면 참이다 . - ether dst ehost => ethernet destination 주소가 ehost 일 때 “ 참 ” - ether src ehost => ethernet source 주소가 ehost 일 때 “ 참 ” - ether host ehost => ethernet source, destination 항목들 중 어느 하나라도 ehost 이면 “ 참 ” - gateway host => 패킷이 host 를 게이트웨이로 사용하면 “ 참 ” -> 이 말의 의미는 ethernet source 나 destination 항목은 host 이지만 , IP source 와 destination 은 host 가 아닐 때를 말한다 . - dst net NET => 패킷의 IP destination 주소가 NET 의 network number 를 가지고 있을 때 “ 참 ” - src net NET => 패킷의 IP source 주소가 NET 의 network number 를 가지고 있을 때 “ 참 ” - net NET => 패킷의 IP source 주소 혹은 destination 주소가 NET 의 network number 을 가지고 있을 때 “ 참 ” - ip proto protocol => 패킷이 지정된 종류의 프로토콜의 IP 패킷이면 “ 참 ” protocol 은 icmp, igrp, udp, nd, tcp 중의 하나 혹은 몇 개가 될 수 있다 . 여기서 주의할 점은 tcp, udp, icmp 들은 ‘ ’ 로 escape 되어야 한다 . - ether broadcast => 패킷이 ethernet broadcast 패킷이라면 “ 참 ” , ether 생략가능 - ip broadcast => 패킷이 IP multicast 패킷이면 “ 참 ” - ether multicast => 패킷이 IP multicast 패킷이라면 “ 참 ”
  • 5. 5. tcpdump 로 패스워드 알아내기 (Tip) (1) 개요 - Telnet 를 이용하여 서버에 접속을 하면 패킷 전송시에 암호화하지 않기 때문에 쉽게 내용을 볼 수 있다 . Tcpdump 를 이용하여 패스워드를 알아낼 수 있다 . (2) 사용 예 1) 실행명령 [root@www root]# tcpdump port telnet – l – vvv – x – X >dumpdata & tail – f dumpdata 2) 패킷분석 : 패킷의 양이 많으므로 세밀하게 관찰해야 함 . ( 먼저 연결된 포트를 확인한다 .) 20:38:22.395281 xxx.com.telnet > 210.xxx.xxx.100.35383: P [tcp sum ok] 175:182(7) ack 81 win 5792 <nop,nop,timestamp 80867670 35878949> (DF) [tos 0x10] (ttl 64, id 59193, len 59) 0x0000 4510 003b e739 4000 4006 ca41 cbf7 28fc E..;.9@.@..A..(. 0x0010 d27b c1c2 0017 8a37 2992 16d8 2041 b972 .{.....7)....A.r 0x0020 8018 16a0 5fec 0000 0101 080a 04d1 f156 ...._..........V 0x0030 0223 7825 6c6f 6769 6e3a 20 .#x% login :. => 서버 (xxx.com) 에서 클라이언트 (210.xxx.xxx.100) 에게 ‘ login ’ 이라는 것을 보여줌을 알 수 있다 . 또한 연결된 클라이언트의 포트번호가 35383 임을 알 수 있다 . 이 포트 번호를 확인해야 패킷을 찾아갈 수 있다 . ----- 중략 ----- 20:38:23.979306 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 81:82(1) ack 182 win 5840 <nop,nop,timestamp 35879107 80867670> (DF) [tos 0x10] (ttl 56, id 49475, len 53) 0x0000 4510 0035 c143 4000 3806 f83d d27b c1c2 E..5.C@.8..=.{.. 0x0010 cbf7 28fc 8a37 0017 2041 b972 2992 16df ..(..7...A.r)... 0x0020 8018 16d0 5130 0000 0101 080a 0223 78c3 ....Q0.......#x. 0x0030 04d1 f156 70 ...V p => 클라이언트에서 서버로 전송하는 부분만을 확인하면 된다 . P 다음에 존재하는 81:82 와 ack 다음에 182 라는 번호를 꼭 확인한다 . 다음 패킷번호는 82:83 이 되고 , ack 183 번이 되므로 ack 183 이라는 부분을 찾아가면 된다 . 여기서 클라이언트에서 서버로 전송한 글자는 맨 마지막에 표시된다 . 즉 ‘ P ’ 이다 . Tcpdump 옵션 및 사용법
  • 6. ----- 중략 ----- 20:38:24.162490 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 82:83(1) ack 183 win 5840 <nop,nop,timestamp 35879126 80868481> (DF) [tos 0x10] (ttl 56, id 49477, len 53) 0x0000 4510 0035 c145 4000 3806 f83b d27b c1c2 E..5.E@.8..;.{.. 0x0010 cbf7 28fc 8a37 0017 2041 b973 2992 16e0 ..(..7...A.s)... 0x0020 8018 16d0 4ef0 0000 0101 080a 0223 78d6 ....N........#x. 0x0030 04d1 f481 6f .... o ----- 중략 ----- 20:38:24.322785 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 83:84(1) ack 184 win 5840 <nop,nop,timestamp 35879142 80868575> (DF) [tos 0x10] (ttl 56, id 49479, len 53) 0x0000 4510 0035 c147 4000 3806 f839 d27b c1c2 E..5.G@.8..9.{.. 0x0010 cbf7 28fc 8a37 0017 2041 b974 2992 16e1 ..(..7...A.t)... 0x0020 8018 16d0 4a80 0000 0101 080a 0223 78e6 ....J........#x. 0x0030 04d1 f4df 73 .... s ----- 중략 ----- 20:38:24.445142 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 84:85(1) ack 185 win 5840 <nop,nop,timestamp 35879154 80868657> (DF) [tos 0x10] (ttl 56, id 49481, len 53) 0x0000 4510 0035 c149 4000 3806 f837 d27b c1c2 E..5.I@.8..7.{.. 0x0010 cbf7 28fc 8a37 0017 2041 b975 2992 16e2 ..(..7...A.u)... 0x0020 8018 16d0 5820 0000 0101 080a 0223 78f2 ....X........#x. 0x0030 04d1 f531 65 ...1 e ----- 중략 ----- 20:38:24.532360 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 85:86(1) ack 186 win 5840 <nop,nop,timestamp 35879163 80868720> (DF) [tos 0x10] (ttl 56, id 49483, len 53) 0x0000 4510 0035 c14b 4000 3806 f835 d27b c1c2 E..5.K@.8..5.{.. 0x0010 cbf7 28fc 8a37 0017 2041 b976 2992 16e3 ..(..7...A.v)... 0x0020 8018 16d0 53d6 0000 0101 080a 0223 78fb ....S........#x. 0x0030 04d1 f570 69 ...p i ----- 중략 ----- 20:38:24.624350 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 86:87(1) ack 187 win 5840 <nop,nop,timestamp 35879172 80868764> (DF) [tos 0x10] (ttl 56, id 49485, len 53) 0x0000 4510 0035 c14d 4000 3806 f833 d27b c1c2 E..5.M@.8..3.{.. 0x0010 cbf7 28fc 8a37 0017 2041 b977 2992 16e4 ..(..7...A.w)... 0x0020 8018 16d0 4e9f 0000 0101 080a 0223 7904 ....N........#y. 0x0030 04d1 f59c 6e .... n ----- 중략 ----- => posein 이라는 글자를 알 수 있다 . 즉 사용자 ID 가 posein 이다 . Tcpdump 옵션 및 사용법
  • 7. ----- 중략 ----- 20:38:24.932380 xxx.com.telnet > 210.xxx.xxx.100.35383: P [tcp sum ok] 190:200(10) ack 89 win 5792 <nop,nop,timestamp 80868969 35879203> (DF) [tos 0x10] (ttl 64, id 59201, len 62) 0x0000 4510 003e e741 4000 4006 ca36 cbf7 28fc E..>.A@.@..6..(. 0x0010 d27b c1c2 0017 8a37 2992 16e7 2041 b97a .{.....7)....A.z 0x0020 8018 16a0 d40b 0000 0101 080a 04d1 f669 ...............i 0x0030 0223 7923 5061 7373 776f 7264 3a20 .#y# Password :. => 서버에서 클라이언트에게 Password 라는 글을 보내어 출력시킨다 . ----- 중략 ----- 20:38:25.300524 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 89:90(1) ack 200 win 5840 <nop,nop,timestamp 35879239 80868969> (DF) [tos 0x10] (ttl 56, id 49490, len 53) 0x0000 4510 0035 c152 4000 3806 f82e d27b c1c2 E..5.R@.8....{.. 0x0010 cbf7 28fc 8a37 0017 2041 b97a 2992 16f1 ..(..7...A.z)... 0x0020 8018 16d0 557f 0000 0101 080a 0223 7947 ....U........#yG 0x0030 04d1 f669 66 ...i p ----- 중략 ----- 20:38:25.454778 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 90:91(1) ack 200 win 5840 <nop,nop,timestamp 35879255 80869177> (DF) [tos 0x10] (ttl 56, id 49491, len 53) 0x0000 4510 0035 c153 4000 3806 f82d d27b c1c2 E..5.S@.8..-.{.. 0x0010 cbf7 28fc 8a37 0017 2041 b97b 2992 16f1 ..(..7...A.{)... 0x0020 8018 16d0 489e 0000 0101 080a 0223 7957 ....H........#yW 0x0030 04d1 f739 72 ...9 a ----- 중략 ----- 20:38:25.659340 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 91:92(1) ack 200 win 5840 <nop,nop,timestamp 35879275 80869236> (DF) [tos 0x10] (ttl 56, id 49492, len 53) 0x0000 4510 0035 c154 4000 3806 f82c d27b c1c2 E..5.T@.8..,.{.. 0x0010 cbf7 28fc 8a37 0017 2041 b97c 2992 16f1 ..(..7...A.|)... 0x0020 8018 16d0 554e 0000 0101 080a 0223 796b ....UN.......#yk 0x0030 04d1 f774 65 ...t s ----- 중략 ----- 20:38:25.777475 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 92:93(1) ack 200 win 5840 <nop,nop,timestamp 35879287 80869341> (DF) [tos 0x10] (ttl 56, id 49493, len 53) 0x0000 4510 0035 c155 4000 3806 f82b d27b c1c2 E..5.U@.8..+.{.. 0x0010 cbf7 28fc 8a37 0017 2041 b97d 2992 16f1 ..(..7...A.})... 0x0020 8018 16d0 54d8 0000 0101 080a 0223 7977 ....T........#yw 0x0030 04d1 f7dd 65 .... s Tcpdump 옵션 및 사용법
  • 8. ----- 중략 ----- 20:38:26.049208 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 93:94(1) ack 200 win 5840 <nop,nop,timestamp 35879314 80869402> (DF) [tos 0x10] (ttl 56, id 49494, len 53) 0x0000 4510 0035 c156 4000 3806 f82a d27b c1c2 E..5.V@.8..*.{.. 0x0010 cbf7 28fc 8a37 0017 2041 b97e 2992 16f1 ..(..7...A.~)... 0x0020 8018 16d0 887f 0000 0101 080a 0223 7992 .............#y. 0x0030 04d1 f81a 31 .... w ----- 중략 ----- 20:38:26.243634 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 94:95(1) ack 200 win 5840 <nop,nop,timestamp 35879334 80869541> (DF) [tos 0x10] (ttl 56, id 49495, len 53) 0x0000 4510 0035 c157 4000 3806 f829 d27b c1c2 E..5.W@.8..).{.. 0x0010 cbf7 28fc 8a37 0017 2041 b97f 2992 16f1 ..(..7...A..)... 0x0020 8018 16d0 86df 0000 0101 080a 0223 79a6 .............#y. 0x0030 04d1 f8a5 32 .... o ----- 중략 ----- 20:38:26.442302 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 95:96(1) ack 200 win 5840 <nop,nop,timestamp 35879353 80869640> (DF) [tos 0x10] (ttl 56, id 49496, len 53) 0x0000 4510 0035 c158 4000 3806 f828 d27b c1c2 E..5.X@.8..(.{.. 0x0010 cbf7 28fc 8a37 0017 2041 b980 2992 16f1 ..(..7...A..)... 0x0020 8018 16d0 8768 0000 0101 080a 0223 79b9 .....h.......#y. 0x0030 04d1 f908 31 .... r ----- 중략 ----- 20:38:26.540930 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 96:97(1) ack 200 win 5840 <nop,nop,timestamp 35879363 80869742> (DF) [tos 0x10] (ttl 56, id 49497, len 53) 0x0000 4510 0035 c159 4000 3806 f827 d27b c1c2 E..5.Y@.8..'.{.. 0x0010 cbf7 28fc 8a37 0017 2041 b981 2992 16f1 ..(..7...A..)... 0x0020 8018 16d0 80f7 0000 0101 080a 0223 79c3 .............#y. 0x0030 04d1 f96e 37 ...n d ----- 중략 ----- => 패스워드가 password 라는 것을 알 수 있다 . Tcpdump 옵션 및 사용법

Editor's Notes

  1. Good afternoon ladies and gentlemen, Welcome to today ‘ s Webcast. Within the next 30 minutes you will get an overview about new and enhanced high availability solutions which will be available with Astaro Security Gateway Version 7