- Los codigos fuente:
Este es el primer lugar por donde empezar a buscar en un reto , almenos que ya sepas por donda va la cosa. Puedes ver el codigo fuente dando un click derecho->Ver codigo fuente. En caso de que la pagina tenga desabilitado los click derecho pues vas a Ver->Codigo Fuente y si eso tampoco funciona pues pones en el browser "view-source:http://www.google.com" , claro que donde va google pones la web que quieras ver.
Muchas veces dejan mensajes ocultos en los codigos fuentes y son faciles de distinguir porque empiezan estan entre esto "<!-- -->" o lo encuentras porque vez que el codigo se desajusta en alguna parte , ya que normalmente siguen un patron por ser auto-generadas (en caso de paginas en php o asp).
- Javascript:
javascript es conocido como el reto de tontos , porque son los mas faciles de solucionar aunque hay retos de javascript que son sumamente complicado (solo he visto como 4 de estos). No piensen que van a poder leer todos los retos de javascript por leer estos consejos , la mejor manera de prepararse para estos retos son aprendiendo javascript aunquesea un poco.
Lo primero que tenemos que tomar en cuenta son los inputbox(). Estos que salen como una cajita , te piden una contraseña y luegos te redireccionan sin permitirte ver la web. Esto son simples, antes que te salga la cajita le das a "Escape" para que la web se pare. Luego vez el codigo fuente para ver donde es que sale el inputbox y con que lo compara o que sucede.
Aveces te muestran un codigo falso pero es muy parecido a lo que andas buscando. Esto se debe a que usan un
Código:
<script src="xxx">
Tu mejor amigo siempre va ser alert(). Si tienes un codigo muy largo que cifra variables y todo eso para generar la comparacion , tienes 2 opciones reproducir todo el codigo y ver lo que hace o añadirle al codigo alert(variable) para que te diga que contiene la variable. Con alert() es la forma mas simple de ver el valor de una variable. Para añadrile el alert() tienes que reproducir el codigo o descargar la pagina y agregarle eso al codigo fuente.
Los un/escape() solo codifican los textos en codigo url. Lo mas usual es que se hagan muchos unescape() de una variable o parte del texo y hace queda un poco oculto el codigo , lo unico que tienes que hacer es hacer la funcion opuesta y poco a poco lo vas a ir sacando el codigo completo.
Hay un programa llamado htmlock que dice cifrar todo el codigo de modo seguro pero cada vez que sale una nueva forma pues sale otro tool para desencriptarlo. En un reto de boinasnegras.com consta de romper esta seguridad y aqui publicaron un mensaje sobre como romper esa seguridad: http://foro.elhacker.net/index.php/topic,22294.0.html .
- Http Headers:
Antes que nada deben de leerse el protocolo http , buscando rapido en google encontre esta web que tiene una buena explicacion del protocolo "El protoclo Http en Wikipidia" . Tambien pueden buscar el RFC pero creo que esta en ingles solamente. Para ver los headers e informacion que envian pueden usar el proxomitron y cualquier otro proxy pero mi favorito es el ethereal porque con el puedes observar todas las conexiones que hace tu pc y puedes aprender mucho.
Todo esto te servira para ver cuando la pagina envia alguna informacion no visible a los ojos , para que piensen que usas otro navegador o otros OS. Para lo del navegador y el OS muchas personas usan programas que lo editas de modo o facil o pluggins para firefox que hacen esto. Yo prefiero hacerlo por telnet para ver si pasan otra informacion y en todo caso de que se este haciendo muy complicado pues uso el pluggin del firefox. Basicamente en el "User-Agent" es donde esta la informacion del OS y el navegador , solo tiene que editarlo e ir probando hasta que lo consigan bien.
El Referer sirve para ver de donde proviene una pagina , algunos retos requieren que vengas de una pagina especifica como "fbi.gov" y cosas asi. Pero no solamente sirve para eso , muchas webs tienen un log de los referer y no filtran nada. Si modificamos un referer muchas veces podemos inyectar codigos html , php y asp.
- Exploits:
La mayoria de los wargames sus retos de exploit son bien simple. Constan de un ataque xss , sql injection , remote file inclusion entre otros ataques. Tambien usan software viejos para que busques un exploit viejo y lo uses. Google siempre va ser tu mejor amigo para encontrar esos exploits y aveces tienes que modificarlos un poco , especialmente los de sql injection a un foro o una web. Cambian las tablas y debes modificar el exploit para que te funcione. Lo mejor sobre esto es leer textos sobre estos ataques ya que pueden ir desde un sql injection simple hasta uno complejo.
Algunos textos a leer: A study in Scarlet y los textos de sql injection y otras tecnicas que puedes encontrar aqui mismo http://www.elhacker.net/Textos1.htm .
Los retos de exploits mas complicados son los de BOF (buffer overflows) y los que requieren estudiar algun software para explotarlo. Pero ambos son pocos comunes en wargames hispanos porque los BOF's son un poco dificil de implementar y muy pocas personas saben como funcionan.
Tambien esta el tipico formulario que no permite mas de X caracteres , este solo tienes que reventarlo modificando el tamaño maximo de caracteres o por telnet ya que ahi no los verificara.
En retos para hackear webs las cosas mas comunes a buscar son cookies , directorios , archivos y robots. Algunas webs permiten directory listing , eso es que muestra todos los archivos de una carpeta con tan solo poner www.web.com/directorio/ esto sucede en algunos por defecto al no tener un index. Los robots.txt son archivos que le dan especificaciones a los buscadores , si no quieres que un buscador indexe un folder o un archivo pues lo veras en el archivo robots.txt . En el muchas veces buscas el archivo o directorio que necesitas para pasar el reto.
Para los archivos , siempre estar pendiente de a que carpetas se le hace referencia en los codigos html. Ya sea una imagen , flash , applet o otra cosa que sea llamada a algun directorio extraño ejemplo:
Código:
<img src="secreto/hola.jp">
Eso es una pista , significa que hay un directorio llamado secreto y seguro que debes buscar algo por ahi.
- Hashes:
Existen muchos tipos de hashes pero los mas comunes son: md5,md4, sha , rpdm-160, DES , LM y NTLM. Esto son retos faciles normalmente uno se da cuenta el tipo de hash que es por sus numeros de bytes o caracteres. El md5 es tipico por tener 32 caracteres mientras que el DES es tipico por tener caracteres en mayusculas,minusculas y numericos. Para mi el
mejor cracker es el Cain & Abbel ya que permite crackear varios tipos de hashes , luego lo sigue el John The Ripper. Con estos 2 deberian de bastar , en todo caso necesitaras un cracker de algun otro hash especifico.
Un consejo a la hora de crackear un hash. empezar a intentar crackear un hash solamente con numeros primeros ya que puedes llegar a 8 caracteres numericos rapido y asi sabes si la contraseña es solo numeros. Luego alfanumerico y de por ultimo con todos los caracteres. Ningun hash esta diseñado para ser crackeado con brute-force y que tenga mas de 7 caracteres. En caso de que llegues a 7 caracteres pues empiesas a sospechar y es hora de buscar un diccionario. En el foro se a comentado mucho sobre los diccionarios e incluso hace mucho yo puse un post sobre ellos y me dieron varios enlaces para descargarlos.
Si es un hash poco comun como el Crc32 pues tendras que crear tu propio cracker y aqui entra la ventaja de saber programar en cualquier lenguaje. Para crackers es muy comodo hacerlos en php ya que php tiene varias funciones para hashes.
- CrackMes:
Este probablemente sea uno de los retos mas dificiles. Lo que mas puede ayudar es la experiencia y leer muchos tutoriales. En el foro hay una muy buena sección de Ingenieria Inversa para dudas y ayuda sobre crackmes. Y en la web y el foro hay muchos tutoriales. Uno de mis tutoriales favorito es Cracker Notas o Notas de un Cracker que da pistas especificas de que buscar en tipos de crackmes pero para esto ya tienes que saber un poco.
Para VB:
Todos sugieren el SmartCheck y claro sus funciones mas busacadas: vbastrcmp, vbavartsteq , vbastrcat , vbastrlen , entre otras.
Para saltar los bugs o trampitas sugiero poner breakpoints en FindWindow y IsDebuggerPresent , este ultimo es el mas usado para saber si estan utilizando un debugger.
Y sobre los editores hexadecimales ya eso queda abierto al gusto. Unos prefieren Hackman otros HexWorkShop , esto ya es cuestion del que te sientas mas comodo.
**Tutoriales para Ingenieria Inversa**
http://foro.elhacker.net/index.php/topic,23911.0.html
http://www.elhacker.net/Textos1.htm#cracking
http://www.elhacker.net/hacking.htm#crackmes <-- este para crackmes.
- Crackear Archivos:
Esto es muy parecido a crackear un hash , solo que esta vez es a un archivo. Lo unico que necesita es un programa que haga bruteforce al archivo y de estos hay muchos. En todo caso que el archivo no se de por vencido vaya intentado con diferentes caracteres (numerico,alfa,alfanumerico,signos) y si aun no cae pues dele con un buen diccionario. Recuerden que el archivo esta hecho para ser crackeado solo es cuestion de paciencia y elegir el buen camino.
- Codigo Fuentes cifrados
Citar
Solo por ayudar.. una manera mas sencilla de tirar el altrise HTMLock, HTML Protector, AEVITA Strong - Advanced HTML Encrypt ,HTML Guardian, LastBit WebPassword 6.092, Sare2S Webpage Protector, codificacion escape, o url encode (WebMasterScene HTML Protect), y el srcencode de microsoft, y muchos mas sistemas o programas que intentan esconder el codigo fuente.
colocar esto en la barra de direcciones, para ver el codigo fuente escondido (htmlocksrc, HTML protector, etc..)
Code:
y para codificacion con password SOLO EN EL ALTRISE, colocar esto en la barra de direcciones
Code:
Y oprimir el boton de show!!
Para probar dar en los demos de..
http://www.atrise.com/htmlock/
http://www.protware.com/demo_e.htm
http://www.aevita.com/web/lock/samples.htm
http://www.share2s.com/web-encrypt.html
http://www.antssoft.com/htmlprotector/protected_sample.htm
http://lastbit.com/webpsw/sample3.htm
colocar esto en la barra de direcciones, para ver el codigo fuente escondido (htmlocksrc, HTML protector, etc..)
Code:
Código:
javascript:'<xmp>'+document.body.innerHTML
Code:
Código:
javascript:document.write(document.documentElement.innerHTML.split("if(er==1)alert(emsg);return%20false;").join(""));document.forms[0].pwd.value="<HTML><TITLE>";document.forms[0].submit.click();document.forms[0].submit.click();
Para probar dar en los demos de..
http://www.atrise.com/htmlock/
http://www.protware.com/demo_e.htm
http://www.aevita.com/web/lock/samples.htm
http://www.share2s.com/web-encrypt.html
http://www.antssoft.com/htmlprotector/protected_sample.htm
http://lastbit.com/webpsw/sample3.htm
Fuente: http://foro.elhacker.net/index.php/topic,98575.0.html
----------
Aun no lo termino , asi que seguire añadiendo cosas y mientras tanto lo tendre cerrado. Si alguien quiere aportar algo o corregir algo que me envie un privado. Si algun moderador piensa que deberia de estar abierto aunque no lo he terminado aun pues que lo vuelve a abrir.
Saludos,
Gracias a ElJuAnKaR o FeRmO por recordarme de algunos puntos que no tenia anotados aun. Y gracias Sirdarckcat por crear el pequeño tutorial para mostrar codigos "ocultos".