예제 #1
0
    def upload(self, filePath, fileName, tags):
        rawFile = open(filePath, 'rb')
        log.debug(VIPER_URL_ADD % (self.host, self.port) + " file=" + fileName)

        try:
            form = MultiPartForm()
            form.add_file('file', fileName, fileHandle=rawFile)
            form.add_field('tags', tags)

            request = urllib2.Request(VIPER_URL_ADD % (self.host, self.port))
            body = str(form)
            request.add_header('Content-type', form.get_content_type())
            request.add_header('Content-length', len(body))
            request.add_data(body)

            response_data = urllib2.urlopen(request, timeout=60).read()
            reponsejson = json.loads(response_data)
            log.info("Submitted to Viper, message: %s", reponsejson["message"])
        except urllib2.URLError as e:
            raise Exception(
                "Unable to establish connection to Viper REST API server: %s" %
                e)
        except urllib2.HTTPError as e:
            raise Exception(
                "Unable to perform HTTP request to Viper REST API server (http code=%s)"
                % e)
        except ValueError as e:
            raise Exception("Unable to convert response to JSON: %s" % e)

        if reponsejson["message"] != 'added':
            raise Exception("Failed to store file in Viper: %s" %
                            reponsejson["message"])
 def _upload(self, objfile):
     upload = self.options.get("upload", None)
     
     if not upload or not objfile.is_permittedType():
         #No Upload, skip
         return None
     
     log.info("Upload file: %s" % objfile.get_fileMd5())
     
     file_extension = '.' + objfile.file_extension()
     fileName = objfile.get_fileMd5() + file_extension
     rawFile = open(objfile.temp_file, 'rb')        
     
     try:
         form = MultiPartForm()
         form.add_file('file', fileName, fileHandle=rawFile)
         form.add_field('apikey', self.apikey)
         
         request = urllib2.Request(MALWARE_LU_URL_UPLOAD)
         request.add_header('User-agent', 'Ragpicker')
         body = str(form)
         request.add_header('Content-type', form.get_content_type())
         request.add_header('Content-length', len(body))
         request.add_data(body)
         
         response_data = urllib2.urlopen(request).read()
         reponsejson = json.loads(response_data)
     except urllib2.URLError as e:
         raise Exception("Unable to establish connection to malware.lu: %s" % e)
     except urllib2.HTTPError as e:
         raise Exception("Unable to perform HTTP request to malware.lu (http code=%s)" % e) 
     except ValueError as e:
         raise Exception("Unable to convert response to JSON: %s" % e)
 
     return reponsejson
예제 #3
0
 def upload(self, filePath, fileName, tags):
     rawFile = open(filePath, 'rb')
     log.debug(VXCAGE_URL_ADD % (self.host, self.port) + " file=" + fileName)
     
     try:                
         form = MultiPartForm()
         form.add_file('file', fileName, fileHandle=rawFile)
         form.add_field('tags', tags)
         
         request = urllib2.Request(VXCAGE_URL_ADD % (self.host, self.port))
         body = str(form)
         request.add_header('Content-type', form.get_content_type())
         request.add_header('Content-length', len(body))
         request.add_data(body)
         
         response_data = urllib2.urlopen(request, timeout=60).read() 
         reponsejson = json.loads(response_data)           
         log.info("Submitted to vxcage, message: %s", reponsejson["message"])   
     except urllib2.URLError as e:
         raise Exception("Unable to establish connection to VxCage REST API server: %s" % e)
     except urllib2.HTTPError as e:
         raise Exception("Unable to perform HTTP request to VxCage REST API server (http code=%s)" % e) 
     except ValueError as e:
         raise Exception("Unable to convert response to JSON: %s" % e)
     
     if reponsejson["message"] != 'added':
         raise Exception("Failed to store file in VxCage: %s" % reponsejson["message"])
 def run(self, objfile):
     self.key = "CuckooSandbox"
     self.score = -1
     self.host = self.options.get("host")
     self.port = self.options.get("port")
     reponsejson = {}
     
     if not self.host or not self.port:
         raise Exception("Cuckoo REST API server not configurated")
     
     if objfile.is_permittedType():
         file_extension = '.' + objfile.file_extension()
         fileName = objfile.get_fileMd5() + file_extension
         rawFile = open(objfile.temp_file, 'rb')
         
         log.debug(CUCKOO_TASK_CREATE_URL % (self.host, self.port) + " file=" + fileName)
         
         try:                
             form = MultiPartForm()
             form.add_file('file', fileName, fileHandle=rawFile)
             
             request = urllib2.Request(CUCKOO_TASK_CREATE_URL % (self.host, self.port))
             request.add_header('User-agent', 'Ragpicker')
             body = str(form)
             request.add_header('Content-type', form.get_content_type())
             request.add_header('Content-length', len(body))
             request.add_data(body)
             
             data = urllib2.urlopen(request).read() 
             reponsejson = json.loads(data)
             log.info("Submitted to cuckoo, task ID %s", reponsejson["task_id"])               
         except urllib2.URLError as e:
             raise Exception("Unable to establish connection to Cuckoo REST API server: %s" % e)
         except urllib2.HTTPError as e:
             raise Exception("Unable to perform HTTP request to Cuckoo REST API server (http code=%s)" % e) 
         except ValueError as e:
             raise Exception("Unable to convert response to JSON: %s" % e)
     
     return reponsejson
예제 #5
0
 def run(self, objfile):
     self.key = "CuckooSandbox"
     self.score = -1
     self.host = self.options.get("host")
     self.port = self.options.get("port")
     reponsejson = {}
     
     if not self.host or not self.port:
         raise Exception("Cuckoo REST API server not configurated")
     
     file_extension = '.' + objfile.file.file_extension()
     fileName = objfile.file.get_fileMd5() + file_extension
     rawFile = open(objfile.file.temp_file, 'rb')
     
     log.debug(CUCKOO_TASK_CREATE_URL % (self.host, self.port) + " file=" + fileName)
     
     try:                
         form = MultiPartForm()
         form.add_file('file', fileName, fileHandle=rawFile)
         
         request = urllib2.Request(CUCKOO_TASK_CREATE_URL % (self.host, self.port))
         request.add_header('User-agent', 'Ragpicker')
         body = str(form)
         request.add_header('Content-type', form.get_content_type())
         request.add_header('Content-length', len(body))
         request.add_data(body)
         
         data = urllib2.urlopen(request, timeout=60).read() 
         reponsejson = json.loads(data)
         log.info("Submitted to cuckoo, task ID %s", reponsejson["task_id"])               
     except urllib2.URLError as e:
         raise Exception("Unable to establish connection to Cuckoo REST API server: %s" % e)
     except urllib2.HTTPError as e:
         raise Exception("Unable to perform HTTP request to Cuckoo REST API server (http code=%s)" % e) 
     except ValueError as e:
         raise Exception("Unable to convert response to JSON: %s" % e)
     
     return reponsejson