|
|
Décryptez votre HASH CISCO 7
par Sébastien FONTAINE (_SebF)
1 - Fonction de décryptage Cisco 7
2 - Où trouve t on les HASH
au format Cisco 7
3 - Suivi du développement
3.1 -
Problème restant
3.2 - RoadMap
3.3 -
Suivi du projet
4 - Code source
Cet outil va vous permettre de décrypter
instantanément vos HASH Cisco 7 qui se trouve dans les configurations des
équipements Cisco.
Par exemple, si dans votre routeur vous
avez la commande "enable password 7 062B0A33", alors positionnez le code
"062B0A33" dans le champ ci dessus et cliquez sur déchiffrer. Le mot de passe
correspondant vous sera alors instantanément révélé.
Le HASH de niveau 7 des équipements
Cisco est basé sur l'algorithme WEAK qui est réversible. Ainsi, le contenu de
l'algorithme WEAK étant connu, pourtant propriétaire Cisco, il est très simple
de retrouver le mot de passe d'origine. Le mot de passe hashé se présente sous
la forme de caractère Hexadécimal. Le premier couple, "06" dans notre exemple,
indique le SEED (offset) permettant de faire varier le cryptage des caractères
suivants. La suite représente le mot de passe et chaque couple en représente une
lettre. Ainsi, nous pouvons en déduire que le mot de passe contient 3 lettres et
que "2B" représente la première "M", "OA" la seconde "e"et "33" la troisième
"r". Le mot de passe correspondant à notre chaîne d'exemple est "Mer".
Posez vos questions,
remarques, demande d'évolution et retour d'expérience sur le
Forum dédié
Voici la liste des emplacements ou fonctions
utilisant les mot de passe au format Cisco 7 :
Enable :
enable password 7 062B0A33
Username :
username login password 7 062B0A33
FTP :
ip ftp password 7 062B0A33
Scheduler Username :
scheduler aaa-authentication username newuser password 7 062B0A33
PPP :
interface Dialer1
ppp chap password 7 062B0A33
DHCHAP :
fcsp dhchap password 7 062B0A33
VPDN :
vpdn tunnel authorization password 7 062B0A33
L2TP :
l2tp tunnel password 7 062B0A33
BGP :
router bgp 10
neighbor 172.16.12.2 password 7 062B0A33
Mode Console :
line con 0
password 7 062B0A33
Mode Auxiliaire :
line aux 0
password 7 062B0A33
Mode VTY :
line vty 0 4
password 7 062B0A33
|
2006.11.01 |
- Mise en ligne
de l'outil |
|
2006.11.01 |
- Contrôle de
la chaîne saisie |
|
2006.10.30 |
- Création du
script C et traduction en PHP |
|
<?PHP
main();
function main() // Passé sous une fonction permettant aux erreur de
faire juste un return et non un exit
{
// ********************************************
// Nom du script : script-password-cisco-7.php
// Auteur : Sébastien Fontaine - _SebF
// Date de création : 30 octobre 2006
// version : 1.0
// Licence : Ce script est libre de toute utilisation.
// La seule condition existante est de faire référence au
site http://www.authsecu.com afin de respecter le travail d'autrui.
// ********************************************
// **********************************************
// Récupération de la chaine crypté demandé
// **********************************************
$password_crypte=$_POST['champ1'];
if ($password_crypte=="")
$password_crypte="0820564B1B0D1C";
// ********************************************
// Affichage du Titre
// ********************************************
echo '<p class="titre-principal">Décryptage de votre HASH CISCO 7<br></p>';
// **********************************************
// Initialisation des variables
// **********************************************
$len_password_crypte=strlen($password_crypte);
$valeur=0;
$seed=0;
// ********************************************
// Convertit la chaine en minuscule
// ********************************************
$password_crypte=strtolower($password_crypte);
// **********************************************
// Vérification si la chaîne siaise possède au minimum de 4
caractères
// **********************************************
if ($len_password_crypte<4)
{
echo '<p class="chapitre---texte-de-niveau-1" style="text-align:
center;"><b>Erreur, </b>la chaine saisie est trop courte</p>';
return (0);
}
// **********************************************
// Vérification si la chaîne siaise N'est pas trop longue
// **********************************************
if ($len_password_crypte>100) // 100 est la définition maximum de
stockage dans la base Mysql
{
echo '<p class="chapitre---texte-de-niveau-1" style="text-align:
center;"><b>Erreur, </b>la chaine saisie est trop longue</p>';
return (0);
}
// **********************************************
// Vérification si la chaîne siaise est bien paire
// **********************************************
if ( ($len_password_crypte % 2) != 0) // % divise et ne garde que ce
qu'il y a après la virgule
{
echo '<p class="chapitre---texte-de-niveau-1" style="text-align:
center;"><b>Erreur, </b>la chaine saisie ne contient pas un nombre
paire de caractère</p>';
return (0);
}
// **********************************************
// Vérification si la chaîne siaise est bien en HEXA
// **********************************************
for ($i=0;$i<$len_password_crypte;$i++)
if ( ((($password_crypte[$i]>='0')&&($password_crypte[$i]<='9'))
|| (($password_crypte[$i]>='a')&&($password_crypte[$i]<='f')))==0)
{
echo '<p
class="chapitre---texte-de-niveau-1" style="text-align: center;"><b>Erreur,
</b>le caractère numéro '.($i+1).' de la chaine saisie n\'est pas un
caractère HEXA</p>';
return (0);
}
// **********************************************
// Initialisation des du tableau de correspondance statique
// **********************************************
$tableau_de_caractere[0]=0x64;
$tableau_de_caractere[1]=0x73;
$tableau_de_caractere[2]=0x66;
$tableau_de_caractere[3]=0x64;
$tableau_de_caractere[4]=0x3b;
$tableau_de_caractere[5]=0x6b;
$tableau_de_caractere[6]=0x66;
$tableau_de_caractere[7]=0x6f;
$tableau_de_caractere[8]=0x41;
$tableau_de_caractere[9]=0x2c;
$tableau_de_caractere[10]=0x2e;
$tableau_de_caractere[11]=0x69;
$tableau_de_caractere[12]=0x79;
$tableau_de_caractere[13]=0x65;
$tableau_de_caractere[14]=0x77;
$tableau_de_caractere[15]=0x72;
$tableau_de_caractere[16]=0x6b;
$tableau_de_caractere[17]=0x6c;
$tableau_de_caractere[18]=0x64;
$tableau_de_caractere[19]=0x4a;
$tableau_de_caractere[20]=0x4b;
$tableau_de_caractere[21]=0x44;
$tableau_de_caractere[22]=0x48;
$tableau_de_caractere[23]=0x53;
$tableau_de_caractere[24]=0x55;
$tableau_de_caractere[25]=0x42;
// **********************************************
// Définition du seed
// **********************************************
$seed=($password_crypte[0]-'0')*10+($password_crypte[1]-'0');
// **********************************************
// Décryptage de chaque caractère
// **********************************************
for ($i=2;$i<=$len_password_crypte;$i++)
{
if ( ($i!=2) && !($i&1) )
{
$password_en_claire[$i/2-2]=$valeur^$tableau_de_caractere[$seed];
$seed++;
$valeur=0;
}
$valeur=$valeur*16;
if( ($password_crypte[$i]>='0') && ($password_crypte[$i]<='9')
)
$valeur=$valeur+ord($password_crypte[$i])-ord('0');
else if ( ($password_crypte[$i]>='a') && ($password_crypte[$i]<='f')
)
$valeur=$valeur+ord($password_crypte[$i])-ord('a')+10;
}
// **********************************************
// Longueur du mot de passe en claire
// **********************************************
$len_password_claire=($len_password_crypte/2)-1;
// **********************************************
// Transformation du tableau
// **********************************************
// Join convertit un tableau en chaine
// array_map('chr', permet de convertir les valeures ascii en
caractere ascii, car $password_en_claire contient uniquement des
nombre et pas des caracteres
$password_en_claire_format_chaine=join(array_map('chr',$password_en_claire));
// ********************************
// Connexion à la base Mysql
// ********************************
include 'connexion_a_la_base.php';
// ********************************************
// Mise à jour des logs
// ********************************************
$date=date("Y").".".date("m").".".date("d");
$heure=date("H").".".date("i").".".date("s");
$ip_client=getenv("REMOTE_ADDR");
$ip_proxy=getenv("HTTP_X_FORWARDED_FOR");
mysql_query("insert into logs_cisco_7 VALUES ('','$date','$heure','$ip_client','$ip_proxy','$password_crypte','$password_en_claire_format_chaine')");
// ********************************************
// Affichage du résultat
// ********************************************
echo '<p class="chapitre---texte-de-niveau-1" style="text-align:
center;"><b>Le resultat a été trouvé</b></p>';
// ********************************************
// Affichage des valeurs
// ********************************************
echo
'
<table border="0" id="dgdhdsu676ETTt" align="center">
<tr>
<td width="50%"><p
class="chapitre---texte-du-tableau-de-niveau-1" style="text-align:
right;">HASH Cisco 7 demandé :</p></td>
<td><p
class="chapitre---texte-du-tableau-de-niveau-1">'.$password_crypte.'</p></td>
</tr>
<tr>
<td width="50%"><p
class="chapitre---texte-du-tableau-de-niveau-1" style="text-align:
right;">Mot de passe correspondant :</p></td>
<td><p
class="chapitre---texte-du-tableau-de-niveau-1">'.$password_en_claire_format_chaine.'</p></td>
</tr>
</table>
';
return(1);
}
?>
|
|
|