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