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
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
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