Me pregunto cómo haría para tener el
printf "Credentials found!"
solo una vez cuando se encuentran varias credenciales.
Attempting Dictionary Attack on 192.168.91.130
Credentials Found!
Log into the telnet server by running telnet -l admin 192.168.91.130
When prompted enter the password found 'admin'
Credentials Found!
Log into the telnet server by running telnet -l sfx 192.168.91.130
When prompted enter the password found 'toor'
El bash
lazo:
for i in "${!user[@]}"; do
printf "The Username & Password is %s : %s\n\n" "${user[i]}" "${pass[i]}" >> SSH-Credentials.txt
printf "${NCB}Credentials Found!${NC}\n\n"
printf "Log into the SSH server by running ${YELLOW}ssh ${user[i]}@$ip${NC}\n\nWhen prompted enter the password found ${YELLOW}'${pass[i]}'\n"
printf "${NC}\n"
done
Respuesta1
Podrías hacer una prueba $i
como en:
[[ "$i" -lt 1 ]] && printf "I am only printed once\n"
# OR
(( i < 1 )) && printf "I am only printed once\n"
# OR
! (( i )) && printf "I am only printed once\n"
# OR
[ "$i" -lt 1 ] && printf "I am only printed once\n"
# OR
if [[ "$i" -lt 1 ]]; then
printf "I am only printed once\n"
fi
Suponiendo que no usesmatriz bash asociativa.
En breve:Si el índice es menor que 1, imprima.
En aras de la legibilidad, también habría dividido esas líneas. Muy ancho. Tenga en cuenta que también puede decir:
printf '%s %s some long text' \
"$var1" "$var2"
Usar letras mayúsculas para las variables también es un mal hábito.
Normalmente, la información también debería imprimirse enstderr
, entonces >&2
.
También habría usado:
prinf '%s@%s' "${user[i]}" "$ip" >&2
en lugar de:
prinf "${user[i]}@$ip" >&2
Respuesta2
Genere el encabezado si la user
matriz tiene elementos.
if [[ ${#user[@]} -gt 0 ]]; then
printf '%sCredentials Found!%s\n\n' "$NCB" "$NC"
fi
Luego haz tu bucle.
for i in "${!user[@]}"; do
printf 'The Username & Password is %s : %s\n\n' "${user[i]}" "${pass[i]}" >> SSH-Credentials.txt
cat <<END_MESSAGE
Log into the SSH server using ${YELLOW}ssh ${user[i]}@$ip$NC
When prompted, enter the password found: ${YELLOW}${pass[i]}$NC
END_MESSAGE
done