La situación cotidiana habitual – un antiguo archivo, la contraseñas olvidada ya desde hace mucho tiempo, ¿qué se puede hacer? Se puede encontrarlo probando todas contraseñas posible en un tiempo apropiado usando GPU, claro, si es una contraseña humana y no 8 caracteres con una letra mayúscula, una letra mayúscula, una cirilica, una inglesa, un número, ¡un carácter especial! También puede hacerlo en la CPU y no en la GPU, pero en lugar de meses, tomará años, se trata de los núcleos en los procesadores, solo hay una docena de núcleos en CPU y hay miles en la tarjeta de video.
A John-the-ripper lo elegi porque él (John) al menos daba signos de vida – funcionaba, pero por supuesto tiene muchas rarezas, ¡pero primero sobre las rarezas de Ubuntu 22!
En Ubuntu podemos instalarlo desde los repositorios
sudo apt-get install john-the-ripper
pero es la versión anterior 1.8 donde no hay tiene configuraciones modernas en absoluto
Se puede instalarlo a través de snap
sudo snap install john-the-ripper
No me gusta snap y ahora es obio porque. Si instalas a través de snap, no puedes cambiar los archivos del paquete instalado en tu sistema, bueno, de ninguna manera, incluso si los desarrolladores escriben hay que editar la configuración, snap no lte permitirá hacer esto. Puedes copiar la configuración a otra ubicación, editarla y ejecutarjhon asi
john --config=./myjohn.conf ...
Pero pero hay otro problema John-the-ripper el de snap en Ubuntu no quiere, no puede trabajar con OpenCL
john --list=opencl-devices
Error: No OpenCL-capable platforms were detected by the installed OpenCL driver. Error: No OpenCL-capable devices were detected by the installed OpenCL driver.
Y, por lo tanto, es necesario instalarlo de la tercera manera de acuerdo con las instrucciones de aquí https://github.com/openwall/john/tree/bleeding-jumbo/doc esas INSTALL-UBUNTU
Ya tengo los drivers de Nvidia instalados, por supuesto, y para ser honesto, no sé qué me ayudó… aquí todos los comandos de las instrucciones
mkdir -p ~/src
sudo apt-get -y install git build-essential libssl-dev zlib1g-dev
esa cosa
sudo apt-get -y install nvidia-opencl-dev
ya estaba instalada
cd ~/src
git clone https://github.com/openwall/john -b bleeding-jumbo john
cd ~/src/john/src
./configure && make -s clean && make -sj4
Y aqui vemos
./src/john/run/john --list=opencl-devices
despues del CPU
Platform #1 name: NVIDIA CUDA, version: OpenCL 3.0 CUDA 11.7.101 Device #0 (2) name: NVIDIA RTX A4500 Device vendor: NVIDIA Corporation Device type: GPU (LE) Device version: OpenCL 3.0 CUDA Driver version: 515.65.01 [recommended] Native vector widths: char 1, short 1, int 1, long 1 Preferred vector width: char 1, short 1, int 1, long 1 Global Memory: 20183 MiB Global Memory Cache: 1568 KiB Local Memory: 48 KiB (Local) Constant Buffer size: 64 KiB Max memory alloc. size: 5045 MiB Max clock (MHz): 1650 Profiling timer res.: 1000 ns Max Work Group Size: 1024 Parallel compute cores: 56 CUDA INT32 cores: 3584 (56 x 64) Speed index: 5913600 Warp size: 32 Max. GPRs/work-group: 65536 Compute capability: 8.6 (sm_86) Kernel exec. timeout: yes NVML id: 0 PCI device topology: 0a:00.0 PCI lanes: 16/16 Fan speed: 54% Temperature: 79°C Utilization: 100%
no entendi la linea
CUDA INT32 cores: 3584 (56 x 64)
debería haber 7168 de CUDA, exactamente el doble!
Estrategia de adivinación de contraseñas
Primero debe crear un archivo con una contraseña HASH
./src/john/run/rar2john test_en.rar > ./output.txt
Ese fue para RAR y ese para ZIP
./src/john/run/zip2john test_en.rar > ./output.txt
Tenemos
test_en.rar:$rar5$16$26c27c1cc4aebf2737c7fc0c28afec80$15$260bb794536e9b71c7a28ee68587776e$8$3c88574d72c1341a
De forma predeterminada, John está afilado para seleccionar contraseñas en inglés, incluso hay una lista de contraseñas de uso frecuente, para la prueba, por supuesto, simplificaré el trabajo para él, seleccionaremos una contraseña solo de letras minúsculas en inglés
Para esto en el archivo ./src/john/run/john.conf
aca
[Subsets] ... # Subsets mode charsets 0-9. These are literal strings. TAB and space # characters can be used as long as they do not come first or last. The only # "magic" used here is \U+HHHH or \U+HHHHH for any Unicode character (except # the very highest private area that has six hex digits). For example, you
en lugar de 6-ta línea (están ahí del 0 al 9) añadimos
6 = abcdefghijklmnopqrstuvwxyz
Aquí, por cierto, el alfabeto ruso ya está escrito en la cuarta línea. ¡Tendrás que jugar con esto para escribir los caracteres más probables de diferentes idiomas para obtener resultado mas rapido!
y lo ejecuto primero en la tarjeta de video
./src/john/run/john --subsets=6 --format=rar5-opencl ./output.txt
–format=rar5-opencl – aca 5 porque el archivo de la última versión de WinRAR y opencl para que se pueda procesar en la tarjeta de video
–subsets=6 – 6ta linea de symbolos
empieza el calculo
[Device 2: NVIDIA RTX A4500 Using default input encoding: UTF-8 Loaded 1 password hash (RAR5-opencl [PBKDF2-SHA256 OpenCL]) Cost 1 (iteration count) is 32768 for all loaded hashes LWS=32 GWS=131072 (4096 blocks) Press 'q' or Ctrl-C to abort, 'h' for help, almost any other key for status 0g 0:00:00:00 1.00% (4) (ETA: 11:58:14) 0g/s 0p/s 0c/s 0C/s Dev#2:53°C 0g 0:00:00:03 19.73% (4) (ETA: 11:58:29) 0g/s 42974p/s 42974c/s 42974C/s Dev#2:56°C grgrgggg..yyxn
el número 4 entre paréntesis indica cuántos caracteres de la contraseña se están ordenando actualmente, también muestra la temperatura de la tarjeta, por si acaso
Se puede obtener información más detallada haciendo clic s
Remaining hashes 1 (0 removed) Remaining salts 1 (0 removed) Time in seconds 817 (476.01 new) Successful guesses 0 (0 new, 0 g/s) Passwords tested 52953088 (30670848 new, 64433 p/s) dupe suppressor is disabled and it accepted 0 (0.00%, 0 p/s) rejected 0 (0.00%, 0 p/s) out of total 0 (0 p/s) Hash computations 52953088 (30670848 new, 64433 c/s) Hash combinations 52953088 (30670848 new, 64433 C/s)
La mayoría de los botones solo actualizan la vista previa donde se está moviendo actualmente
0g 0:03:45:45 1.62% (7) (ETA: 2022-09-14 03:51) 0g/s 65714p/s 65714c/s 65714C/s Dev#2:82°C jehhhjheehj..ekkkkhhhehh
¡Tengo 7 letras en mi contraseña, y cuando elgo a adivinar 7 letras, me di cuenta de que me he sobrepasado! En el ETA (tiempo estimado de llegada en inglés) me mostró en cinco días: es una búsqueda muy larga, pero luego me di cuenta de, no de forma como acelerarlo mas rapido, si no de por qué le piden que cambien la contraseña cada 3 meses, a pesar de que es ya muy complicado, ¡porque no hay equipo en la Tierra que pueda detectar una contraseña compleja por fuerza bruta en tres meses!
aquí recuerdo Problema del trigo y del tablero de ajedrez, como ejemplo de lo que a primera vista parecía insignificante, pero luego resultó enorme e imposible -y aquí, por cierto, empezó con sólo 2 a la potencia – y aquí empieza con 26 letras y está elevado a una potencia con la suma de cada carácter…. uh, por mi test haré una contraseña de 4 letras minúsculas!!!
Y ya
0g 0:00:00:13 39.84% (4) (ETA: 16:00:17) 0g/s 62966p/s 62966c/s 62966C/s Dev#2:58°C oywa..bhxu itco (test_en4.rar) 1g 0:00:00:14 54.18% (4) (ETA: 16:00:10) 0.07137g/s 65489p/s 65489c/s 65489C/s Dev#2:59°C lxfc..emdz Use the "--show" option to display all of the cracked passwords reliably Session completed.
¡La tarjeta de video encuentra la contraseña itco de cuatro letras minúsculas en inglés en 17 segundos!
Aquí, john tiene una cosa rara, recuerda el HASH para el que encontró la contraseña y ya no los busca solo dice.
No password hashes left to crack (see FAQ)
Y no te muestra la contraseñas ya encontradas
./src/john/run/john --show
Password files required, but none specified
Pero las contraseñas están en su carpeta en el archivo john.pot
cat ./src/john/run/john.pot
$rar5$16$7f018d3b28b056d9d12001fb022c5a2e$15$59f623db6fa6534d7fe26f2681c6b8ba$8$2bde8da77cc53370:itco
Aquí está al final de la línea.
Y para que podamos empezar la busqueda de contraseñas nuevamente, debemos eliminar este archivo
rm ./src/john/run/john.pot
Pero hay algunas rarezas útiles en john, puede reiniciar la búsqueda de contraseña desde el último lugar cuando se interrumpió o se bloqueó con un error
./src/john/run/john --restore
Aquí lo raro es que, no hay ninguna configuración, es decir, solo funciona con ultima busqueda, y no todos los demás intentos.
¿Que cuesta agregar una letra más? Cada letra siguiente solo aumenta 26 veces el tiempo de busqueda
5 – 7 minutos
6 – 3.2 horas
7 – 3.4 dias
8 – 89 dias
Por eso, a todos se les dice que creen una contraseña de 8 caracteres; ¡por qué, nadie tendrá ganas de buscarla! Y si agrega una letra mayúscula, ya será 52 a exponenciar, y si es una cirilica (sin especificar minúsculas o mayúsculas), ¡entonces 118 AAAAAAA!
Y como lo hace en CPU
17 segundos 62966p/s – GPU NVIDIA RTX A4500
317 segundos 2767p/s – CPU AMD Ryzen 7 3700X
En una tarjeta de video, es casi 18 veces más rápido: puede obtener una contraseña en un par de meses en lugar de años 🙂
Qué se puede hacer?
Recuérdese en los años de creación del archivo, tal vez creó contraseñas solo con letras; esto simplifica enormemente el proceso. Si luego mezcló letras de diferentes idiomas e incluso insertó caracteres especiales entonces … pero por otro lado, durante años no supo y no recordó sobre este archivo que le cuesta adivinarlo durante un año, y ni siquiera lo ba hacer usted, sino su tarjeta de video: ¡aquí y el precio del problema (tarjeta de video) no es importante en comparación con la nostalgia… y la electricidad también cuesta!
Puede humillar asi mismo por completo y decidir que hizo contraseña de una palabra sin números sin mayúscula, entonces una selección por diccionario servirá
Encuentre un diccionario de su idioma en una lista y
./src/john/run/john –wordlist=./word_rus.utf8 –format=rar-opencl ./output.txt
¡¿Quizas si?! Pero seguro a 100% que no!!!
Deja una respuesta