Advertisement
Guest User

Acp scanner

a guest
Aug 4th, 2015
338
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.23 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import http.client, threading, sys, getopt, os
  4. from multiprocessing import cpu_count
  5. defaultlist = ['admin/','administrator/','admin1/','admin2/','admin3/','admin4/','admin5/','usuarios/','usuario/','moderator/','webadmin/','adminarea/','bb-admin/','adminLogin/','admin_area/','panel-administracion/','instadmin/',
  6. 'memberadmin/','administratorlogin/','adm/','admin/account.php','admin/index.php','admin/login/','admin/login.php','admin/admin.php','admin/account.php',
  7. 'admin_area/admin.php','admin_area/login.php','siteadmin/login.php','siteadmin/index.php','siteadmin/login.html','admin/account.html','admin/index.html','admin/login.html','admin/admin.html',
  8. 'admin_area/index.php','bb-admin/index.php','bb-admin/login.php','bb-admin/admin.php','admin/home.php','admin_area/login.html','admin_area/index.html',
  9. 'admin/controlpanel.php','admin.php','admincp/index.asp','admincp/login.asp','admincp/index.html','admin/account.html','adminpanel.html','webadmin.html',
  10. 'webadmin/index.html','webadmin/admin.html','webadmin/login.html','admin/admin_login.html','admin_login.html','panel-administracion/login.html',
  11. 'admin/cp.php','cp.php','administrator/index.php','administrator/login.php','nsw/admin/login.php','webadmin/login.php','admin/admin_login.php','admin_login.php',
  12. 'administrator/account.php','administrator.php','admin_area/admin.html','pages/admin/admin-login.php','admin/admin-login.php','admin-login.php',
  13. 'bb-admin/index.html','bb-admin/login.html','acceso.php','bb-admin/admin.html','admin/home.html','login.php','modelsearch/login.php','moderator.php','moderator/login.php',
  14. 'moderator/admin.php','account.php','pages/admin/admin-login.html','admin/admin-login.html','admin-login.html','controlpanel.php','admincontrol.php',
  15. 'admin/adminLogin.html','adminLogin.html','admin/adminLogin.html','home.html','rcjakar/admin/login.php','adminarea/index.html','adminarea/admin.html',
  16. 'webadmin.php','webadmin/index.php','webadmin/admin.php','admin/controlpanel.html','admin.html','admin/cp.html','cp.html','adminpanel.php','moderator.html','administrator/login.html','user.html','administrator/account.html','administrator.html','login.html','modelsearch/login.html',
  17. 'moderator/login.html','adminarea/login.html','panel-administracion/index.html','panel-administracion/admin.html','modelsearch/index.html','modelsearch/admin.html',
  18. 'admincontrol/login.html','adm/index.html','adm.html','moderator/admin.html','user.php','account.html','controlpanel.html','admincontrol.html',
  19. 'panel-administracion/login.php','wp-login.php','adminLogin.php','admin/adminLogin.php','home.php','admin.php','adminarea/index.php',
  20. 'adminarea/admin.php','adminarea/login.php','panel-administracion/index.php','panel-administracion/admin.php','modelsearch/index.php',
  21. 'modelsearch/admin.php','admincontrol/login.php','adm/admloginuser.php','admloginuser.php','admin2.php','admin2/login.php','admin2/index.php','usuarios/login.php',
  22. 'adm/index.php','adm.php','affiliate.php','adm_auth.php','memberadmin.php','administratorlogin.php', 'webmaster/', 'webmaster.php', 'phpmyadmin', 'PhpMyAdmin']
  23. def onerror(py):
  24.     print('========================================')
  25.     print('Multiprocessing and Multitargeting ACP-Scanner by Bastian')
  26.     print('Admin Control Panel Scanner v2.4')
  27.     print('Visit LeakForums.org for more.')
  28.     print('   --http-status, -s: select an integer for HTTP status code (e.g. 200) or leave in blank for default value')
  29.     print('EXAMPLES:')
  30.     print(('   python ' + py + ' --target=example.com --panel-list=panels.txt --http-status=400'))
  31.     print(('   python ' + py + ' --target=mytargets.txt'))
  32.     print(('   python ' + py + ' -t example.com -s 301'))
  33. targets = []
  34. panels = ''
  35. httpstat = 200
  36. info = '\nType --help or -h for more instructions.'
  37. try:
  38.     opts, args = getopt.getopt(sys.argv[1:], 'ht:p:s:', ['help', 'target', 'panel-list=', 'http-status='])
  39.     if len(opts) < 1:
  40.         onerror(sys.argv[0])
  41.         sys.exit(1)
  42. except getopt.GetoptError:
  43.     onerror(sys.argv[0])
  44.     sys.exit(2)
  45. for command, value in opts:
  46.     if command in ('-h', '--help'):
  47.         onerror(sys.argv[0])
  48.         sys.exit()
  49.     elif command in ('-t', '--target'):
  50.         if os.path.isfile(value):
  51.             if os.access(value, os.R_OK):
  52.                 targets = [0, value.strip()]
  53.             else:
  54.                 print(('Can\'t read the given textfile containing the targets.' + info))
  55.                 sys.exit(1)
  56.         else:
  57.             try:
  58.                 url = value.replace('https://', '').replace('http://', '').replace('www.', '').replace('/', '')
  59.                 testing = http.client.HTTPConnection(url)
  60.                 testing.request('HEAD', '')
  61.                 targets = [1, value.strip()]
  62.             except:
  63.                 print(('Can neither request the given single target URL nor open a appropriate textfile.' + info))
  64.                 sys.exit(1)
  65.     elif command in ('-p', '--panel-list'):
  66.         if os.path.isfile(value) & os.access(value, os.R_OK):
  67.             panels = value.strip()
  68.         else:
  69.             print(('Can\'t find or read the given textfile containing the panels.' + info))
  70.             sys.exit(1)
  71.     elif command in ('-s', '--http-status'):
  72.         if (int(value) in range(100, 950)):
  73.             httpstat = int(value.strip())
  74.         else:
  75.             print(('The given HTTP status seems not to be valid. Only integer between 100 and 950 are allowed.' + info))
  76.             sys.exit(1)
  77. if (targets[0] < 1):
  78.     try:
  79.         tlist = open(targets[1], 'r')
  80.         spect = tlist.readlines()
  81.         tlist.close()
  82.     except:
  83.         print(('Can\'t open the given textfile ' + targets[1]+ ' containing the targets.'))
  84.         sys.exit(1)
  85. else:
  86.     spect = [targets[1]]
  87. if panels:
  88.     try:
  89.         plist = open(panels, 'r')
  90.         specp = plist.readlines()
  91.         plist.close()
  92.     except:
  93.         print(('Can\'t open the given textfile ' + targets[1]+ ' with targets.'))
  94. else:
  95.     specp = defaultlist
  96. def check_panel(url, acp, stat):
  97.     try:
  98.         check = http.client.HTTPConnection(url)
  99.         acpanel = '/' + acp
  100.         check.request('HEAD', acpanel)
  101.         resp = check.getresponse()
  102.         if (resp.status <= stat):
  103.             print(('>>> Founding ' + url + acpanel).strip())
  104.     except:
  105.         pass
  106. def requesting_target(url):
  107.     global specp, httpstat
  108.     try:
  109.         obj = url.replace('https://', '').replace('http://', '').replace('www.', '').replace('/', '')
  110.         requesting = http.client.HTTPConnection(obj)
  111.         requesting.request('HEAD', '')
  112.         processes = []
  113.         for acp in specp:
  114.             pmultiproc = threading.Thread(target=check_panel, args=(obj, acp.strip(), httpstat))
  115.             pmultiproc.start()
  116.             processes.append(pmultiproc)
  117.         for thread in processes:
  118.             thread.join()
  119.     except:
  120.         pass
  121. print('\nMultiprocessing Adminpanel Scanner by Bastian from LeakForums.org')
  122. print(('Processing with ' + str(cpu_count()) + ' available CPU'))
  123. print(('Testing ' + str(len(specp)) + ' possible admin panels on currently ' + str(len(spect)) + ' targets'))
  124. print(('Starting...\n' + ('-')*50))
  125. for dest in spect:
  126.     tmultiproc = threading.Thread(target=requesting_target, args=[dest.strip()])
  127.     tmultiproc.start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement