SET 39 Call For Papers

¿Eres un hacker? Si deseas pasar a formar parte de la historia del hacking hispano, colabora con la próxima edición de SET 39 enviándonos un artículo. No esperes más, esta es tu oportunidad de demostrar lo que sabes. Ayúdanos a construir una revista de hackers para hackers. SET Staff

Crackeando L0pthcrack 2.0

      4587

Autor: Madfran
-[ 0x11 ]--------------------------------------------------------------------
-[ Crakeando L0phtcrack 2.0 ]------------------------------------------------
-[ by Madfran ]-------------------------------------------------------SET-21-


      Como crackear el L0phtcrack 2.0 .... o el vendedor que no vende.
      ----------------------------------------------------------------


Hola a todos........

Empezare esta historia avanzando que soy un total aprendiz en estas lides
de crackear programas (ingenieria inversa, lo llaman a esto). No me gusta
utilizar programas de otra gente sin su permiso pero tambien me molesta
tener que pagar por algo que realmente no vale mucho.

No se cuando leereis esto, y tal vez cuando caiga en vuestra manos, este
totalmente obsoleto, viejo y caduco, pero creo que vale la pena escribirlo
por dos motivos :

 1.- Me ha obligado a reflexionar sobre el procedimiento empleado para
     obtener el objetivo que deseaba.

 2.- Puede que sea util a otros, mas que nada como metodo de aproximacion.


CONTEXTO
--------

Un usuario normal y corriente, dentro de una red Ethernet con servidores
Windows-NT (de finales de 1998).
El tal usuario, quiere disponer de un programa corporativo, para hacer una
peque~a prueba.
Se le contesta que tiene derecho a usarlo y por tanto, si lo desea, lo 
comunique por escrito y (previo cargo a su departamento del costo
proporcional de la licencia), se le dara acceso.
El usuario normalito, hace cuentas, se da cuenta del cumulo de burocracia
que se le va a caer encima, y decide buscar la solucion por otro lado.


EMPIEZA LA BUSQUEDA
-------------------

Como os podeis imaginar, para poner tener acceso a un programa corporativo
basta instalarlo en el PC del usuario normalito, pero con una pasword que
de acceso a donde se encuentre el deseado programa. O sea una password de 
administrador de red.
Empieza a buscar en Internet y se entera que hay unos chicuelos que tienen
una web en www.l0phtcrack.com, donde ofrecen una version de evaluacion (la
version 2.0) que permite utilizar todas las funciones gratis, durante 15 dias.

Pues se lo baja para ver que pinta tiene !


PRIMEROS PASOS
--------------

Nada mal el trabajo de estos de L0pht !
Con su programa y algunas utilidades que vienen con el paquete, puedes extraer
el contenido del registro o de los ficheros SAM de la copia de seguridad de
cualquier PC que tengas a mano.
Nuestro heroe se pone a probar con uno !
En el primero encuentra su propia password (bueno,...ya la conocia)
En el segundo .....bingo!, uno de los burros que hacen de administradores
locales se ha dejado la password en el registro.
Rapidamente, hace copia en un fichero.

Todo hay que decirlo. El trabajo no ha hecho mas que empezar. Lo que realmente
tiene nuestro protagonistra, son las hash de la password. Ahora hay que
intentar encontrar algo que cuadre con dicha hash (la password). Pues nada,
ponemos en marcha otra vez el L0pht y esperamos,........mucho tiempo........
............demasiado tiempo.
El administrador no es totalmente idiota y tiene una pasword donde combina
diversos tipos de caracteres. Total, que a los quince dias, la version 2.0
ha caducado y todavia no tiene la ansiada password.
Que hacer ?


OTRA VEZ EN LA CARRETERA
------------------------

Una solucion es obvia. Te conectas con www.L0phtcrack.com, te registras, das
tu tarjeta de credito, y al cabo de un tiempo,.......te han vaciado la cuenta
corriente y a lo mejor te envian el codigo con el cual poner a funcionar el 
flamante rompe passwords.

Vale gracias ! pero.... no hay otra solucion ?

Primero de todo, lo tipico y topico. Se desintala el L0pht, se borra el 
directorio donde se encontraba, se instala de nuevo y .......nada. Los de L0pht
son mas listos y han puesto en algun sitio una informacion con la fecha de la
instalacion del programa. Se podria cambiar la fecha del PC, pero como es una
maquina que, por motivos que no vienen a cuento, no interesa tenerla con una
fecha distinta a la real, el sufrido chaval, ni lo intenta.


SEGUNDOS PASOS
--------------

Nuestro hombre reflexiona..........

Estamos en un Windows-9x o NT.
Estos OS tienen un sistema de almacenamiento llamado registro.
Ahi se guarda mucha informacion sobre programas utilizados en la maquina.

Busquemos en el registro !

Lanza el regedit (o similar) y busca por L0phtCrack....y encuentra :

	HKEY_CURRENT_USER
	  Software
	    LHI
	      L0phtCrack	Predeterminado
				AdminGroupName
				Install
				WordList

Lo de Install es prometedor. Es un registro en DWORD con numeros sin sentido.
No nos olvidemos, que el protagonista de nuestra historia, es neofito en casi
todo y no piensa a lanzarse a mano a desentranyar que se encuentra dentro
del registro Install. Hace lo mas facil. Coge y lo borra.

Lanza de nuevo el L0pht y...... nada. La licencia ha caducado.
Probablemente en caso de que L0pht no encuentre el registro lo busque en otra
parte de la mara~a de archivos windows y lo vuelve a copiar alli.
Se le ocurre una idea. Copia el L0pht en un disquette, en un momento de 
descuido de un companyero de trabajo (o de un subalterno despistado, que mas 
da!), le instala el programa, lanza el regedit, copia el contenido de Install,
desinstala y borra todas las huellas (dactilares y digitales).
Vuelve a su ordenata (el otro zangano todavia esta meando) lanza el regedit
y sustituye el valor de Install por el nuevo valor.
Con dedos temblorosos, lanza el L0pht y ......funciona! Ya tiene 15 dias mas
de gracia !.

En dos dias tiene ya la deseada password e instala el programa que ha
desencadenado toda esta historia.
Pero nuestro amigo ha quedado enganchado en la droga de las password.
Ahora las quiere todas !

Con malas artes consigue un fichero de paswords mas amplio. Dia y noche su PC
trabaja en la busqueda de password,...los dias pasan,.....asalta nuevamente
otro PC para conseguir un nuevo valor de Install,.....los subalternos meones
y los amigos descuidados se le van acabando. Que hacer ?


NUEVA BUSQUEDA
--------------

Ha oido hablar de gente que se dedica a craquear programas (vaya... a quitarles
las protecciones). Empieza a buscar en nuestra amada Internet y descubre que
a esta gente le gusta que su trabajo se denomine ingenieria inversa.
Descubre que hay un tal +ORC (Old Red Cracker), que tiene un academia propia en
FRAVIA. Descubre sus comentarios, su filosofia y su pequenyo manual para
ignorantes y neofitos. Descubre todo un mundo,....desensambladores, editores
hexadecimales,.... decide empezar una nueva tarea.


TERCEROS PASOS
--------------

Primero de todo es buscar las herramientas.

 - Como desamblador se decide por el W32dasm7 (version de evaluacion)
   Al ser de evaluacion tiene el problema de no poder imprimir ni hacer
   proyectos, pero al menos no tiene que luchar contra el tiempo y las fechas
   de caducidad (recordais como empezo la historia, no ?)

 - Para editar, tambien se decide por una version de evaluacion de HexWorkshop
   version 2.5 (www.bpsoft.com)

Despues,....a trabajar !

Lanza la version caducada del L0phtcrak y observa bien los mensajes.
Toma nota de que en la segunda pantalla aparece el siguiente mensaje :

"Your trial version of L0phtCrack 2.0 has expired. You.....bla, bla, bla"
(vete al cuerno !. Ya te he dicho que no pienso pagarla !)

Se queda con la copla del "expired".

Lanza el W32dasm7, pide desamblar el fichero lophtcrack95.exe, bueno,...antes
ha hecho una copia de seguridad.

Mediante el buscador del menu, busca el string "expired"

Encuentra un trozo de codigo mas que interesante.

inicio-codigo*****************************************************************

:00401B3B	E8F4260200	call 00424234

* Referenced by a (U)nconditional or (C)onditional Jump at Addres: :00401A646C

:00401B40	39BDC0000000	cmp [ebp+000000c0], edi
:00401B46	741D		je 00401B65
:00401B48	39BDC4000000	cmp [ebp+000000c4],edi
:00401B4E	7F15		jg 00401B65
:00401B50	57		push edi
:00401B51	57		push edi

*Possible StringData Ref. from Data Dbj ->"Your trial version of L0phtCrack  "
                                        ->"2.0 has expired. You must register"


:00401B52	681CA14400      push 0044A11C

final-codigo******************************************************************

Veamos, veamos..... Que te parece !
Nuestro hombre, no tiene grandes conocimientos de assembler, pero si sabe que
la instruccion "je" significa que el programa va a saltar a algun sitio (a la
direccion 00401B65), si se cumple alguna condicion y que esta direccion esta
despues del mensaje de error.

En este momento se da cuenta que no tiene ni idea de programacion en bajo
nivel. Pues nada ! para esto esta Internet. Se conecta a un buscador y empieza
a buscar, rapidamente encuentra una pagina en espa~ol que da un minicurso
para zopencos de asembler. Lo copia, y tranquilamente lo estudia una semanita,
en su tiempo libre. (esto del cracker, descubre que es una plasta de mucho
cuidado y que es bastante cansado).

Terminado el curso para asnos, le ha quedado en la cabeza que :

 - je, significa jump equal. O sea que salta si se cumple una condicion previa.
 - Que existe otra instruccion, jmp, que significa salta pase lo que pase. 
   (bueno, en ingles se dice de otra forma)

Nuestro amigo piensa ....   (....lo hace a veces), 

" y si cambiaramos el je por un jmp?".

A lo mejor, lo unico que consigue es que no salga la pantallita y el programa
sigue sin funcionar, pero probar no cuesta nada.

Ni corto ni perezoso, lanza el editor de codigo hexadecimal y,.....no 
entiende nada! Aqui no hay ni je ni narices!
Despues del desconcierto inical, se da cuenta que el desemsamblador le ha
dado informacion extra, que no aparece despues en el editor.

Cual es la informacion relevante en el W32dasm7 ? Pues solo lo que es puramente
hexadecimal, o sea :


inicio-codigo*****************************************************************

39BDC0000000
741D	
39BDC4000000	
7F15	
57	
57	
681CA14400

final-codigo******************************************************************


Bueno. Realmente en la pantalla del editor, te aparece algo como asi.

inicio-codigo*****************************************************************

39BDC0000000741D	
39BDC40000007F15	
5757681CA14400

final-codigo******************************************************************

De todas formas se empieza a entender.
Bien ! Asi que el famoso je, en hexadecimal es 74.
Perfecto,....pero.... como sera jmp?

Vuelta al W32dsm7 y busqueda por jmp. Facil ! Sencillo ! en todos los casos
jmp corresponde a EB.

Ahora si. Entramos en el editor hexadecimal, cargamos el L0phtCrack y buscamos
por 74,.....encontramos muchos,....demasiados.

A continuacion la hace un poco mejor y busca por 741D39BDC4000000, ahora si!
Encuentra una unica ocurrencia y la cambia por EB1D39BDC4000000.

Salva el archivo, cierra todo y con el animo encogido lanza el L0phtCrack.

Le sale la pantalla con la advertencia de :

"0 Days until trial version will expire"

Le da al OK y........ EUREKA ! el programa funciona !

A partir de aqui ya no tiene problemas con la busqueda de passwords en el 
mundo Windows-9x o NT,..... solo es cuestion de tiempo y maquinas disponibles.
Paciencia la tiene, ........... los ordenadores son incansables, .....la red
a sus pies ! (Oh! maestro de maestros y genio de la informatica !).


PD: El porque del titulo.

No entiendo como L0phtCrack pretende ganarse la vida vendiendo este tipo de
programas, ya que por definicion, un hacker (o uno que empiece pero tenga
espiritu de hacker) no va a pagar un duro por una historia (por muy 
L0pht-pu~etas que sea) que finalmente puede obtener gratis con paciencia, 
esfuerzo personal y curiosidad.

Pero como parece que los negocios les van bien, (en Septiembre del 99 iban por
la version 2.5), sospecho que sus verdaderos clientes son los administradores
de redes, que los compran con el dinero de las corporaciones y despues los 
utilizan para divertirse buscando passwords (o los olvidan en el cajon de los
recuerdos).
Si alguna vez os pasais por el despacho de algunos de estos administradores,
vereis la cantidad de tonterias que tienen y encima las tratan de alto secreto.

Nuestro companyero de aventuras, no vendio su programa crakeado ni lo 
intercambio. Simplemente lo utilizo para sus fines, paso la informacion a 
otros y (de pasada) descubrio un mundo nuevo
(recomiendo una visita a los de +FRAVIA, donde entre otros muchos crackers
podreis encontrar a SiuL+Hacky y sus articulos).


madfran


*EOF*