Скрипт для перебора списка хэшей в файле, застрявшем с переменной с первой итерации

Весь вывод находится в /run/motd.dynamic:

$ grep motd /etc/pam.d -R
/etc/pam.d/sshd:# This includes a dynamically generated part from /run/motd.dynamic
/etc/pam.d/sshd:# and a static (admin-editable) part from /etc/motd.
/etc/pam.d/sshd:session    optional     pam_motd.so  motd=/run/motd.dynamic
/etc/pam.d/sshd:session    optional     pam_motd.so noupdate
/etc/pam.d/login:# This includes a dynamically generated part from /run/motd.dynamic
/etc/pam.d/login:# and a static (admin-editable) part from /etc/motd.
/etc/pam.d/login:session    optional   pam_motd.so motd=/run/motd.dynamic
/etc/pam.d/login:session    optional   pam_motd.so noupdate

Итак, в вашем .bashrc вы можете добавить:

[[ -r /run/motd.dynamic ]] && cat /run/motd.dynamic

Или:

[[ -r /run/motd.dynamic ]] && grep update /run/motd.dynamic
0
задан 1 February 2018 в 19:24

6 ответов

Одним из вариантов может быть цикл 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
ответ дан 22 May 2018 в 15:11
  • 1
    $ file определяется на каждом прогоне, как то, что read принимает от & lt; оператор. Это довольно распространенный синтаксис: cyberciti.biz/faq/unix-howto-read-line-by-line-from-file Рад видеть, что ваша версия работает. У меня нет хеш-ката для проверки мин: P – Ketzak 1 February 2018 в 01:48
  • 2
    По Юпитеру, ты прав. Я пропустил настоящий очевидный там. – Ketzak 1 February 2018 в 01:52
  • 3
    @Ketzak Ну, файл на самом деле определен, но я думаю, что есть проблема с циклом while. Вместо этого я заменил мой на цикл for. – Terrance 1 February 2018 в 01:53
  • 4
    Мне очень нравится ваше решение, и я собираюсь забрать его на потом! – Ketzak 1 February 2018 в 01:54
  • 5
    Обратите внимание, что этот подход работает только потому, что в файле нет пустых строк, а также нет нескольких элементов в строке. Правильный способ чтения строки строки по-прежнему выполняется через файл while IFS= read -r line; do...done < input.txt. – Sergiy Kolodyazhnyy 2 February 2018 в 04:18

Одним из вариантов может быть цикл 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
ответ дан 17 July 2018 в 21:48

Одним из вариантов может быть цикл 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
ответ дан 23 July 2018 в 22:25

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

#! /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 / чаво / Unix-HOWTO чтения строки построчно-из-файла /

0
ответ дан 22 May 2018 в 15:11

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

#! /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 / чаво / Unix-HOWTO чтения строки построчно-из-файла /

0
ответ дан 17 July 2018 в 21:48

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

#! /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 / чаво / Unix-HOWTO чтения строки построчно-из-файла /

0
ответ дан 23 July 2018 в 22:25

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

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