26 sept 2009

Encontrar Admin de una Web (2 métodos)

De la mano de hacking-avanzado.blogspot.com nos enseña como encontrar la página del administrador de una web usando el script admin-scan.py ya posteado anteriormente aquí, pero lo interesente no es ese método sino el segundo, el de encontrar el admin por medio de robots.txt que yo por lo menos no conocía.

PEN-TESTING: ENCONTRAR LA PAGINA DE ADMINISTRACIÓN DE UNA WEB

Algunas veces sucede que podemos encontrar una vulnerabilidad de sql-injection y, a simple vista, no hay quien vea dónde se encuentra la página de loggin del admin, por lo que no podemos terminar de reventar la página. Es aquí donde el siguiente script, bajado de darkc0de, resulta útil:


#/usr/bin/python
import sys, os, time, httplib

if sys.platform == 'linux' or sys.platform == 'linux2':
clearing = 'clear'
else:
clearing = 'cls'
os.system(clearing)


if len(sys.argv) != 2:
print "\n|---------------------------------------------------------------|"
print "| b4ltazar[@]gmail[dot]com                                      |"
print "|   03/2009     Admin login finder     v2.0                     |"
print "| Help: admin-find.py -h                                        |"
print "| Visit www.darkc0de.com and www.ljuska.org                     |"
print "|---------------------------------------------------------------|\n"
sys.exit(1)

for arg in sys.argv:
if arg == '-h':
print "\n|-------------------------------------------------------------------------------|"
print "| b4ltazar[@]gmail[dot]com                                                      |"
print "|   03/2009      Admin login finder     v2.0                                    |"
print "| Usage: admin-find.py www.site.com                                             |"
print "| Example: admin-find.py site.com                                               |"
print "| Visit www.darkc0de.com and www.ljuska.org                                     |"
print "|-------------------------------------------------------------------------------|\n"
sys.exit(1)



site = sys.argv[1].replace("http://","").rsplit("/",1)[0] 
site = site.lower()

admin_path = ['admin.php','admin/','administrator/','moderator/','webadmin/','adminarea/','bb-admin/','adminLogin/','admin_area/','panel-administracion/','instadmin/','memberadmin/','administratorlogin/','adm/','admin/account.php','admin/index.php','admin/login.php','admin/admin.php','admin/account.php','joomla/administrator','login.php',
'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','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','admin/controlpanel.php','admincp/index.asp','admincp/login.asp','admincp/index.html','admin/account.html','adminpanel.html','webadmin.html','webadmin/index.html','webadmin/admin.html','webadmin/login.html','admin/admin_login.html','admin_login.html','panel-administracion/login.html','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','administrator/account.php','administrator.php','admin_area/admin.html','pages/admin/admin-login.php','admin/admin-login.php','admin-login.php','bb-admin/index.html','bb-admin/login.html','bb-admin/admin.html','admin/home.html','modelsearch/login.php','moderator.php','moderator/login.php','moderator/admin.php','account.php','pages/admin/admin-login.html','admin/admin-login.html','admin-login.html','controlpanel.php','admincontrol.php',
'admin/adminLogin.html','adminLogin.html','admin/adminLogin.html','home.html','rcjakar/admin/login.php','adminarea/index.html','adminarea/admin.html','webadmin.php','webadmin/index.php','webadmin/admin.php','admin/controlpanel.html','admin.html','admin/cp.html','cp.html','adminpanel.php','moderator.html','administrator/index.html','administrator/login.html','user.html','administrator/account.html','administrator.html','login.html','modelsearch/login.html','moderator/login.html','adminarea/login.html','panel-administracion/index.html','panel-administracion/admin.html','modelsearch/index.html','modelsearch/admin.html','admincontrol/login.html','adm/index.html','adm.html','moderator/admin.html','user.php','account.html','controlpanel.html','admincontrol.html','panel-administracion/login.php','wp-login.php','adminLogin.php','admin/adminLogin.php','home.php','adminarea/index.php','adminarea/admin.php','adminarea/login.php','panel-administracion/index.php','panel-administracion/admin.php','modelsearch/index.php','modelsearch/admin.php','admincontrol/login.php','adm/admloginuser.php','admloginuser.php','admin2.php','admin2/login.php','admin2/index.php','adm/index.php','adm.php','affiliate.php','adm_auth.php','memberadmin.php','administratorlogin.php','administrador/']


print "\n|---------------------------------------------------------------|"
print "| b4ltazar[@]gmail[dot]com                                      |"
print "|   03/2009      Admin login finder     v2.0                    |"
print "| Visit www.darkc0de.com and www.ljuska.org                     |"
print "|---------------------------------------------------------------|\n"
print "\n[-] %s" % time.strftime("%X")

print "[+] Target:",site
print "[+] Checking paths..."
print


try:
for admin in admin_path:
admin = admin.replace("\n","")
admin = "/" + admin
connection = httplib.HTTPConnection(site)
connection.request("GET",admin)
response = connection.getresponse()
print "%s %s %s" % (admin, response.status, response.reason)
except(KeyboardInterrupt,SystemExit):
raise
except:
pass 


El script lo único que hace es pedir un montón de páginas que podrían ser la que buscamos, por ejemplo /admin/ y /administrador/ y sacar el return code. Si vemos un 200 es que hemos encontrado lo que buscamos. Un poco primitivo, pero eficiente. Al final de la lista de url's a intentar, he añadido "administrador", porque estos scripts suelen obviar el idioma español.

Lo ejecutamos así:
python adminfinder.py http://www.victima.es/ |grep -v 404

Y el resultado es éste:

Todos los NOT FOUND han sido redirigidos a la página de error, por eso da un 301. Pero, si os fijáis, ha encontrado /administrator/, que es la página de loggin del admin.

Además de este script, y como un recurso adicional, podemos echarle un ojo al archivo robots.txt, porque a veces los admins se olvidan de borrar los directorios que aparecen por defecto.En este caso, si vemos robots.txt nos encontramos esto:

User-agent: * Disallow: /administrator/ Disallow: /cache/ Disallow: /components/ [...]

Entre los directorios listados podemos encontrar de nuevo /administrator/

Script original aquí.

Fuente: http://hacking-avanzado.blogspot.com/

Author & Editor

Ingeniero, me gusta la cyberseguridad, la programación y el blockchain.

3 Notaciones:

Labels

0-day (12) 1337day (1) 8.8 (2) Adobe Acrobat (1) Android (2) Anonimato (1) Anonymous (9) BackDoor (2) BackTrack (15) badUSB (1) Base64 (1) Black Hat (7) BlackHat (1) Blackploit (30) Brute Force (3) Bug (106) Bypass Password (1) Bypass Redirect (1) C99 Shell (1) Carding (1) CheatSheet (15) Chilean Way (2) Conference (10) Cryptsetup (1) CSRF (1) DDoS (11) DEF CON (3) DEFCON (7) Dev (1) Diapositivas (1) Diseño Web (1) Distro Linux (27) Documental (2) DoS (2) Drupal (1) DuckDuckGo (1) E-zine (18) Ekoparty (1) Escaneo (4) España (1) Exploit (64) Ezine (1) Facebook (1) Fast-Info (44) FBI (1) Ficheros Binarios (1) Firefox (4) Flash (2) Forense (9) Fuerza Bruta (11) Fuga de Datos (1) GhostShell (1) GNU/Linux (4) Google (2) Guía (1) Hack T00LZ (135) Hack Tips (63) Hacked (6) Hacking (19) Hacking Hardware (5) HashCat (1) Herramientas (125) HighSecCON (1) Humor Geek (13) Infografía (1) Ingeniería Social (5) Inj3ct0r (1) Internet Explorer (3) Java (7) JavaScript (2) Kali (3) KitPloit (6) Leaks (22) Linux OS (79) LulzSec (1) Mac OS (10) Magazine (1) Malaware (3) Malaware Tools (12) Malware (1) Man in the Middle (15) Manuales (3) MD5 CRACK (4) Metasploit (57) MSSQL (1) MySQL (6) MySQL CRACK (1) Nmap (6) Nmap NSE (2) Noticias (200) NTLM CRACK (1) Ofuscar (5) OpenSolaris OS (1) OpenSSL (1) ORACLE (1) OWASP (3) Paper (10) PDF (7) PenTest (14) Perl (2) Phearking (13) Phishing (3) PHP (13) phpMyAdmin (1) PoC (1) Premios Bitacoras (1) Presentaciones (11) PRISM (1) Privacidad (2) Programación (12) Programas Linux (41) Programas Windows (41) Pwned (1) Python (5) Ransomware (1) Reconocimiento (5) Ruby (2) s (1) Scripts (7) Seguridad (150) Seguridad Web (139) Seguridad Wireless (19) Sensitive Data Exposure (2) SHA1 CRACK (1) Shellshock (1) Slides (1) Spoofing (1) Spyware (1) SQLi (19) SQLi Tools (7) SQLMap (2) SSH (1) Textos (74) Tips (57) Troyanos y Virus (11) Trucos (7) Trucos Win (7) Turiales (56) Tutoriales (18) Twitter (1) Ubuntu (2) Underc0de (1) UnderDOCS (1) Unlock (1) URL Redirection (1) UXSS (1) vBulletin (1) Video (48) Virtualización (2) Web T00LZ (16) Wifislax (1) Wikileaks (1) WikiRebels (1) Windows OS (65) Wireless Tools (13) XSS (16) Youtube (1)

 
biz.