Bienvenidos a este tutorial, si es que le podemos llamar de esa forma, ultimamente he estado publicando algo, entonces se me ocurrio que a ustedes les serviria un poco este tipo de tutorial ya que he buscado mucha informacion en la red y he recogido lo que me parece mas importante que pueden utilizar para este tipo de cosas.
Antes que nada decirles que hay un proyecto muy conocido de documentacion sobre vulnerabilidades web llamado OWASP el cual contiene una guia muy buena en la cual pueden aprender demasiado sobre este tipo de metodologia.
Esta imagen la he encontrado en google y como dicen que una imagen vale mas que mil palabras, pues aqui les dejo las fases para el proceso de analisis.
1.- Preparacion y Planeamiento
Lo primero es intentar obtener la mayor informacion sobre el objetivo a analizar.
En este caso tendre en mi objetivo: animextremist.com
Es una pagina la cual visito continuamente, bueno veremos como hacer poco a poco, este tipo de prueba, claro yo lo hare a mi manera, ya que otros pueden utilizar otro tipo de herramientas o solo utilizar este concepto de manera que les pueda 'servir'.
http://whois.domaintools.com/ <- Esta es una herramienta muy util para mi me da mucha informacion sobre el dominio, en su version de paga es mucho mas util.
Con la informacion recogida se los datos siguientes:
80.82.78.206 esta alojado en un servidor dedicado de godaddy.com
El email del admin es juanelo512@hotmail.com
Su nombre es Juan Celis Garcia
Su calle: Peralvillo 22 edificio c-301
Su colonia: Colonia Morelos
Su ciudad: Mexico City
Su pais: Mexico
Su codigo postal: City 06200
Su telefono: 55269882
Informacion sobre el servidor: Apache/2.2.29 (Unix) mod_ssl/2.2.29 OpenSSL/1.0.1e-fips mod_bwlimited/1.4
Usaba Cloudflare
PHP_VERSION | 5.4.36 |
Gracias al uso de las redes sociales hoy en dia podemos sacar mucha informacion, por ejemplo usando Facebook, coloco el correo que encontre anteriormente:
juanelo512@hotmail.com y encuentro esto:
https://www.facebook.com/animextremist.anx
Ok, tiene su correo con su cuenta de animextremist pero veo que tiene 2 amigos, dentro de esos dos amigos busco a Juan Celis! :P
https://www.facebook.com/juan.celis.904
He aqui Juan Celis Administrador de AnimeXtremist Mi idolo :)
Encontrando mas informacion:
Su hermana: https://www.facebook.com/cicky.celis
Ahora podemos buscar sobre el en google utilizando Su nombre y donde estudio, ejemplo: Juan celis Unitec, esa informacion la saque desde facebook.
https://twitter.com/Seiji_Ibiki
Con esto concluimos que el uso de las redes sociales para obtener informacion es de demasiada ayuda, algunas redes sociales pueden ser:
* Google+
Tambien si este fuera un servidor compartido, podriamos hacer uso de BING para buscar algunos de lso dominios compartidos, ejemplo:
IP: xxx.xxx.xxx.xxx
Aqui no se acaba, podemos intentar recopilar informacion de subdominios, utilizando Google.
site: elsitio.com -site:elsitio.com
http://ftp.animextremist.com
Tambien en este ejemplo con Shodan hemos encontrado su panel de cPanel:
https://80.82.78.206:2087
https://80.82.78.206:2083
https://80.82.78.206:2096
https://80.82.78.206:2078/
ftp://80.82.78.206/
Otra manera de buscar informacion con google es utilizando sus keywords, por ejemplo:
site:animextremist.com filetype:txt
Siguiendo con las keywords de google pues como hay bastantes formas utiles solo hay que jugar con ellas, de todas maneras si puedo pronto hare algun tutorial sobre Google Hacking :P
http://www.animextremist.com/noticias/noti543.php?subaction=showfull
http://animextremist.com/mangas-online/the-breaker-new-wave/capitulo-3/
http://www.animextremist.com/series/dbzpelis_archivos/
http://www.animextremist.com/fansub/
?subaction=showcomments
&id=1195023652
&archive=
&start_from=
&ucat=3
&
http://www.animextremist.com/fansub/noticias/data/
http://animextremist.com/cgi-sys/scgiwrap
Algunos errores:
site:animextremist.com intext:"seijixt"
Warning: include(../comentarios/show_news.php): failed to open stream: No such file or directory in /home/seijixt/public_html/noticias/noti543.php on line 401
Warning: include(): Failed opening '../comentarios/show_news.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/seijixt/public_html/noticias/noti543.php on line 401
Warning: include(../comentarios/show_news.php): failed to open stream: No such file or directory in /home/seijixt/public_html/noticias/noti543.php on line 404
Warning: include(): Failed opening '../comentarios/show_news.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/seijixt/public_html/noticias/noti543.php on line 404
2004.12.08 19:46 B D:\Juan\Animextremist\animextremist\series\dbzpelis_archivos\dbzpeli1.jpg --> 65.110.45.90 /public_html/series/dbzpelis_archivos dbzpeli1.jpg
2004.12.08 19:46 B D:\Juan\Animextremist\animextremist\series\dbzpelis_archivos\dbzpeli2.jpg --> 65.110.45.90 /public_html/series/dbzpelis_archivos dbzpeli2.jpg
2004.12.08 19:46 B D:\Juan\Animextremist\animextremist\series\dbzpelis_archivos\dbzpeli3.jpg --> 65.110.45.90 /public_html/series/dbzpelis_archivos dbzpeli3.jpg
2004.12.08 19:46 B D:\Juan\Animextremist\animextremist\series\dbzpelis_archivos\dbzpeli4.jpg --> 65.110.45.90 /public_html/series/dbzpelis_archivos dbzpeli4.jpg
Con esto tenemos el posible nombre de usuario del cPanel :D
seijixt :P y la ruta :D, hace un tiempo hice un post sobre brute force el cual podriamos intentar, o simplemente intentar acceder con las peores contraseñas
Otra cosa que podemos hacer es usar algun brute forcing de directorios o simplemente hacer un crawler o spider para encontrar mas informacion.
Un ejemplo Yo utilizo ZAP de OWASP o DirBuster para buscar URL's, puntos de entrada, y directorios de la pagina que no son muy accesibles... Burp Suite tambien es una herramienta genial para esto.
Gracias a ZAP encontramos una posible Inyeccion SQL, ademas de un monton de urls y parametros:
http://animextremist.com/dd3.php?ver=H'
http://www.animextremist.com/mangas.htm?ord=genero&id=18'
SQLI: http://www.animextremist.com/mangas.htm?ord=genero&id=18 and 0 union select version() %23 hola
http://www.animextremist.com/foro/
http://animextremist.com/mangas-online/user/user/
Usa una base de datos MySQL. Cuando obtengamos los datos solo es necesario usar algun Admin Finder Online o una tool que te hayas creado.
http://animextremist.com/login.php
http://www.animextremist.com/pruebas/Admin.html
http://www.animextremist.com/tools/
Lo siguiente es reconocer los servicios que se estan usando. Aqui utilizaremos herramientas como NMAP.
Ejemplo: nmap -sV -T4 -O -Pn 80.82.78.206
Starting Nmap 6.40 ( http://nmap.org ) at 2015-03-22 19:33 Hora estándar Montañas (México)
Nmap scan report for 80.82.78.206
Host is up (0.19s latency).
Not shown: 982 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp Pure-FTPd
22/tcp open ssh OpenSSH 5.3 (protocol 2.0)
25/tcp open smtp Exim smtpd 4.84
53/tcp open domain
80/tcp open http Apache httpd 2.2.29 ((Unix) mod_ssl/2.2.29 OpenSSL/1.0.1e-fips mod_bwlimited/1.4)
110/tcp open pop3 Dovecot pop3d
135/tcp filtered msrpc
139/tcp filtered netbios-ssn
143/tcp open imap Dovecot imapd
443/tcp open ssl/http Apache httpd 2.2.29 ((Unix) mod_ssl/2.2.29 OpenSSL/1.0.1e-fips mod_bwlimited/1.4)
445/tcp filtered microsoft-ds
465/tcp open ssl/smtp Exim smtpd 4.84
587/tcp open smtp Exim smtpd 4.84
993/tcp open ssl/imap Dovecot imapd
995/tcp open ssl/pop3 Dovecot pop3d
1025/tcp filtered NFS-or-IIS
3306/tcp open mysql MySQL (unauthorized)
6129/tcp filtered unknown
Device type: general purpose|firewall|WAP|webcam
Running (JUST GUESSING): Linux 2.6.X|3.X|2.4.X (94%), Check Point Linux 2.6.X (85%), Tandberg embedded (85%), Fortinet Linux 2.6.X (85%)
OS CPE: cpe:/o:linux:linux_kernel:2.6 cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:2.6.18 cpe:/o:linux:linux_kernel:2.4 cpe:/h:tandberg:vcs cpe:/o:fortinet:linux_kernel:2.6
Aggressive OS guesses: Linux 2.6.32 - 2.6.39 (94%), Linux 3.2 - 3.6 (92%), Linux 2.6.32 - 3.0 (92%), Linux 3.4 (91%), Linux 2.6.39 (91%), Linux 2.6.32 (91%), Linux 2.6.32 - 2.6.35 (90%), Linux 3.1.9 (90%), Linux 3.5 (89%), Linux 3.0 - 3.9 (88%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 26 hops
Service Info: Host: server.animextremist.com
OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 44.42 seconds
Una de las paginas que no mencione aqui para obtener una mayor informacion es ir a archive.org y ver las paginas de antes ya que muchas veces se encuentran todavia disponibles.
XSS: http://www.animextremist.com/profile/chapter.php?resume_id=69&user=Seiji&user_id=6"></title><script>alert(/arthusu/)</script>
2.- Testeo y Evaluacion
Este paso mas que nada es encontrar vulnerabilidades y obtener acceso, para ello podemos ayudarnos de un sin fin de herramientas pero las que mas utilizo son:
* Acunetix (Detectar vulnerabilidades)
* Vega (Escaner de Vulnerabilidades)
* Waf00f (Detectar Firewall)
* Nikto (Detectar vulnerabilidades)
* NMAP (Servicios)
* ZAP (Directorios,Campos de entrada, DirBuster)
* Burp Suite (Directorios, Spider)
* Nessus (Detectar Vulnerabilidades)
* Metasploit (Explotar Vulnerabilidades)
* Google (Recolectar informacion)
A mi en lo personal no me gusta muchos utilizar herramientas, no es por que no sean buenas, sino por que muchas veces hacen mucho "ruido" y alertan rapidamente a un firewall o al administrador. Ademas de aveces tardar demasiado.
En el paso anterior encontramos una vulnerabilidad SQLi sin necesidad de usar herramientas.
Pero no hay nada de malo en usar herramientas ya que traen muchas vulnerabilidades que puedes no conocer ya que sea actualizan dia a dia. Y podemos obtener informacion muy interesante de ellas.
Hay otro tipo de ataque que al parecer se presenta mucho en esta pagina que es bruteforce.
Lo siguiente que podemos hacer es buscar exploits para los servicios anteriores usando Google, ejemplo:
OpenSSL/1.0.1e-fips exploit
3.- Redaccion de Reportes
Esta suele ser la parte mas aburrida ya que tienes que redactar todo lo que hicistes para encontrar vulnerabilidades, ya sea a nivel web o sistema, tienes que redactarlo bonito de una manera que los "clientes" lo entiendan. Para una mejor redaccion puedes utilizar una plantilla e ir ordenando todas las vulnerabilidades encontradas anteriormente en un archivo final entregado al cliente.
Les dejare algunas plantillas utiles para crear su reporte final.
Security_Assessment_Template.doc
V_Scan_Handout_Sample_Report.pdf
App_CA_Security_Assessment_Summary_Template_030408...
Despedida
Hasta aqui termina este pequeño "tutorial", intente no hacerlo largo por que se aburririan. Espero que a mas de uno les sea de utilidad. Le agradesco a Cesar de Alguienenlafisi por ayudarme, y a todas las personas que me han ayudado en este largo camino.
No hay comentarios:
Publicar un comentario