Ejemplo n.º 1
0
    def examinar(self):
        
        print("carpeta : ", self.carpeta + self.archivo_mbox)
        mbox = mailbox.mbox(self.carpeta + self.archivo_mbox)
        
        i = 1
        data = []
        buscadores = [EtiquetaFormularioHTML(),Dominio(),Link(),JavaScript(),ActionWord(), Paypal(), Bank(),Account(),
                      Reenvio(), URL(),IPEnURL(),Multipart(), ArrobaEnURL(), ArchivoAdjunto(), ContenidoHTML(),
                       Gmail(), Outlook(),Flash(),Hexadecimal(),LinkImage()]
        for mensaje in mbox:
            caracteristicas = {}
            total = 0
            datos =  utilidades.getDatos_Dict(mensaje)
            for dato in datos:
                    total +=len(re.sub(r'\s+','',dato["datos"]))
            if total < 1:
                print("correo vacio: " + utilidades.getDatos(mensaje))
                continue
            for buscador in buscadores:
                caracteristicas[buscador.getBuscadorTitulo()] = buscador.getBuscador(mensaje)

            caracteristicas["Phishy"] = self.phishing
            data.append(caracteristicas)
        return data
Ejemplo n.º 2
0
 def getBuscador(self, mensaje):
     super(Outlook, self).getBuscador(mensaje)
     correo =  utilidades.getDatos(mensaje).lower()
     if re.search("outlook", correo):
         return constantes.VERDADERO
     else:
         return constantes.FALSO
Ejemplo n.º 3
0
 def getBuscador(self, mensaje):
     super(EtiquetaFormularioHTML, self).getBuscador(mensaje)
     correo = utilidades.getDatos(mensaje).lower()
     retorno = re.compile(r'<\s?\/?\s?form\s?>', re.IGNORECASE).search(correo) != None
     if retorno == constantes.VERDADERO:
         return constantes.VERDADERO
     else:
         return constantes.FALSO
Ejemplo n.º 4
0
 def getBuscador(self, mensaje):
     super(Link, self).getBuscador(mensaje)
     correo = utilidades.getDatos(mensaje).lower()
     retorno = re.compile(r'<a[^>]+href=\'(.*?)\'[^>]*>(.*)?</a>', re.IGNORECASE).search(correo) != None
     if retorno == constantes.VERDADERO:
         return constantes.VERDADERO
     else:
         return constantes.FALSO
Ejemplo n.º 5
0
 def getBuscador(self, mensaje):
     super(Dominio, self).getBuscador(mensaje)
     correo = utilidades.getDatos(mensaje).lower()
     retorno = re.compile(constantes.URLREGEX, re.IGNORECASE).search(correo) != None
     if retorno == constantes.VERDADERO:
         return constantes.VERDADERO
     else:
         return constantes.FALSO
Ejemplo n.º 6
0
 def getBuscador(self, mensaje):
     super(Hexadecimal, self).getBuscador(mensaje)
     cadena = utilidades.getDatos(mensaje).lower()
     retorno = re.compile(constantes.HEXADECIMALREGEX, re.IGNORECASE).search(cadena) != None
     if retorno == constantes.VERDADERO:
         return constantes.VERDADERO
     else:
         return constantes.FALSO
Ejemplo n.º 7
0
 def getBuscador(self, mensaje):
     super(Reenvio, self).getBuscador(mensaje)
     correo =  utilidades.getDatos(mensaje).lower()
     resultado = re.findall("forwarded message", correo)
     if len(resultado) >= 2:
         return constantes.VERDADERO
     else:
         return constantes.FALSO 
Ejemplo n.º 8
0
 def getBuscador(self,mensaje):
     super(Flash,self).getBuscador(mensaje)
     datos = utilidades.getDatos(mensaje).lower()
     swf = re.compile(constantes.FLASH_LINKED_CONTENT, re.IGNORECASE).findall(datos)
     flash = re.compile(constantes.FLASH_OBJECT, re.IGNORECASE).search(datos)
     if (swf != None and len(swf) >0) or \
     (flash != None):
         return constantes.VERDADERO
     else:
         return constantes.FALSO
Ejemplo n.º 9
0
 def getBuscador(self, mensaje):
     super(ActionWord, self).getBuscador(mensaje)
     correo =  utilidades.getDatos(mensaje).lower()
     retorno = 0
     for palabra in constantes.PALABRAS:
         if re.search(palabra, correo):
             retorno += 1
     #return retorno       
     if retorno > 0:
         return constantes.VERDADERO
     else:
         return constantes.FALSO