code refactoring regarding dictionary attack

This commit is contained in:
Miroslav Stampar 2010-11-23 13:58:01 +00:00
parent ba4ea32603
commit 3cae76627c
3 changed files with 13 additions and 3 deletions

View File

@ -26,6 +26,7 @@ from ConfigParser import DEFAULTSECT
from ConfigParser import RawConfigParser
from StringIO import StringIO
from difflib import SequenceMatcher
from inspect import getmembers
from subprocess import PIPE
from subprocess import Popen as execute
from tempfile import NamedTemporaryFile
@ -1604,3 +1605,12 @@ def logHTTPTraffic(requestLogMsg, responseLogMsg):
dataToTrafficFile("\n%s\n\n" % (76 * '#'))
kb.locks.reqLock.release()
def getPublicTypeMembers(type_):
retVal = []
for name, value in getmembers(type_):
if not name.startswith('__'):
retVal.append((name, value))
return retVal

View File

@ -53,4 +53,3 @@ class HASH:
ORACLE_OLD = r'(?i)\A[0-9a-f]{16}\Z'
MD5_GENERIC = r'(?i)\A[0-9a-f]{32}\Z'
SHA1_GENERIC = r'(?i)\A[0-9a-f]{40}\Z'
__all__ = (MYSQL, MYSQL_OLD, POSTGRES, MSSQL, MSSQL_OLD, ORACLE, ORACLE_OLD, MD5_GENERIC, SHA1_GENERIC)

View File

@ -12,13 +12,14 @@ import time
from hashlib import md5
from hashlib import sha1
from zipfile import ZipFile
from zipfile import ZipFile
from extra.pydes.pyDes import des
from extra.pydes.pyDes import CBC
from lib.core.common import conf
from lib.core.common import dataToStdout
from lib.core.common import getFileItems
from lib.core.common import getPublicTypeMembers
from lib.core.common import paths
from lib.core.common import readInput
from lib.core.convert import hexdecode
@ -190,7 +191,7 @@ def dictionaryAttack():
hash_ = hash_.split()[0]
for regex in HASH.__all__:
for _, regex in getPublicTypeMembers(HASH):
if re.match(regex, hash_):
rehash = regex
break