Сценарий для цикличного выполнения по списку хешей в файле, застрявшем в переменной от первого повторения

Я в настоящее время посещаю класс на сетевой безопасности, и мы должны взломать хешированные пароли. Для этого мы используем hashcat. С тех пор существует много хешей, я пытаюсь записать сценарий, который протестировал бы хешированный пароль со всеми хешами, содержавшимися в списке. Мой сценарий следующие:

 1 #! /bin/bash
  2 listhsh="hashlist.txt"
  3 
  4 
  5 while read file; do
  6         echo $file
  7         hashcat -a 0 -m $file -O ~/devoir_PIII_Alice.txt /usr/lib/rockyou.txt
  8 done < $listhsh

файл содержит следующие значения. Это коды, определяющие тип хеша, который будет протестирован.

900
0
5100
100
1300
1400
10800
1700
5000
600

Проблема, которую я имею, состоит в том, что сценарий открывает файл, проводит первую строку, которая содержит код для типа хеша, который будет протестирован, и выполняет hashcat со значением в $file=900. Однако, после того как тест заканчивается с первым значением, сценарий выполняет hashcat с тем же значением $file=900. Таким образом, конечным результатом является hashcat выполнение того же теста с $file=900 так же много раз как в списке существуют значения.

0
задан 1 February 2018 в 08:24

2 ответа

Одна опция могла быть a for цикл. -m опция состоит в том, чтобы хеши были, работал. Файл, как предполагается, подает в значении и цикле каждый тип хеша.

Следующие изменения должны помочь Вашему сценарию. Я занял место hash для file.

#!/bin/bash
listhsh="hashlist.txt"

for hash in $(cat $listhsh); do
echo $hash
    hashcat -a 0 -m $hash -O ~/devoir_PIII_Alice.txt /usr/lib/rockyou.txt
done

Как тест, я выполнил строку как строку эха, чтобы видеть, будет ли она работать:

~$ ./hashcat_test 
900
hashcat -a 0 -m 900 -O ~/devoir_PIII_Alice.txt /usr/lib/rockyou.txt
0
hashcat -a 0 -m 0 -O ~/devoir_PIII_Alice.txt /usr/lib/rockyou.txt
5100
hashcat -a 0 -m 5100 -O ~/devoir_PIII_Alice.txt /usr/lib/rockyou.txt
100
hashcat -a 0 -m 100 -O ~/devoir_PIII_Alice.txt /usr/lib/rockyou.txt
1300
hashcat -a 0 -m 1300 -O ~/devoir_PIII_Alice.txt /usr/lib/rockyou.txt
1400
hashcat -a 0 -m 1400 -O ~/devoir_PIII_Alice.txt /usr/lib/rockyou.txt
10800
hashcat -a 0 -m 10800 -O ~/devoir_PIII_Alice.txt /usr/lib/rockyou.txt
1700
hashcat -a 0 -m 1700 -O ~/devoir_PIII_Alice.txt /usr/lib/rockyou.txt
5000
hashcat -a 0 -m 5000 -O ~/devoir_PIII_Alice.txt /usr/lib/rockyou.txt
600
hashcat -a 0 -m 600 -O ~/devoir_PIII_Alice.txt /usr/lib/rockyou.txt

Надеюсь, это поможет!

1
ответ дан 31 October 2019 в 02:32

Вы не заключаете свои расширения в кавычки, таким образом, они оцениваются оболочкой, которая могла быть проблематичной. Попробуйте это:

#! /bin/bash
listhsh="hashlist.txt"
while read file; do
    echo "$file"
    hashcat -a 0 -m "$file" -O ~/devoir_PIII_Alice.txt /usr/lib/rockyou.txt
done < $listhsh

Они могли быть полезными:
https://unix.stackexchange.com/questions/68694/when-is-double-quoting-necessary
https://www.cyberciti.biz/faq/unix-howto-read-line-by-line-from-file/

0
ответ дан 31 October 2019 в 02:32

Другие вопросы по тегам:

Похожие вопросы: