● 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)
Code 174 Commits 1
contraband / proto / exfil.pb.go
← Back to directory
260 lines · 8.1 KB
Raw
1// Code generated by protoc-gen-go. DO NOT EDIT.
2// versions:
3// protoc-gen-go v1.36.12
4// protoc v3.21.12
5// source: proto/exfil.proto
6
7package proto
8
9import (
10 protoreflect "google.golang.org/protobuf/reflect/protoreflect"
11 protoimpl "google.golang.org/protobuf/runtime/protoimpl"
12 reflect "reflect"
13 sync "sync"
14 unsafe "unsafe"
15)
16
17const (
18 // Verify that this generated code is sufficiently up-to-date.
19 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
20 // Verify that runtime/protoimpl is sufficiently up-to-date.
21 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
22)
23
24type ChunkRequest struct {
25 state protoimpl.MessageState `protogen:"open.v1"`
26 Token []byte `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` // 16-byte session token
27 Sequence uint32 `protobuf:"varint,2,opt,name=sequence,proto3" json:"sequence,omitempty"` // Chunk sequence number (1-based)
28 TotalChunks uint32 `protobuf:"varint,3,opt,name=total_chunks,json=totalChunks,proto3" json:"total_chunks,omitempty"` // Total chunk count
29 Payload []byte `protobuf:"bytes,4,opt,name=payload,proto3" json:"payload,omitempty"` // Chunk binary payload
30 ExpectedHash string `protobuf:"bytes,5,opt,name=expected_hash,json=expectedHash,proto3" json:"expected_hash,omitempty"` // Expected SHA-256 hash of complete stream
31 unknownFields protoimpl.UnknownFields
32 sizeCache protoimpl.SizeCache
33}
34
35func (x *ChunkRequest) Reset() {
36 *x = ChunkRequest{}
37 mi := &file_proto_exfil_proto_msgTypes[0]
38 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
39 ms.StoreMessageInfo(mi)
40}
41
42func (x *ChunkRequest) String() string {
43 return protoimpl.X.MessageStringOf(x)
44}
45
46func (*ChunkRequest) ProtoMessage() {}
47
48func (x *ChunkRequest) ProtoReflect() protoreflect.Message {
49 mi := &file_proto_exfil_proto_msgTypes[0]
50 if x != nil {
51 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
52 if ms.LoadMessageInfo() == nil {
53 ms.StoreMessageInfo(mi)
54 }
55 return ms
56 }
57 return mi.MessageOf(x)
58}
59
60// Deprecated: Use ChunkRequest.ProtoReflect.Descriptor instead.
61func (*ChunkRequest) Descriptor() ([]byte, []int) {
62 return file_proto_exfil_proto_rawDescGZIP(), []int{0}
63}
64
65func (x *ChunkRequest) GetToken() []byte {
66 if x != nil {
67 return x.Token
68 }
69 return nil
70}
71
72func (x *ChunkRequest) GetSequence() uint32 {
73 if x != nil {
74 return x.Sequence
75 }
76 return 0
77}
78
79func (x *ChunkRequest) GetTotalChunks() uint32 {
80 if x != nil {
81 return x.TotalChunks
82 }
83 return 0
84}
85
86func (x *ChunkRequest) GetPayload() []byte {
87 if x != nil {
88 return x.Payload
89 }
90 return nil
91}
92
93func (x *ChunkRequest) GetExpectedHash() string {
94 if x != nil {
95 return x.ExpectedHash
96 }
97 return ""
98}
99
100type ChunkResponse struct {
101 state protoimpl.MessageState `protogen:"open.v1"`
102 Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
103 SessionId string `protobuf:"bytes,2,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
104 TotalBytes int64 `protobuf:"varint,3,opt,name=total_bytes,json=totalBytes,proto3" json:"total_bytes,omitempty"`
105 PayloadHash string `protobuf:"bytes,4,opt,name=payload_hash,json=payloadHash,proto3" json:"payload_hash,omitempty"`
106 Verdict string `protobuf:"bytes,5,opt,name=verdict,proto3" json:"verdict,omitempty"` // e.g. "EXFIL_SUCCESS"
107 ErrorMessage string `protobuf:"bytes,6,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
108 unknownFields protoimpl.UnknownFields
109 sizeCache protoimpl.SizeCache
110}
111
112func (x *ChunkResponse) Reset() {
113 *x = ChunkResponse{}
114 mi := &file_proto_exfil_proto_msgTypes[1]
115 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
116 ms.StoreMessageInfo(mi)
117}
118
119func (x *ChunkResponse) String() string {
120 return protoimpl.X.MessageStringOf(x)
121}
122
123func (*ChunkResponse) ProtoMessage() {}
124
125func (x *ChunkResponse) ProtoReflect() protoreflect.Message {
126 mi := &file_proto_exfil_proto_msgTypes[1]
127 if x != nil {
128 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
129 if ms.LoadMessageInfo() == nil {
130 ms.StoreMessageInfo(mi)
131 }
132 return ms
133 }
134 return mi.MessageOf(x)
135}
136
137// Deprecated: Use ChunkResponse.ProtoReflect.Descriptor instead.
138func (*ChunkResponse) Descriptor() ([]byte, []int) {
139 return file_proto_exfil_proto_rawDescGZIP(), []int{1}
140}
141
142func (x *ChunkResponse) GetSuccess() bool {
143 if x != nil {
144 return x.Success
145 }
146 return false
147}
148
149func (x *ChunkResponse) GetSessionId() string {
150 if x != nil {
151 return x.SessionId
152 }
153 return ""
154}
155
156func (x *ChunkResponse) GetTotalBytes() int64 {
157 if x != nil {
158 return x.TotalBytes
159 }
160 return 0
161}
162
163func (x *ChunkResponse) GetPayloadHash() string {
164 if x != nil {
165 return x.PayloadHash
166 }
167 return ""
168}
169
170func (x *ChunkResponse) GetVerdict() string {
171 if x != nil {
172 return x.Verdict
173 }
174 return ""
175}
176
177func (x *ChunkResponse) GetErrorMessage() string {
178 if x != nil {
179 return x.ErrorMessage
180 }
181 return ""
182}
183
184var File_proto_exfil_proto protoreflect.FileDescriptor
185
186const file_proto_exfil_proto_rawDesc = "" +
187 "\n" +
188 "\x11proto/exfil.proto\x12\n" +
189 "contraband\"\xa2\x01\n" +
190 "\fChunkRequest\x12\x14\n" +
191 "\x05token\x18\x01 \x01(\fR\x05token\x12\x1a\n" +
192 "\bsequence\x18\x02 \x01(\rR\bsequence\x12!\n" +
193 "\ftotal_chunks\x18\x03 \x01(\rR\vtotalChunks\x12\x18\n" +
194 "\apayload\x18\x04 \x01(\fR\apayload\x12#\n" +
195 "\rexpected_hash\x18\x05 \x01(\tR\fexpectedHash\"\xcb\x01\n" +
196 "\rChunkResponse\x12\x18\n" +
197 "\asuccess\x18\x01 \x01(\bR\asuccess\x12\x1d\n" +
198 "\n" +
199 "session_id\x18\x02 \x01(\tR\tsessionId\x12\x1f\n" +
200 "\vtotal_bytes\x18\x03 \x01(\x03R\n" +
201 "totalBytes\x12!\n" +
202 "\fpayload_hash\x18\x04 \x01(\tR\vpayloadHash\x12\x18\n" +
203 "\averdict\x18\x05 \x01(\tR\averdict\x12#\n" +
204 "\rerror_message\x18\x06 \x01(\tR\ferrorMessage2\x99\x01\n" +
205 "\fExfilService\x12B\n" +
206 "\vUploadChunk\x12\x18.contraband.ChunkRequest\x1a\x19.contraband.ChunkResponse\x12E\n" +
207 "\fUploadStream\x12\x18.contraband.ChunkRequest\x1a\x19.contraband.ChunkResponse(\x01B,Z*github.com/shehzade/contraband/proto;protob\x06proto3"
208
209var (
210 file_proto_exfil_proto_rawDescOnce sync.Once
211 file_proto_exfil_proto_rawDescData []byte
212)
213
214func file_proto_exfil_proto_rawDescGZIP() []byte {
215 file_proto_exfil_proto_rawDescOnce.Do(func() {
216 file_proto_exfil_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_proto_exfil_proto_rawDesc), len(file_proto_exfil_proto_rawDesc)))
217 })
218 return file_proto_exfil_proto_rawDescData
219}
220
221var file_proto_exfil_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
222var file_proto_exfil_proto_goTypes = []any{
223 (*ChunkRequest)(nil), // 0: contraband.ChunkRequest
224 (*ChunkResponse)(nil), // 1: contraband.ChunkResponse
225}
226var file_proto_exfil_proto_depIdxs = []int32{
227 0, // 0: contraband.ExfilService.UploadChunk:input_type -> contraband.ChunkRequest
228 0, // 1: contraband.ExfilService.UploadStream:input_type -> contraband.ChunkRequest
229 1, // 2: contraband.ExfilService.UploadChunk:output_type -> contraband.ChunkResponse
230 1, // 3: contraband.ExfilService.UploadStream:output_type -> contraband.ChunkResponse
231 2, // [2:4] is the sub-list for method output_type
232 0, // [0:2] is the sub-list for method input_type
233 0, // [0:0] is the sub-list for extension type_name
234 0, // [0:0] is the sub-list for extension extendee
235 0, // [0:0] is the sub-list for field type_name
236}
237
238func init() { file_proto_exfil_proto_init() }
239func file_proto_exfil_proto_init() {
240 if File_proto_exfil_proto != nil {
241 return
242 }
243 type x struct{}
244 out := protoimpl.TypeBuilder{
245 File: protoimpl.DescBuilder{
246 GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
247 RawDescriptor: unsafe.Slice(unsafe.StringData(file_proto_exfil_proto_rawDesc), len(file_proto_exfil_proto_rawDesc)),
248 NumEnums: 0,
249 NumMessages: 2,
250 NumExtensions: 0,
251 NumServices: 1,
252 },
253 GoTypes: file_proto_exfil_proto_goTypes,
254 DependencyIndexes: file_proto_exfil_proto_depIdxs,
255 MessageInfos: file_proto_exfil_proto_msgTypes,
256 }.Build()
257 File_proto_exfil_proto = out.File
258 file_proto_exfil_proto_goTypes = nil
259 file_proto_exfil_proto_depIdxs = nil
260}