Я в настоящее время посещаю класс на сетевой безопасности, и мы должны взломать хешированные пароли. Для этого мы используем 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
так же много раз как в списке существуют значения.
Одна опция могла быть 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
Надеюсь, это поможет!
Вы не заключаете свои расширения в кавычки, таким образом, они оцениваются оболочкой, которая могла быть проблематичной. Попробуйте это:
#! /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/