From 072677ac10b58f6e5878d7d3eaa632bf6af180bd Mon Sep 17 00:00:00 2001
From: VakarisZ <vakarisz@yahoo.com>
Date: Mon, 28 Jan 2019 18:21:04 +0200
Subject: [PATCH] wmi info handler does not crash if no wmi info is collected

---
 .../monkey_island/cc/services/wmi_handler.py  | 20 +++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/monkey/monkey_island/cc/services/wmi_handler.py b/monkey/monkey_island/cc/services/wmi_handler.py
index 5842ae5c6..fec12c152 100644
--- a/monkey/monkey_island/cc/services/wmi_handler.py
+++ b/monkey/monkey_island/cc/services/wmi_handler.py
@@ -13,11 +13,18 @@ class WMIHandler(object):
         self.monkey_id = monkey_id
         self.info_for_mongo = {}
         self.users_secrets = user_secrets
-        self.users_info = wmi_info['Win32_UserAccount']
-        self.groups_info = wmi_info['Win32_Group']
-        self.groups_and_users = wmi_info['Win32_GroupUser']
-        self.services = wmi_info['Win32_Service']
-        self.products = wmi_info['Win32_Product']
+        if not wmi_info:
+            self.users_info = ""
+            self.groups_info = ""
+            self.groups_and_users = ""
+            self.services = ""
+            self.products = ""
+        else:
+            self.users_info = wmi_info['Win32_UserAccount']
+            self.groups_info = wmi_info['Win32_Group']
+            self.groups_and_users = wmi_info['Win32_GroupUser']
+            self.services = wmi_info['Win32_Service']
+            self.products = wmi_info['Win32_Product']
 
     def process_and_handle_wmi_info(self):
 
@@ -25,7 +32,8 @@ class WMIHandler(object):
         self.add_users_to_collection()
         self.create_group_user_connection()
         self.insert_info_to_mongo()
-        self.add_admin(self.info_for_mongo[self.ADMINISTRATORS_GROUP_KNOWN_SID], self.monkey_id)
+        if self.info_for_mongo:
+            self.add_admin(self.info_for_mongo[self.ADMINISTRATORS_GROUP_KNOWN_SID], self.monkey_id)
         self.update_admins_retrospective()
         self.update_critical_services()