Ce code python à été développé afin de retrouver la communauté SNMP d'une antenne.
La méthode utilisée est celle du brute-force.
Différentes bibliothèques ont été nécessaires telles que pysnmp par exemple
Time : calculer le temps de fonctionnement d'un programme
threading : multiplier le nombre de cœurs assignés au programme pour gagner du temps
pysnmp.hlapi :manipuler des requêtes snmp
itertools : bibliothèque pour créer des boucles efficaces
Tout les caractères possibles ont été définis dans une listes
L'adresse et l'OID de l'antenne on également été définis avant le programme
Stop_event sert à arrêter tout les cœurs à la fois lorsque la solution est trouvée
Le "try" sert à envoyer une requête SNMP.
Si une erreur se produit, cela se traduit en communauté erronée, alors on renvoie faux.
S'il n'y a aucune erreur, c'est que la communauté est correcte, donc on arrête le programme, on affiche la communauté et le temps qu'a mis le programme à trouver.
Le brute-force est une méthode brute. Elle consiste à essayer toutes les combinaisons possibles (une communauté SNMP en l'occurence) jusqu'à trouver la bonne.
C'est un processus qui peut prendre beaucoup de temps (jusqu'à plusieurs milliers d'années) si le mot de passe recherché est très robuste (caractères spéciaux, majuscules, minuscules, chiffres)
Premièrement, on ajuste le nombre de coeurs assignés au programme, pour la configuration de mon PC, 10 est le plus efficace.
Ensuite, tant que la solution n'est pas trouvée alors on cherche.
Le programme recherchera dans l'ordre de l'alphabet en commençant par 1 seul caractère
a, b, c, [...], aa,ab,ac, [...] ba, bb, bc, [...], Aa, Ab, Ac...
Les requêtes se font bien dans l'ordre jusqu'à trouver la bonne communauté (Ici "aa" pour l'exemple)
Enfin, le temps total est également affiché.