Last active
July 1, 2021 14:49
-
-
Save shadowbq/9118822 to your computer and use it in GitHub Desktop.
## Generate TCP Flags Definition File
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1: ["FIN"] | |
2: ["SYN"] | |
3: ["SYN", "FIN"] | |
4: ["RST"] | |
5: ["RST", "FIN"] | |
6: ["RST", "SYN"] | |
7: ["RST", "SYN", "FIN"] | |
8: ["PUSH"] | |
9: ["PUSH", "FIN"] | |
10: ["PUSH", "SYN"] | |
11: ["PUSH", "SYN", "FIN"] | |
12: ["PUSH", "RST"] | |
13: ["PUSH", "RST", "FIN"] | |
14: ["PUSH", "RST", "SYN"] | |
15: ["PUSH", "RST", "SYN", "FIN"] | |
16: ["ACK"] | |
17: ["ACK", "FIN"] | |
18: ["ACK", "SYN"] | |
19: ["ACK", "SYN", "FIN"] | |
20: ["ACK", "RST"] | |
21: ["ACK", "RST", "FIN"] | |
22: ["ACK", "RST", "SYN"] | |
23: ["ACK", "RST", "SYN", "FIN"] | |
24: ["ACK", "PUSH"] | |
25: ["ACK", "PUSH", "FIN"] | |
26: ["ACK", "PUSH", "SYN"] | |
27: ["ACK", "PUSH", "SYN", "FIN"] | |
28: ["ACK", "PUSH", "RST"] | |
29: ["ACK", "PUSH", "RST", "FIN"] | |
30: ["ACK", "PUSH", "RST", "SYN"] | |
31: ["ACK", "PUSH", "RST", "SYN", "FIN"] | |
32: ["URG"] | |
33: ["URG", "FIN"] | |
34: ["URG", "SYN"] | |
35: ["URG", "SYN", "FIN"] | |
36: ["URG", "RST"] | |
37: ["URG", "RST", "FIN"] | |
38: ["URG", "RST", "SYN"] | |
39: ["URG", "RST", "SYN", "FIN"] | |
40: ["URG", "PUSH"] | |
41: ["URG", "PUSH", "FIN"] | |
42: ["URG", "PUSH", "SYN"] | |
43: ["URG", "PUSH", "SYN", "FIN"] | |
44: ["URG", "PUSH", "RST"] | |
45: ["URG", "PUSH", "RST", "FIN"] | |
46: ["URG", "PUSH", "RST", "SYN"] | |
47: ["URG", "PUSH", "RST", "SYN", "FIN"] | |
48: ["URG", "ACK"] | |
49: ["URG", "ACK", "FIN"] | |
50: ["URG", "ACK", "SYN"] | |
51: ["URG", "ACK", "SYN", "FIN"] | |
52: ["URG", "ACK", "RST"] | |
53: ["URG", "ACK", "RST", "FIN"] | |
54: ["URG", "ACK", "RST", "SYN"] | |
55: ["URG", "ACK", "RST", "SYN", "FIN"] | |
56: ["URG", "ACK", "PUSH"] | |
57: ["URG", "ACK", "PUSH", "FIN"] | |
58: ["URG", "ACK", "PUSH", "SYN"] | |
59: ["URG", "ACK", "PUSH", "SYN", "FIN"] | |
60: ["URG", "ACK", "PUSH", "RST"] | |
61: ["URG", "ACK", "PUSH", "RST", "FIN"] | |
62: ["URG", "ACK", "PUSH", "RST", "SYN"] | |
63: ["URG", "ACK", "PUSH", "RST", "SYN", "FIN"] | |
64: ["ECE"] | |
65: ["ECE", "FIN"] | |
66: ["ECE", "SYN"] | |
67: ["ECE", "SYN", "FIN"] | |
68: ["ECE", "RST"] | |
69: ["ECE", "RST", "FIN"] | |
70: ["ECE", "RST", "SYN"] | |
71: ["ECE", "RST", "SYN", "FIN"] | |
72: ["ECE", "PUSH"] | |
73: ["ECE", "PUSH", "FIN"] | |
74: ["ECE", "PUSH", "SYN"] | |
75: ["ECE", "PUSH", "SYN", "FIN"] | |
76: ["ECE", "PUSH", "RST"] | |
77: ["ECE", "PUSH", "RST", "FIN"] | |
78: ["ECE", "PUSH", "RST", "SYN"] | |
79: ["ECE", "PUSH", "RST", "SYN", "FIN"] | |
80: ["ECE", "ACK"] | |
81: ["ECE", "ACK", "FIN"] | |
82: ["ECE", "ACK", "SYN"] | |
83: ["ECE", "ACK", "SYN", "FIN"] | |
84: ["ECE", "ACK", "RST"] | |
85: ["ECE", "ACK", "RST", "FIN"] | |
86: ["ECE", "ACK", "RST", "SYN"] | |
87: ["ECE", "ACK", "RST", "SYN", "FIN"] | |
88: ["ECE", "ACK", "PUSH"] | |
89: ["ECE", "ACK", "PUSH", "FIN"] | |
90: ["ECE", "ACK", "PUSH", "SYN"] | |
91: ["ECE", "ACK", "PUSH", "SYN", "FIN"] | |
92: ["ECE", "ACK", "PUSH", "RST"] | |
93: ["ECE", "ACK", "PUSH", "RST", "FIN"] | |
94: ["ECE", "ACK", "PUSH", "RST", "SYN"] | |
95: ["ECE", "ACK", "PUSH", "RST", "SYN", "FIN"] | |
96: ["ECE", "URG"] | |
97: ["ECE", "URG", "FIN"] | |
98: ["ECE", "URG", "SYN"] | |
99: ["ECE", "URG", "SYN", "FIN"] | |
100: ["ECE", "URG", "RST"] | |
101: ["ECE", "URG", "RST", "FIN"] | |
102: ["ECE", "URG", "RST", "SYN"] | |
103: ["ECE", "URG", "RST", "SYN", "FIN"] | |
104: ["ECE", "URG", "PUSH"] | |
105: ["ECE", "URG", "PUSH", "FIN"] | |
106: ["ECE", "URG", "PUSH", "SYN"] | |
107: ["ECE", "URG", "PUSH", "SYN", "FIN"] | |
108: ["ECE", "URG", "PUSH", "RST"] | |
109: ["ECE", "URG", "PUSH", "RST", "FIN"] | |
110: ["ECE", "URG", "PUSH", "RST", "SYN"] | |
111: ["ECE", "URG", "PUSH", "RST", "SYN", "FIN"] | |
112: ["ECE", "URG", "ACK"] | |
113: ["ECE", "URG", "ACK", "FIN"] | |
114: ["ECE", "URG", "ACK", "SYN"] | |
115: ["ECE", "URG", "ACK", "SYN", "FIN"] | |
116: ["ECE", "URG", "ACK", "RST"] | |
117: ["ECE", "URG", "ACK", "RST", "FIN"] | |
118: ["ECE", "URG", "ACK", "RST", "SYN"] | |
119: ["ECE", "URG", "ACK", "RST", "SYN", "FIN"] | |
120: ["ECE", "URG", "ACK", "PUSH"] | |
121: ["ECE", "URG", "ACK", "PUSH", "FIN"] | |
122: ["ECE", "URG", "ACK", "PUSH", "SYN"] | |
123: ["ECE", "URG", "ACK", "PUSH", "SYN", "FIN"] | |
124: ["ECE", "URG", "ACK", "PUSH", "RST"] | |
125: ["ECE", "URG", "ACK", "PUSH", "RST", "FIN"] | |
126: ["ECE", "URG", "ACK", "PUSH", "RST", "SYN"] | |
127: ["ECE", "URG", "ACK", "PUSH", "RST", "SYN", "FIN"] | |
128: ["CWR"] | |
129: ["CWR", "FIN"] | |
130: ["CWR", "SYN"] | |
131: ["CWR", "SYN", "FIN"] | |
132: ["CWR", "RST"] | |
133: ["CWR", "RST", "FIN"] | |
134: ["CWR", "RST", "SYN"] | |
135: ["CWR", "RST", "SYN", "FIN"] | |
136: ["CWR", "PUSH"] | |
137: ["CWR", "PUSH", "FIN"] | |
138: ["CWR", "PUSH", "SYN"] | |
139: ["CWR", "PUSH", "SYN", "FIN"] | |
140: ["CWR", "PUSH", "RST"] | |
141: ["CWR", "PUSH", "RST", "FIN"] | |
142: ["CWR", "PUSH", "RST", "SYN"] | |
143: ["CWR", "PUSH", "RST", "SYN", "FIN"] | |
144: ["CWR", "ACK"] | |
145: ["CWR", "ACK", "FIN"] | |
146: ["CWR", "ACK", "SYN"] | |
147: ["CWR", "ACK", "SYN", "FIN"] | |
148: ["CWR", "ACK", "RST"] | |
149: ["CWR", "ACK", "RST", "FIN"] | |
150: ["CWR", "ACK", "RST", "SYN"] | |
151: ["CWR", "ACK", "RST", "SYN", "FIN"] | |
152: ["CWR", "ACK", "PUSH"] | |
153: ["CWR", "ACK", "PUSH", "FIN"] | |
154: ["CWR", "ACK", "PUSH", "SYN"] | |
155: ["CWR", "ACK", "PUSH", "SYN", "FIN"] | |
156: ["CWR", "ACK", "PUSH", "RST"] | |
157: ["CWR", "ACK", "PUSH", "RST", "FIN"] | |
158: ["CWR", "ACK", "PUSH", "RST", "SYN"] | |
159: ["CWR", "ACK", "PUSH", "RST", "SYN", "FIN"] | |
160: ["CWR", "URG"] | |
161: ["CWR", "URG", "FIN"] | |
162: ["CWR", "URG", "SYN"] | |
163: ["CWR", "URG", "SYN", "FIN"] | |
164: ["CWR", "URG", "RST"] | |
165: ["CWR", "URG", "RST", "FIN"] | |
166: ["CWR", "URG", "RST", "SYN"] | |
167: ["CWR", "URG", "RST", "SYN", "FIN"] | |
168: ["CWR", "URG", "PUSH"] | |
169: ["CWR", "URG", "PUSH", "FIN"] | |
170: ["CWR", "URG", "PUSH", "SYN"] | |
171: ["CWR", "URG", "PUSH", "SYN", "FIN"] | |
172: ["CWR", "URG", "PUSH", "RST"] | |
173: ["CWR", "URG", "PUSH", "RST", "FIN"] | |
174: ["CWR", "URG", "PUSH", "RST", "SYN"] | |
175: ["CWR", "URG", "PUSH", "RST", "SYN", "FIN"] | |
176: ["CWR", "URG", "ACK"] | |
177: ["CWR", "URG", "ACK", "FIN"] | |
178: ["CWR", "URG", "ACK", "SYN"] | |
179: ["CWR", "URG", "ACK", "SYN", "FIN"] | |
180: ["CWR", "URG", "ACK", "RST"] | |
181: ["CWR", "URG", "ACK", "RST", "FIN"] | |
182: ["CWR", "URG", "ACK", "RST", "SYN"] | |
183: ["CWR", "URG", "ACK", "RST", "SYN", "FIN"] | |
184: ["CWR", "URG", "ACK", "PUSH"] | |
185: ["CWR", "URG", "ACK", "PUSH", "FIN"] | |
186: ["CWR", "URG", "ACK", "PUSH", "SYN"] | |
187: ["CWR", "URG", "ACK", "PUSH", "SYN", "FIN"] | |
188: ["CWR", "URG", "ACK", "PUSH", "RST"] | |
189: ["CWR", "URG", "ACK", "PUSH", "RST", "FIN"] | |
190: ["CWR", "URG", "ACK", "PUSH", "RST", "SYN"] | |
191: ["CWR", "URG", "ACK", "PUSH", "RST", "SYN", "FIN"] | |
192: ["CWR", "ECE"] | |
193: ["CWR", "ECE", "FIN"] | |
194: ["CWR", "ECE", "SYN"] | |
195: ["CWR", "ECE", "SYN", "FIN"] | |
196: ["CWR", "ECE", "RST"] | |
197: ["CWR", "ECE", "RST", "FIN"] | |
198: ["CWR", "ECE", "RST", "SYN"] | |
199: ["CWR", "ECE", "RST", "SYN", "FIN"] | |
200: ["CWR", "ECE", "PUSH"] | |
201: ["CWR", "ECE", "PUSH", "FIN"] | |
202: ["CWR", "ECE", "PUSH", "SYN"] | |
203: ["CWR", "ECE", "PUSH", "SYN", "FIN"] | |
204: ["CWR", "ECE", "PUSH", "RST"] | |
205: ["CWR", "ECE", "PUSH", "RST", "FIN"] | |
206: ["CWR", "ECE", "PUSH", "RST", "SYN"] | |
207: ["CWR", "ECE", "PUSH", "RST", "SYN", "FIN"] | |
208: ["CWR", "ECE", "ACK"] | |
209: ["CWR", "ECE", "ACK", "FIN"] | |
210: ["CWR", "ECE", "ACK", "SYN"] | |
211: ["CWR", "ECE", "ACK", "SYN", "FIN"] | |
212: ["CWR", "ECE", "ACK", "RST"] | |
213: ["CWR", "ECE", "ACK", "RST", "FIN"] | |
214: ["CWR", "ECE", "ACK", "RST", "SYN"] | |
215: ["CWR", "ECE", "ACK", "RST", "SYN", "FIN"] | |
216: ["CWR", "ECE", "ACK", "PUSH"] | |
217: ["CWR", "ECE", "ACK", "PUSH", "FIN"] | |
218: ["CWR", "ECE", "ACK", "PUSH", "SYN"] | |
219: ["CWR", "ECE", "ACK", "PUSH", "SYN", "FIN"] | |
220: ["CWR", "ECE", "ACK", "PUSH", "RST"] | |
221: ["CWR", "ECE", "ACK", "PUSH", "RST", "FIN"] | |
222: ["CWR", "ECE", "ACK", "PUSH", "RST", "SYN"] | |
223: ["CWR", "ECE", "ACK", "PUSH", "RST", "SYN", "FIN"] | |
224: ["CWR", "ECE", "URG"] | |
225: ["CWR", "ECE", "URG", "FIN"] | |
226: ["CWR", "ECE", "URG", "SYN"] | |
227: ["CWR", "ECE", "URG", "SYN", "FIN"] | |
228: ["CWR", "ECE", "URG", "RST"] | |
229: ["CWR", "ECE", "URG", "RST", "FIN"] | |
230: ["CWR", "ECE", "URG", "RST", "SYN"] | |
231: ["CWR", "ECE", "URG", "RST", "SYN", "FIN"] | |
232: ["CWR", "ECE", "URG", "PUSH"] | |
233: ["CWR", "ECE", "URG", "PUSH", "FIN"] | |
234: ["CWR", "ECE", "URG", "PUSH", "SYN"] | |
235: ["CWR", "ECE", "URG", "PUSH", "SYN", "FIN"] | |
236: ["CWR", "ECE", "URG", "PUSH", "RST"] | |
237: ["CWR", "ECE", "URG", "PUSH", "RST", "FIN"] | |
238: ["CWR", "ECE", "URG", "PUSH", "RST", "SYN"] | |
239: ["CWR", "ECE", "URG", "PUSH", "RST", "SYN", "FIN"] | |
240: ["CWR", "ECE", "URG", "ACK"] | |
241: ["CWR", "ECE", "URG", "ACK", "FIN"] | |
242: ["CWR", "ECE", "URG", "ACK", "SYN"] | |
243: ["CWR", "ECE", "URG", "ACK", "SYN", "FIN"] | |
244: ["CWR", "ECE", "URG", "ACK", "RST"] | |
245: ["CWR", "ECE", "URG", "ACK", "RST", "FIN"] | |
246: ["CWR", "ECE", "URG", "ACK", "RST", "SYN"] | |
247: ["CWR", "ECE", "URG", "ACK", "RST", "SYN", "FIN"] | |
248: ["CWR", "ECE", "URG", "ACK", "PUSH"] | |
249: ["CWR", "ECE", "URG", "ACK", "PUSH", "FIN"] | |
250: ["CWR", "ECE", "URG", "ACK", "PUSH", "SYN"] | |
251: ["CWR", "ECE", "URG", "ACK", "PUSH", "SYN", "FIN"] | |
252: ["CWR", "ECE", "URG", "ACK", "PUSH", "RST"] | |
253: ["CWR", "ECE", "URG", "ACK", "PUSH", "RST", "FIN"] | |
254: ["CWR", "ECE", "URG", "ACK", "PUSH", "RST", "SYN"] | |
255: ["CWR", "ECE", "URG", "ACK", "PUSH", "RST", "SYN", "FIN"] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Generate TCP Flags Definition File | |
# SANCP / SGUIL Flag calculations | |
1.upto(255) { |x| | |
ipFlags = x | |
flags = [] | |
if (ipFlags - 128) >= 0 | |
flags << "CWR" | |
ipFlags = ipFlags - 128 | |
end | |
if (ipFlags - 64) >= 0 | |
flags << "ECE" | |
ipFlags = ipFlags - 64 | |
end | |
if (ipFlags - 32) >= 0 | |
flags << "URG" | |
ipFlags = ipFlags - 32 | |
end | |
if (ipFlags - 16) >= 0 | |
flags << "ACK" | |
ipFlags = ipFlags - 16 | |
end | |
if (ipFlags - 8) >= 0 | |
flags << "PUSH" | |
ipFlags = ipFlags - 8 | |
end | |
if (ipFlags - 4) >= 0 | |
flags << "RST" | |
ipFlags = ipFlags - 4 | |
end | |
if (ipFlags - 2) >= 0 | |
flags << "SYN" | |
ipFlags = ipFlags - 2 | |
end | |
if (ipFlags - 1) >= 0 | |
flags << "FIN" | |
ipFlags = ipFlags - 1 | |
end | |
puts "#{x}: #{flags.to_s}" | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Very interesting post. We can get more info about tcp flags from here. Understanding TCP Flags
Understanding PSH Push ACK TCP Flags