Varios modos de ataque de hashcat

hashcat tiene varios modos de ataque. Para ver la ayuda completa con el parámetro – help, puede ver la tabla "Modos de ataque", como se muestra a continuación:

# Mode
0 recto
1 combinación
3 fuerza bruta
6 lista de palabras híbrida + máscara
7 máscara híbrida + lista de palabras

1.Straight

Este modo de ataque también se conoce como" ataque de diccionario ". No hay mucho que decir, dado un diccionario, hashcat leerá el contenido del diccionario línea por línea, calculará el valor hash de cada línea y lo comparará con el valor hash objetivo.

Ejemplo:

     hashcat   -a   0   -m   400   example400.hash   example.dict 

2.combinación

Baidu me dijo que combinación es un sustantivo, que significa: "combinación; consorcio; combinación de contraseñas; ropa interior". Este modo de ataque es en realidad muy simple: combina el contenido de dos diccionarios de contraseñas. El uso de este modo de ataque requiere especificar dos diccionarios de contraseñas. Supongamos que tenemos dos diccionarios de contraseñas dict1.txt y dict2.txt, cuyos contenidos son:

     caza 
    Gato 
    rainbow 

y

     paris 
    rock 

entonces el comando:

     hashcat   -m   0   -a   1   hash.txt   dict1.txt   dict2.txt 

El diccionario que realmente se intentó fue:

     huntingparis 
    Roca de caza 
    kittyparis 
    kittyrock 
    rainbowparis 
    rainbowrock 

Las palabras en dict1.txt están a la izquierda y las palabras en dict2.txt están a la derecha, un total de 3×2=6.

Los parámetros relacionados con este patrón son:

     -j,   - -rule-left 
    -k,   - -rule-right 

-La regla después de j actúa a la izquierda, la regla después de-k actúa a la derecha, como agregar el parámetro-j' $-', entonces el diccionario real intentado es:

     hunting-paris 
    Roca de caza 
    Kitty-París 
    kitty-rock 
    rain-bowparis 
    rain-bowrock 

Añadir el parámetro-j'^!', Entonces el diccionario real intentado es:

    ! cazaParís 
  ! roca de caza 
  ! Gatito París 
  ! kittyrock 
  ! Arco iris París 
  ! rainbowrock 

agrega el parámetro-k '^ >', entonces el diccionario real intentado es:

     caza > paris 
    caza > roca 
    Gato > París 
    kitty > rock 
    lluvia > bowparis 
    Lluvia > bowrock 

¿Cuál es esta regla? El uso de "$" y "^" es similar a las expresiones regulares, entonces ¿son regulares? De hecho, no es así. Las reglas de hashcat se implementan por sí mismas, lo que es otra gran cantidad de contenido. Para obtener más detalles, consulte Ataque basado en reglas

3. Fuerza bruta

Intente un conjunto de caracteres dado Varias combinaciones. Según la wiki oficial de hashcat, este método está obsoleto y ha sido completamente reemplazado por ataque de máscara, por lo que no se realizará ninguna investigación,

4. Ataque de máscara

Este es un método de ataque relativamente novedoso. El ejemplo es el siguiente:

     hashcat   -a   3   -m   0   md5.hash  ? ¿Yo? ¿Yo? ¿Yo? ¿Yo? l 

Aunque según la tabla "Modos de ataque", -A 3 corresponde a la fuerza bruta, en realidad, -A 3 utiliza el ataque de máscara. El ataque de máscara puede considerarse como una fuerza bruta avanzada. El parámetro

-m se utiliza para especificar el tipo de función hash y el valor md5 se almacena en el archivo md5.hash. La clave es la cadena final "? l? l? l? l? l? l". Dicha cadena se llama máscara.

Una máscara es una cadena que consta de varios marcadores de espacio. "? l" es un marcador de espacio, donde "?" es una palabra clave, que se utiliza para modificar el siguiente "l". Juntos, "? l" representa un conjunto de caracteres. Además de "? l", también puede haber. "? u", "? d", "? h", "? h", "? s", "? a" y "? b" representan el conjunto de caracteres que se muestra en la siguiente tabla.

0 – 0xff
? Conjunto de caracteres
l ABCDEFGHIJKLMNOPQRSTUVWXYZ
u ABCDEFGHIJKLMNOPQRSTUVWXYZ
d 0123456789
h 0123456789abcdef
h 0123456789abcdef
s ! "#$% & ' () * +, -. /:; < = >? @ [\] ^_` ~ {|}
a ? ¿Yo? ¿Usted? ¿d? s
b

De esta manera, entendemos que "? l? l? l? l? l" es en realidad equivalente a un diccionario de contraseñas:

 aaaaa 
aaaab 
... 
zzzzz 

De la misma manera, "? l? u? d" es equivalente a un diccionario de contraseñas:

     aA0 
    aA1 
  ... 
    bA0 
  ... 
    zZ9 

El conjunto de caracteres en la tabla anterior está incorporado a hashcat, también podemos especificar el conjunto de caracteres nosotros mismos:

     - -custom-charset1= conjunto de caracteres 1 
    - -custom-charset2= conjunto de caracteres 2 
    - -custom-charset3= conjunto de caracteres 3 
    - -custom-charset4= conjunto de caracteres 4 

El parámetro – custom-charsetN puede abreviarse como-n, por ejemplo – custom-charset1 puede abreviarse como-1. El conjunto de caracteres especificados con-n se especifica en la máscara como un marcador de plazo "? N", como:

     -1   abc123  ? 1? 1? 1 

es equivalente a un diccionario de contraseñas:

     aaa 
    aab 
  ... 
    aa3 
  ... 
    333 

-N Además de la cadena que representa el conjunto de caracteres, también puede ser un archivo que termina con. hcchr, en el que se almacena la colección de caracteres. hashcat viene con muchos archivos. hcchr en el directorio charsets/del paquete de instalación.

El conjunto de caracteres representado por el marcador de plazo "??" es el propio "?". Además, cuando los caracteres restantes se utilizan como marcadores de espacio, representan los caracteres en sí. Por ejemplo, "? lwerner? d" es equivalente al diccionario de contraseñas:

     awerner0 
    awerner1 
  ... 
    zwerner9 

Con el conocimiento anterior, es fácil entender la máscara. Una máscara consta de varios marcadores de espacio, cada marcador de espacio es un conjunto de caracteres y una máscara es una combinación de cada conjunto de caracteres de marcador de espacio. El número de marcadores de espacio es igual a la longitud de la contraseña. ¿Cuáles son los beneficios de este diseño en comparación con simplemente dar un conjunto de caracteres y una longitud de contraseña?

Supongamos que conocemos la contraseña de alguien con 7 dígitos, el primer dígito es una letra mayúscula, los siguientes 3 dígitos son letras minúsculas y los últimos 3 dígitos son números. Si se trata de un descifrado por fuerza bruta tradicional, se requieren conjuntos de caracteres A-Z, A-Z y 0-9, con un total de 62 caracteres, y se deben intentar hasta 62^7=3 521 614 606 208 veces, lo que es un billón. nivel. Cuando se utiliza máscara para describir esta contraseña, es "\u\l\l\l\d\d\d", que es fácil de calcular. Hay un total de (26^4) × (10^3) =456 976 000 posibilidades, que es 100 millones. nivel, 4 órdenes de magnitud menos que el método anterior. Para dar un paso atrás, incluso si no conocemos la distribución de las contraseñas, es fácil simular el efecto del descifrado por fuerza bruta tradicional con la máscara.

La pregunta ahora es que la máscara está fija, cuántos marcadores de lugar están escritos muertos y qué debemos hacer si no conocemos la longitud de la contraseña. Está bien que la contraseña sea demasiado larga. Si la contraseña de alguien tiene solo 3 dígitos y tenemos 4 marcadores de espacio, y no podemos resolverla, ¿no sería una gran pérdida? ¿Necesitamos empezar con 1 y escribir todas las máscaras de cada longitud? Eso es un problema.

Hay dos soluciones. Una es usar un archivo de máscara, escribir múltiples máscaras en un archivo y luego especificar este archivo en la línea de comando. Tenga en cuenta que el archivo de máscara debe terminar en. hcmask.

Por ejemplo, el contenido de test.hcmask es:

    ? l 
  ? ¿Yo? l 
  ? ¿Yo? ¿Yo? l 
  ? ¿Yo? ¿Yo? ¿Yo? l 

Luego use el archivo con el siguiente comando:

     hashcat   -m   0   -a   3   - -show   md5.hash   test.hcmask 

Otra solución es agregar el parámetro – increment, que le dice a hashcat que presione la máscara que damos, comience con un marcador de plazo y pruebe dos, tres hasta la longitud que damos. Por ejemplo, escribimos el marcador de espacio "abc" para esto y luego calculamos el valor md5 de la siguiente cadena:

     A:0cc175b9c0f1b6a831c399e269772661 
    b:92eb5ffee6ae2fec3ad71c777531578f 
    c:4a8a08f09d37b73795649038408b5f33 
    ab:187ef4436122d1cc2f40dc2b92f0eba0 
    ac:e2075474294983e013ee4dd2201c7a73 
    ba:07159c47ee1b19ae4fb9c40d480856c4 
    bc:5360af35bde9ebd8f01f492dc059593c 
    ca:5435c69ed3bcc5b2e4d580e393e373d3 
    cb:d0d7fdb6977b26929fb68c6083c0b439 
    abc:900150983cd24fb0d6963f7d28e17f72 
    abc:900150983cd24fb0d6963f7d28e17f72 
    bac:79ec16df80b57696a03bb364410061f3 
    bca:b64eab8ce39e013604e243089c687e4f 
    cba:3944b025c9ca7eec3154b44666ae04a0 
    cab:16ecfd64586ec6c1ab212762c2c38a90 

Antes de ":" es la cadena original para la que se calculará el valor hash, y después de ":" es el valor hasn calculado. Guarde el contenido anterior en el archivo md5.hash y luego ejecute el siguiente comando:

     hashcat   -m   0   -a   3   - -show   - -username   md5.hash   abc 

Agregue el parámetro – username se debe a que hay una cadena original delante de cada valor de hash. Si no agrega este parámetro, hashcat mostrará que no se encontró el valor de hash correcto. Si agrega este parámetro, hashcat pensará que la cadena antes del valor de hash es el nombre de usuario para el valor de hash, para que el valor de hash se pueda cargar sin problemas.

El resultado de la ejecución es que solo se resuelve un hash:

     900150983cd24fb0d6963f7d28e17f72:abc 

Ahora agregue el parámetro – increment y ejecute de nuevo:

     hashcat   -m   0   -a   3   - -show   - -increment   - -username   md5.hash   abc 

Esta vez, se resuelven dos hash más:

     0cc175b9c0f1b6a831c399e269772661:a 
    187ef4436122d1cc2f40dc2b92f0eba0:ab 

Se puede ver que – increment juega un papel. Pero al mismo tiempo, también sabemos que con este parámetro, hashcat solo intentará a, ab y abc en orden, y no organizará y combinará los marcadores de espacio fuera de orden, probando varias posibilidades.

5. Ataque híbrido

El ataque híbrido es similar al ataque combinador. El ataque combinador combina dos diccionarios, mientras que el ataque híbrido combina un diccionario y una máscara.

Supongamos que ya tenemos un diccionario example.dict que dice lo siguiente:

     Hola 
    werner 

Luego el comando:

     hashcat   -m   0   -a   6   md5.hash   example.dict  ? ¿d? d 

es equivalente a simplemente usar un diccionario:

     hello00 
    hola01 
  ... 
    hola99 
    werner00 
    werner01 
  ... 
    werener99 

Entonces el comando:

     hashcat   -m   0   -a   7   md5.hash  ? ¿d?   dexample.dict 

Equivalente a simplemente usar un diccionario:

     00Hola 
    01 Hola 
  ... 
    99Hola 
    00werner 
    01werner 
  ... 
    99werener 

Siguiente artículo:Cómo usar el software hashcat para explotar varios hashes
Siguiente artículo:Método de uso de Hashcat y intercambio técnico
  • Centrarse en Word, Excel, PPT, PDF, RAR, ZIP, 7Z, paquetes comprimidos, desbloqueo y descifrado de archivos cifrados de Office
  • Proporcionamos a los usuarios recuperación de contraseña de paquete comprimido de archivos de alta calidad, recuperación de contraseña de palabra de desbloqueo de PDF
  • Derechos de autor © Maestro de recuperación de contraseña de documento Plataforma de descifrado en línea