Eiji James Yoshidaの記録

パケット作りが趣味のセキュリティ技術者の記録(2006年9月6日執筆開始)。当ブログはGoogle AnalyticsとAmazonアソシエイトを利用しています。

tcpdumpやwiresharkでTCP制御フラグを指定してパケットを収集する方法

tcpdumpwiresharkTCP制御フラグを指定してパケットを収集する方法を忘れることが多いのでメモ。

SYNフラグが設定されたパケットの収集 "tcp[13] & 2 != 0"
SYNフラグが設定されていないパケットの収集 "tcp[13] & 2 == 0"
SYNフラグのみ設定されたパケットの収集 "tcp[13] & 255 == 2"
ACKフラグが設定されたパケットの収集 "tcp[13] & 16 != 0"
ACKフラグが設定されていないパケットの収集 "tcp[13] & 16 == 0"
ACKフラグのみ設定されたパケットの収集 "tcp[13] & 255 == 16"
ACKフラグとSYNフラグが設定されたパケットの収集 "tcp[13] & 18 == 18"
ACKフラグとSYNフラグのみ設定されたパケットの収集 "tcp[13] & 255 == 18"
ACKフラグかSYNフラグが設定されたパケットの収集 "tcp[13] & 18 != 0"

TCP制御フラグの指定は下記の表を参照。

  • C: CWR(Congestion Window Reduced)
  • E: ECE(ECN-Echo)
  • U: URG
  • A: ACK
  • P: PSH
  • R: RST
  • S: SYN
  • F: FIN
CEUAPRSF 10進数 該当する制御フラグ
00000001 1 F
00000010 2 S
00000011 3 SF
00000100 4 R
00000101 5 RF
00000110 6 RS
00000111 7 RSF
00001000 8 P
00001001 9 PF
00001010 10 PS
00001011 11 PSF
00001100 12 PR
00001101 13 PRF
00001110 14 PRS
00001111 15 PRSF
00010000 16 A
00010001 17 AF
00010010 18 AS
00010011 19 ASF
00010100 20 AR
00010101 21 ARF
00010110 22 ARS
00010111 23 ARSF
00011000 24 AP
00011001 25 APF
00011010 26 APS
00011011 27 APSF
00011100 28 APR
00011101 29 APRF
00011110 30 APRS
00011111 31 APRSF
00100000 32 U
00100001 33 UF
00100010 34 US
00100011 35 USF
00100100 36 UR
00100101 37 URF
00100110 38 URS
00100111 39 URSF
00101000 40 UP
00101001 41 UPF
00101010 42 UPS
00101011 43 UPSF
00101100 44 UPR
00101101 45 UPRF
00101110 46 UPRS
00101111 47 UPRSF
00110000 48 UA
00110001 49 UAF
00110010 50 UAS
00110011 51 UASF
00110100 52 UAR
00110101 53 UARF
00110110 54 UARS
00110111 55 UARSF
00111000 56 UAP
00111001 57 UAPF
00111010 58 UAPS
00111011 59 UAPSF
00111100 60 UAPR
00111101 61 UAPRF
00111110 62 UAPRS
00111111 63 UAPRSF
01000000 64 E
01000001 65 EF
01000010 66 ES
01000011 67 ESF
01000100 68 ER
01000101 69 ERF
01000110 70 ERS
01000111 71 ERSF
01001000 72 EP
01001001 73 EPF
01001010 74 EPS
01001011 75 EPSF
01001100 76 EPR
01001101 77 EPRF
01001110 78 EPRS
01001111 79 EPRSF
01010000 80 EA
01010001 81 EAF
01010010 82 EAS
01010011 83 EASF
01010100 84 EAR
01010101 85 EARF
01010110 86 EARS
01010111 87 EARSF
01011000 88 EAP
01011001 89 EAPF
01011010 90 EAPS
01011011 91 EAPSF
01011100 92 EAPR
01011101 93 EAPRF
01011110 94 EAPRS
01011111 95 EAPRSF
01100000 96 EU
01100001 97 EUF
01100010 98 EUS
01100011 99 EUSF
01100100 100 EUR
01100101 101 EURF
01100110 102 EURS
01100111 103 EURSF
01101000 104 EUP
01101001 105 EUPF
01101010 106 EUPS
01101011 107 EUPSF
01101100 108 EUPR
01101101 109 EUPRF
01101110 110 EUPRS
01101111 111 EUPRSF
01110000 112 EUA
01110001 113 EUAF
01110010 114 EUAS
01110011 115 EUASF
01110100 116 EUAR
01110101 117 EUARF
01110110 118 EUARS
01110111 119 EUARSF
01111000 120 EUAP
01111001 121 EUAPF
01111010 122 EUAPS
01111011 123 EUAPSF
01111100 124 EUAPR
01111101 125 EUAPRF
01111110 126 EUAPRS
01111111 127 EUAPRSF
10000000 128 C
10000001 129 CF
10000010 130 CS
10000011 131 CSF
10000100 132 CR
10000101 133 CRF
10000110 134 CRS
10000111 135 CRSF
10001000 136 CP
10001001 137 CPF
10001010 138 CPS
10001011 139 CPSF
10001100 140 CPR
10001101 141 CPRF
10001110 142 CPRS
10001111 143 CPRSF
10010000 144 CA
10010001 145 CAF
10010010 146 CAS
10010011 147 CASF
10010100 148 CAR
10010101 149 CARF
10010110 150 CARS
10010111 151 CARSF
10011000 152 CAP
10011001 153 CAPF
10011010 154 CAPS
10011011 155 CAPSF
10011100 156 CAPR
10011101 157 CAPRF
10011110 158 CAPRS
10011111 159 CAPRSF
10100000 160 CU
10100001 161 CUF
10100010 162 CUS
10100011 163 CUSF
10100100 164 CUR
10100101 165 CURF
10100110 166 CURS
10100111 167 CURSF
10101000 168 CUP
10101001 169 CUPF
10101010 170 CUPS
10101011 171 CUPSF
10101100 172 CUPR
10101101 173 CUPRF
10101110 174 CUPRS
10101111 175 CUPRSF
10110000 176 CUA
10110001 177 CUAF
10110010 178 CUAS
10110011 179 CUASF
10110100 180 CUAR
10110101 181 CUARF
10110110 182 CUARS
10110111 183 CUARSF
10111000 184 CUAP
10111001 185 CUAPF
10111010 186 CUAPS
10111011 187 CUAPSF
10111100 188 CUAPR
10111101 189 CUAPRF
10111110 190 CUAPRS
10111111 191 CUAPRSF
11000000 192 CE
11000001 193 CEF
11000010 194 CES
11000011 195 CESF
11000100 196 CER
11000101 197 CERF
11000110 198 CERS
11000111 199 CERSF
11001000 200 CEP
11001001 201 CEPF
11001010 202 CEPS
11001011 203 CEPSF
11001100 204 CEPR
11001101 205 CEPRF
11001110 206 CEPRS
11001111 207 CEPRSF
11010000 208 CEA
11010001 209 CEAF
11010010 210 CEAS
11010011 211 CEASF
11010100 212 CEAR
11010101 213 CEARF
11010110 214 CEARS
11010111 215 CEARSF
11011000 216 CEAP
11011001 217 CEAPF
11011010 218 CEAPS
11011011 219 CEAPSF
11011100 220 CEAPR
11011101 221 CEAPRF
11011110 222 CEAPRS
11011111 223 CEAPRSF
11100000 224 CEU
11100001 225 CEUF
11100010 226 CEUS
11100011 227 CEUSF
11100100 228 CEUR
11100101 229 CEURF
11100110 230 CEURS
11100111 231 CEURSF
11101000 232 CEUP
11101001 233 CEUPF
11101010 234 CEUPS
11101011 235 CEUPSF
11101100 236 CEUPR
11101101 237 CEUPRF
11101110 238 CEUPRS
11101111 239 CEUPRSF
11110000 240 CEUA
11110001 241 CEUAF
11110010 242 CEUAS
11110011 243 CEUASF
11110100 244 CEUAR
11110101 245 CEUARF
11110110 246 CEUARS
11110111 247 CEUARSF
11111000 248 CEUAP
11111001 249 CEUAPF
11111010 250 CEUAPS
11111011 251 CEUAPSF
11111100 252 CEUAPR
11111101 253 CEUAPRF
11111110 254 CEUAPRS
11111111 255 CEUAPRSF

例: tcpdumpでSYNフラグが設定されたパケットの収集
tcpdump "tcp[13] & 2 != 0"

追記(2008/06/26)

コメントでFINフラグかSYNフラグが設定されたパケットを収集する方法として"tcp[tcpflags] & (tcp-syn|tcp-fin) != 0"という書き方を教えてもらった。ありがとうございます!!!
tcpflagsとしては"tcp-fin, tcp-syn, tcp-rst, tcp-push, tcp-ack, tcp-urg"が使えるとのこと。
詳細は下記を参照。