diff --git a/lib/common/agents.py b/lib/common/agents.py index effbd37..4491e34 100644 --- a/lib/common/agents.py +++ b/lib/common/agents.py @@ -55,7 +55,7 @@ handle_agent_data() is the main function that should be used by external listene Most methods utilize self.lock to deal with the concurreny issue of kicking off threaded listeners. """ - +# -*- encoding: utf-8 -*- import os import json import string @@ -1291,18 +1291,18 @@ class Agents: dispatcher.send("[!] Nonce verified: agent %s posted valid sysinfo checkin format: %s" % (sessionID, message), sender='Agents') - # listener = parts[1].encode('ascii', 'ignore') - domainname = parts[2].encode('ascii', 'ignore') - username = parts[3].encode('ascii', 'ignore') - hostname = parts[4].encode('ascii', 'ignore') - external_ip = clientIP.encode('ascii', 'ignore') - internal_ip = parts[5].encode('ascii', 'ignore') - os_details = parts[6].encode('ascii', 'ignore') - high_integrity = parts[7].encode('ascii', 'ignore') - process_name = parts[8].encode('ascii', 'ignore') - process_id = parts[9].encode('ascii', 'ignore') - language = parts[10].encode('ascii', 'ignore') - language_version = parts[11].encode('ascii', 'ignore') + listener = unicode(parts[1], 'utf-8') + domainname = unicode(parts[2], 'utf-8') + username = unicode(parts[3], 'utf-8') + hostname = unicode(parts[4], 'utf-8') + external_ip = unicode(clientIP, 'utf-8') + internal_ip = unicode(parts[5], 'utf-8') + os_details = unicode(parts[6], 'utf-8') + high_integrity = unicode(parts[7], 'utf-8') + process_name = unicode(parts[8], 'utf-8') + process_id = unicode(parts[9], 'utf-8') + language = unicode(parts[10], 'utf-8') + language_version = unicode(parts[11], 'utf-8') if high_integrity == "True": high_integrity = 1 else: @@ -1529,17 +1529,17 @@ class Agents: else: print "sysinfo:",data # extract appropriate system information - listener = parts[1].encode('ascii', 'ignore') - domainname = parts[2].encode('ascii', 'ignore') - username = parts[3].encode('ascii', 'ignore') - hostname = parts[4].encode('ascii', 'ignore') - internal_ip = parts[5].encode('ascii', 'ignore') - os_details = parts[6].encode('ascii', 'ignore') - high_integrity = parts[7].encode('ascii', 'ignore') - process_name = parts[8].encode('ascii', 'ignore') - process_id = parts[9].encode('ascii', 'ignore') - language = parts[10].encode('ascii', 'ignore') - language_version = parts[11].encode('ascii', 'ignore') + listener = unicode(parts[1], 'utf-8') + domainname = unicode(parts[2], 'utf-8') + username = unicode(parts[3], 'utf-8') + hostname = unicode(parts[4], 'utf-8') + internal_ip = unicode(parts[5], 'utf-8') + os_details = unicode(parts[6], 'utf-8') + high_integrity = unicode(parts[7], 'utf-8') + process_name = unicode(parts[8], 'utf-8') + process_id = unicode(parts[9], 'utf-8') + language = unicode(parts[10], 'utf-8') + language_version = unicode(parts[11], 'utf-8') if high_integrity == 'True': high_integrity = 1 else: