[SHEHZADE//ABDULLAH ANSARI]
Red Team Consultant @ Google | MS in Cybersecurity @ NYU
● Notice //GitHub (@shehzade) is temporarily suspended pending an automated false-positive review. All tools are hosted on this Code Mirror and available on request (contact); GitHub links will return once reinstated.
PUBLIC MIRRORGo v1.0
Multi-protocol network egress assessment and DLP verification framework featuring automated L4 sweeps, corporate proxy traversal, and covert protocol smuggling across 20+ channels.
$
git clone https://shehzade.io/repos/contraband.git
Copy
Source ZIP (1.93 MB)
120 lines · 2.9 KB
| 1 | package dlp |
| 2 | |
| 3 | import ( |
| 4 | "fmt" |
| 5 | "math/rand" |
| 6 | "strconv" |
| 7 | "strings" |
| 8 | ) |
| 9 | |
| 10 | // GenerateSSN produces a valid US Social Security Number meeting SSA rules. |
| 11 | func GenerateSSN(r *rand.Rand, formatted bool) string { |
| 12 | var area int |
| 13 | for { |
| 14 | area = 1 + r.Intn(899) |
| 15 | if area != 666 { |
| 16 | break |
| 17 | } |
| 18 | } |
| 19 | group := 1 + r.Intn(99) |
| 20 | serial := 1 + r.Intn(9999) |
| 21 | |
| 22 | if formatted { |
| 23 | return fmt.Sprintf("%03d-%02d-%04d", area, group, serial) |
| 24 | } |
| 25 | return fmt.Sprintf("%03d%02d%04d", area, group, serial) |
| 26 | } |
| 27 | |
| 28 | // ValidateSSN tests a string against US SSA rules. |
| 29 | func ValidateSSN(ssn string) bool { |
| 30 | clean := strings.ReplaceAll(strings.ReplaceAll(ssn, "-", ""), " ", "") |
| 31 | if len(clean) != 9 { |
| 32 | return false |
| 33 | } |
| 34 | for _, c := range clean { |
| 35 | if c < '0' || c > '9' { |
| 36 | return false |
| 37 | } |
| 38 | } |
| 39 | area, _ := strconv.Atoi(clean[0:3]) |
| 40 | group, _ := strconv.Atoi(clean[3:5]) |
| 41 | serial, _ := strconv.Atoi(clean[5:9]) |
| 42 | |
| 43 | if area == 0 || area == 666 || (area >= 900 && area <= 999) { |
| 44 | return false |
| 45 | } |
| 46 | if group == 0 || serial == 0 { |
| 47 | return false |
| 48 | } |
| 49 | return true |
| 50 | } |
| 51 | |
| 52 | // GenerateNINO produces a valid UK National Insurance Number. |
| 53 | func GenerateNINO(r *rand.Rand) string { |
| 54 | const firstLetters = "ABCEGHJKLMNOPRSTWXYZ" |
| 55 | const secondLetters = "ABCEGHJKLMNPRSTWXYZ" |
| 56 | const suffixes = "ABCD" |
| 57 | |
| 58 | f := firstLetters[r.Intn(len(firstLetters))] |
| 59 | s := secondLetters[r.Intn(len(secondLetters))] |
| 60 | digits := fmt.Sprintf("%06d", r.Intn(1000000)) |
| 61 | suf := suffixes[r.Intn(len(suffixes))] |
| 62 | |
| 63 | return fmt.Sprintf("%c%c%s%c", f, s, digits, suf) |
| 64 | } |
| 65 | |
| 66 | // ValidateNINO validates UK NINO format and invalid prefix/suffix restrictions. |
| 67 | func ValidateNINO(nino string) bool { |
| 68 | clean := strings.ToUpper(strings.ReplaceAll(strings.ReplaceAll(nino, "-", ""), " ", "")) |
| 69 | if len(clean) != 9 { |
| 70 | return false |
| 71 | } |
| 72 | invalidPrefix := "DFIQUV" |
| 73 | if strings.ContainsRune(invalidPrefix, rune(clean[0])) { |
| 74 | return false |
| 75 | } |
| 76 | invalidSecond := "DFIOQUV" |
| 77 | if strings.ContainsRune(invalidSecond, rune(clean[1])) { |
| 78 | return false |
| 79 | } |
| 80 | for _, c := range clean[2:8] { |
| 81 | if c < '0' || c > '9' { |
| 82 | return false |
| 83 | } |
| 84 | } |
| 85 | last := clean[8] |
| 86 | return last == 'A' || last == 'B' || last == 'C' || last == 'D' || last == ' ' |
| 87 | } |
| 88 | |
| 89 | // GenerateSIN produces a valid 9-digit Canadian SIN passing Luhn Mod-10. |
| 90 | func GenerateSIN(r *rand.Rand, formatted bool) string { |
| 91 | validFirst := []int{1, 2, 3, 4, 5, 6, 7, 9} |
| 92 | first := validFirst[r.Intn(len(validFirst))] |
| 93 | |
| 94 | var sb strings.Builder |
| 95 | sb.WriteByte(byte('0' + first)) |
| 96 | for i := 0; i < 7; i++ { |
| 97 | sb.WriteByte(byte('0' + r.Intn(10))) |
| 98 | } |
| 99 | chk, _ := GenerateLuhnCheckDigit(sb.String()) |
| 100 | sb.WriteByte(byte('0' + chk)) |
| 101 | raw := sb.String() |
| 102 | |
| 103 | if formatted { |
| 104 | return fmt.Sprintf("%s-%s-%s", raw[0:3], raw[3:6], raw[6:9]) |
| 105 | } |
| 106 | return raw |
| 107 | } |
| 108 | |
| 109 | // ValidateSIN validates a Canadian SIN. |
| 110 | func ValidateSIN(sin string) bool { |
| 111 | clean := strings.ReplaceAll(strings.ReplaceAll(sin, "-", ""), " ", "") |
| 112 | if len(clean) != 9 { |
| 113 | return false |
| 114 | } |
| 115 | first := clean[0] - '0' |
| 116 | if first == 0 || first == 8 { |
| 117 | return false |
| 118 | } |
| 119 | return ValidateLuhn(clean) |
| 120 | } |