
            ---------------------------
            -   CRACKEANDO PASS EN    -
            -   UNIX CON NUESTRO      -
            -   AMIGO JOHN            -
            -             by DDiego   -
            ---------------------------



JOHN THE RIPPER 1.6

-Bueno antes de empezar a sacar pass aclarar unas cosas:

Debes tener en cuenta varias cosas respecto a sacar  pass en unix, habras
visto mil textos  de buscar las pass en unix.  Si ese archivo que has cogido
de un ftp que tiene pinta de estar llena de pass con un  permiso de lectura
para todos los colegas casi que no te vale para nada.Existe la  posibilidad de
que  esten en que el archivo /etc/passwd   pero (esto solo lo encontraras en
los unix de la abuela).

El cifrado que usan en unix es DES "Data Encryption Standard", es un cifrado
muy conocido y que surge en 1977 por  IBM, en al primeras distribuciones de
linux aparecian las contraseas cifradas por DES en /etc/passwd, con acceso
para todos los usuarios esto era necesario ya que contenian su identificacion, si
tu sistema nombre de acceso, ahora se emplea shadowing

[root@localhost /]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
  1  2 3 4  5     6   --- 7 ---

Explicare un poco que significa cada cosa:

1 Login - es el nombre del usuario
2 La contrasea cifrada en este caso o  resea de la contrasea(ea ea)
3 Id del usuario, aqui almacena el numero de identificacion del usuario, a la
   hora de selccionar el I_D se puede seleccionar un numero de 0 a 65534 , el
   0 significa tener privilegios como root, estas ID se pueden restringir por
   ej de 500-600.
4 Group id "GID", Asignan la identificacion del grupo del usuario
5 General Electric Comprehensive Operating System (GECOS), es el nombre real
   del usuario
6 Donde esta ubicado el directorio personal del usuario
7 La shell que usa el usuario cada vez que se conecta "zsh,ksh,tcsh,bash,ash,
   csh etc ...

Bueno a que pensabas que tenias las pass a punto para sacar, pues lo siento
mucho pero ese no ves esa x es que los pass estan ocultos en /etc/shadow

-Pero si en lugar de eso ves:

root:FXWUuZ.vwXttg.:0:0:root:/root:/bin/bash

FXWUuZ.vwXttg esto seria la clave encriptada, ya puedes empezar a
crackear alguna cosilla, dudo que encuentres sistemas que no usen shadowing .


------------------Instalacin

* Nota: Pongo la parte  de instalacin teniendo en cuenta para los que acaban
de empezar en linux:
Primero te tienes que bajar el programa puedes ir a la web oficial
http://www.openwall.com/john/
Ahora lo siguiente es descomprimir(gunzip)  y desempaquetar (tar) el archivo + inf man tar
[root@localhost crackeadores]# gunzip -c john-1.6.tar.gz | tar xvf -
john-1.6/src/AFS_fmt.c
john-1.6/src/BF_fmt.c
john-1.6/src/BF_std.c
john-1.6/src/BSDI_fmt.c
john-1.6/src/DES_bs.c
john-1.6/src/DES_bs_b.c
john-1.6/src/DES_fmt.c
john-1.6/src/DES_std.c
john-1.6/src/LM_fmt.c
john-1.6/src/MD5_fmt.c
...........
Ahora entras en /john-1.6/src, y pones  make
[root@localhost src]# make
To build John the Ripper, type:
        make SYSTEM
where SYSTEM can be one of the following:
linux-x86-any-elf        Linux, x86, ELF binaries
linux-x86-mmx-elf        Linux, x86 with MMX, ELF binaries
linux-x86-k6-elf         Linux, AMD K6, ELF binaries
linux-x86-any-a.out      Linux, x86, a.out binaries
linux-alpha              Linux, Alpha
linux-sparc              Linux, SPARC
freebsd-x86-any-a.out    FreeBSD, x86, a.out binaries
freebsd-x86-k6-a.out     FreeBSD, AMD K6, a.out binaries
freebsd-x86-any-elf      FreeBSD, x86, ELF binaries
freebsd-x86-mmx-elf      FreeBSD, x86 with MMX, ELF binaries
freebsd-x86-k6-elf       FreeBSD, AMD K6, ELF binaries
openbsd-x86-any          OpenBSD, x86
openbsd-x86-k6           OpenBSD, AMD K6
solaris-sparc-gcc        Solaris, SPARC, gcc
solaris-sparc-v8-cc      Solaris, SPARC V8, cc
...........
ahora make SYSTEM (en mi caso no rula si no te funciona pon:
make generic
[root@localhost src]# make generic
rm -f arch.h
gcc -c -Wall -O2 -fomit-frame-pointer detect.c
gcc -s detect.o -o detect
./best.sh "make" \
        "DES_fmt.o DES_std.o" \
        "MD5_std.o" \
        "BF_std.o"
Compiling: DES benchmark (code version #1)
................
(Ahora si, solo tienes que ir a /john-1.6/run
ahi esta el programa  escribe ./john para ver las psibilidades
[root@localhost run]# ./john

John the Ripper  Version 1.6  Copyright (c) 1996-98 by Solar Designer

Usage: ./john [OPTIONS] [PASSWORD-FILES]
-single                   "single crack" mode
-wordfile:FILE -stdin     wordlist mode, read words from FILE or stdin
-rules                    enable rules for wordlist mode
-incremental[:MODE]       incremental mode [using section MODE]
-external:MODE            external mode or word filter
-stdout[:LENGTH]          no cracking, just write words to stdout
-restore[:FILE]           restore an interrupted session [from FILE]
-session:FILE             set session file name to FILE
-status[:FILE]            print status of a session [from FILE]
-makechars:FILE           make a charset, FILE will be overwritten
-show                     show cracked passwords
-test                     perform a benchmark
-users:[-]LOGIN|UID[,..]  load this (these) user(s) only
-groups:[-]GID[,..]       load users of this (these) group(s) only
-shells:[-]SHELL[,..]     load users with this (these) shell(s) only
-salts:[-]COUNT           load salts with at least COUNT passwords only
-format:NAME              force ciphertext format NAME (DES/BSDI/MD5/BF/AFS/LM)
-savemem:LEVEL            enable memory saving, at LEVEL 1..3



-------"Single Crack" Mode

Lo primero que probaremos es el modo single, es el modo ms rpido
y en ocasiones eficad,esta saca informacion del login para obtener
pass

seria as:
[root@localhost run]# ./john -single passwd
Loaded 1 password (Standard DES [24/32 4K])
guesses: 0  time: 0:00:00:00 100%  c/s: 215  trying: SULLEiRO - atjjqywu


--------Word list Mode --  jugando con diccionarios

Este es otro modo que puede ser efectivo y rapido, y es con diccionarios
, y es muy simple de utilizar:

[root@localhost run]# ./john -wordfile:list.txt  passwd
guesses: 0  time: 0:00:00:00 100%  c/s: 215  trying: SULLEiRO - atjjqywu
(Lo he aadido yo al diccionario claro)

John admite abreviaciones puedes poner ./john -w:list.txt  passwd

Tambien puedes aadirle rules para que aada cambios a las palabras de la lista
tales como  mayusculas, nmeros, letras, caracteres especiales tipo  Pepe   -   PePe^99

ej:
[root@localhost run]# ./john -wordfile:list.txt  -rules passwd.txt
Loaded 1 password (Standard DES [24/32 4K])
guesses: 0  time: 0:00:00:00 100%  c/s: 186  trying: Prueba6 - Pruebing

Si quieres usrar rules a tu gusto y que aada los caracteres y el tipo de
caracteres que quieras simplemente tienes que editar el john.ini y cambiar los
valores segun veas

 Simple Commands
-----------------

:	no-op: do nothing to the input word
l	convert to lowercase
u	convert to uppercase
c	capitalize
C	lowercase the first character, and uppercase the rest
t	toggle case of all characters in the word
TN	toggle case of the character in position N
r	reverse: "Fred" -> "derF"
d	duplicate: "Fred" -> "FredFred"
f	reflect: "Fred" -> "FredderF"
{	rotate the word left: "jsmith" -> "smithj"
}	rotate the word right: "smithj" -> "jsmith"
$X	append character X to the word
^X	prepend character X to the word

estos son solo unos pocos comandos que puedes usar, pero hay mas puedes verlo
en el documento RULES que  viene dentro de /john-1.6/doc, tambien puedes
modificar otros modos de crackeo.


--------- Especificando usuarios

Si el fichero que tienes es grande y solo te interesa desencriptar un usuario
o varios usamos -user:-usuario1 y si son varios separados por comas de esta
forma:

[root@localhost run]# ./john -wordfile:list.txt  -rule -users:-root,prueba6
passwd.txt
Loaded 1 password (Standard DES [24/32 4K])
guesses: 0  time: 0:00:00:00 100%  c/s: 186  trying: Prueba6 - Pruebing



--------- Especificando tipos de shell

Simplemente usaremos el comando -shells: con los tipos de shell separados entre
comas, como veremos mas abajo, tambien vamos a intertar crackearlo por fuerza bruta
este metodo lo veremos mas abajo pero os adelanto que se trata de usar todas las posibles
combinaciones de caracteres. Voy a probar con todos los tipos de shell menos las  bash
(que es la que tiene los usuarios de mi archivo passwd, para  saber el tipo de shell
que usa cada usuario solo tienes que mirarlo en /etc/passwd)

[root@localhost run]# ./john -i:all -shells:sh,tcsh,csh passwords
Loaded 0 passwords, exiting...
ummm que pasa,  claro no encuetra porque no tengo de ese tipo

sin embargo si la aado
[root@localhost run]# ./john -i:all -shells:bash,sh,tcsh,csh passwords
Loaded 2 passwords with 2 different salts (FreeBSD MD5 [32/32])
........... sigue trabajando


---------- Jugando con los privilegios

Tambien puede hacer busquedas para los prvilegios que tengan por ejemplo

root:$fmgWhSAXtvBGGhoMJ;;tL:OYrkjpy0:0:0:root:/root:/bin/bash
el  :0:0  del root
pepe:$1$v1xZuKOx$ZfgyfjB90NnzGRvh5PWhN/:502:506::/home/pepe:/bin/bash
o el :502:506: del pobre pepe
[root@localhost run]# ./john -w:list.txt -users:0  passwords
Loaded 1 password (FreeBSD MD5 [32/32])
./john -w:list.txt -users:0  passwords es lo mismo que poner
./john -w:list.txt -users:root  passwords

Puedes  mirar los privilegios del grupo
./john -w:list.txt -groups:0,1  passwords


--------- Incremental mode

Este es modo mas potente para crackear los pass, usas desde todos las posibles
combinaciones de caracteres, hasta las seleccionadas por  ti solo nmeros o
letras
por ejemplo

COMANDOS:

:all: Todas las letras, nmeros y caracteres especiales (Fuerza Bruta)
:digits: Solo  numeros
:alpha: Solo letras

ejemplos:
[root@localhost run]# ./john -incremental:all    passwd.txt
guesses: 0  time: 0:00:24:06  c/s: 66176  trying: atl_7 - cj3p7
tambien puedes poner:
./john -i    passwd.txt

[root@localhost run]# ./john -incremental:digits    passwd.txt

[root@localhost run]# ./john -incremental:alpha    passwd.txt

Nota: Si quieres cambiar los valores y y asi limitar el numero de caracteres
a tu gusto puedes cambiarlo en  en el john.ini en la seccion  Incremental mode
puedes cambiar la logitud de busqueda  de pass en Minlen y MaxLen


-------- /etc/shadow lo ms comn

Es  lo que te vas a encontrar, lo puedes comprobar en tu sistema o shell que
den por ahi, eso si te dejan acceder a /etc, lo que es seguro es que /etc/shadow
no tiene permisos de lectura para todo el mundo, sera por algo no?,

[root@localhost /etc]# ls -l shadow
-r--------    1 root     root          729 abr  9 15:25 shadow

Bueno supongamos que ya tienes el archivo shadow, ahora vamos a hacer que
Johnnie Walker jeje, no ese no jaja haga su trabajo para ello usaremos
unshadow y cogeremos el archivo shadow y lo convertiremos en un archivo
llamado passwords (puedes llamarlo como quieras=> llamalo colocondeverano)

[root@localhost run]# ./unshadow
Usage: ./unshadow PASSWORD-FILE SHADOW-FILE
[root@localhost run]# ./unshadow passwd shadow > passwords
root@localhost run]#
Ahora ya tenemos el archivo passwd creado
si antes teniamos un shadow que contenia algo asi
pepe:$1$v1xZuKOx$ZfgyfjB90NnzGRvh5PWhN/:11421:0:99999:7:-1:-1:-1073846596
ahora con esto hemos creado un archivo passwods que lo trae asi
pepe:$1$v1xZuKOx$ZfgyfjB90NnzGRvh5PWhN/:502:506::/home/pepe:/bin/bash
ahora ya podemos usar el John

[root@localhost run]# ./john -w:list.txt  passwords
Loaded 3 passwords with 3 different salts (FreeBSD MD5 [32/32])
Unpassword       (juanito)
Otropassord      (root)
prueba           (pepe)
guesses: 3  time: 0:00:00:00 100%  c/s: 14.00  trying: prueba

jeje el ultimo es el de verdad

-------- Revisando los pass que llevas crackeados

Para ver los pass que  llevas crackeados simplemente tienes que usar -show asi:
[root@localhost run]# ./john -show passwords
root:Unpassword:0:0:root:/root:/bin/bash
juanito:Otropassword:501:501:Juan:/home/juanito:/bin/bash
pepe:prueba:502:506::/home/pepe:/bin/bash

3 passwords cracked, 0 left
[root@localhost run]#



-------- Reanudando el crackeo

Claro que muchas veces si crackeas un pass   puede que te lleve ms tiempo
del que pensabas pasa ellos usaremos restore

ej:
[root@localhost run]# ./john -i:all passwd.txt
Loaded 1 password (Standard DES [24/32 4K])
guesses: 0  time: 0:00:00:03  c/s: 2005  trying: boomoo - matassa
Session aborted
He parado el programa calcando Ctrl + c,   hostia y ahora que ess que tenemos
que volver a empezar desde 0, pues claro que no, haz un ls y mira el archivo
restore, tu que crees para que sirve??
A continuacion podemos poner
[root@localhost run]# ./john -restore              (recuerda que john admite
Loaded 1 password (Standard DES [24/32 4K])         abreviaturas tipo -re)

-------- Tiempo modo -test

Pues el tiempo eso varia segun la suerte, la maquina y el metodo que utilices,
aunque si la suerte esta de tu parte da igual la maquina que tengas, en el ejemplo que
puse antes guesses: 0  time: 0:00:24:06  c/s: 66176  trying: atl_7 - cj3p7
con amd atlhon a 800 320  RAM
Otra cosas de la que depende tambien es el encriptado todo depende del
sistema y que encriptado use para sus claves, para  ver la velocidad de cada
uno en distintos sistemas usamos -test asi por ejemplo:

[root@localhost run]# ./john -test

Benchmarking: Standard DES [24/32 4K]... DONE
Many salts:     79298 c/s real, 79298 c/s virtual
Only one salt:  74666 c/s real, 74666 c/s virtual

Benchmarking: BSDI DES (x725) [24/32 4K]... DONE
Many salts:     2794 c/s real, 2794 c/s virtual
Only one salt:  2766 c/s real, 2766 c/s virtual

Benchmarking: FreeBSD MD5 [32/32]... DONE
Raw:    1533 c/s real, 1533 c/s virtual

Benchmarking: OpenBSD Blowfish (x32) [32/32]... DONE
Raw:    139 c/s real, 139 c/s virtual

Benchmarking: Kerberos AFS DES [24/32 4K]... DONE
Short:  68860 c/s real, 72883 c/s virtual
Long:   189913 c/s real, 190950 c/s virtual

Benchmarking: NT LM DES [24/32 4K]... DONE
Raw:    566789 c/s real, 566789 c/s virtual


-------- Donde coo estan las pass en otros sistemas

Bueno aqui os dejo una lista de donde suelen estar las pass en otros sistemas
nix, si quieres ver en win podeis mirar el articulo de pass de leon01

Linux       /etc/passwd         /etc/shadow
AIX 3   /etc/security/passwd o  /tcb/auth/files/<first letter of
username>/<username>
A/UX  3.0s      /tcb/files/auth/?/
QNX       /etc/passwd       /etc/shadow   /etc/opasswd /etc/oshadow
SunOS4.1+c2     /etc/security/passwd.adjunct
SunOS 5.0       /etc/shadow
Solaris 2.x  /etc/shadow
ConvexOS 10     /etc/shadpw
ConvexOS 11     /etc/shadow
DG/UX           /etc/tcb/aa/user/
EP/IX           /etc/shadow
HP-UX           /.secure/etc/passwd
BSD4.3-Reno     /etc/master.passwd
IRIX 5          /etc/shadow
OSF/1           /etc/passwd[.dir|.pag]
SCO Unix #.2.x  /tcb/auth/files/<primera_letra de user>/<user>
System V Release 4.0     /etc/shadow
System V Release 4.2     /etc/security/* database
Ultrix 4                 /etc/auth[.dir|.pag]
UNICOS                   /etc/udb
SCO Unix 3.2.x           /tcb/auth/files/[first letter

-------- Otros crackeadores

Hay multitud de crackeadores:

-Crack hecho en c y perl,  descifra contraseas  encriptadas mediante DES, e
incluso puede usarse de forma remota, http://www.users.dircon.co.uk/~crypto/
-Lard otra herramienta mas en
http://www.giga.or.at/pub/hacker/unix/kc9_11.tar.Z
- PerlCrack Un crackeador en perl lo podeis encontrar en
http://www.netrom.com/~cassidy/, asi como otros tantos



XXXXXXXXXXXXXXXX
X N0b13Z4 H4cK X
XXXXXXXXXXXXXXXX