1# Copyright (c) 2017, The MITRE Corporation. All rights reserved. 2# See LICENSE.txt for complete terms. 3 4from mixbox import fields 5 6import cybox.bindings.win_user_account_object as win_user_binding 7from cybox.common import String 8from cybox.objects.user_account_object import (Group, GroupList, Privilege, 9 PrivilegeList, UserAccount) 10 11 12class WinGroup(Group): 13 _binding = win_user_binding 14 _binding_class = win_user_binding.WindowsGroupType 15 _namespace = 'http://cybox.mitre.org/objects#WinUserAccountObject-2' 16 _XSI_TYPE = "WindowsGroupType" 17 18 name = fields.TypedField("Name", String) 19 20 21class WinGroupList(GroupList): 22 group = fields.TypedField("Group", WinGroup, multiple=True) 23 24 25class WinPrivilege(Privilege): 26 _binding = win_user_binding 27 _binding_class = win_user_binding.WindowsPrivilegeType 28 _namespace = 'http://cybox.mitre.org/objects#WinUserAccountObject-2' 29 _XSI_TYPE = "WindowsPrivilegeType" 30 31 user_right = fields.TypedField("User_Right", String) 32 33 34class WinPrivilegeList(PrivilegeList): 35 privilege = fields.TypedField("Privilege", WinPrivilege, multiple=True) 36 37 38class WinUser(UserAccount): 39 _binding = win_user_binding 40 _binding_class = win_user_binding.WindowsUserAccountObjectType 41 _namespace = 'http://cybox.mitre.org/objects#WinUserAccountObject-2' 42 _XSI_NS = "WinUserAccountObj" 43 _XSI_TYPE = "WindowsUserAccountObjectType" 44 45 security_id = fields.TypedField('Security_ID', String) 46 security_type = fields.TypedField('Security_Type', String) 47 48 # Override abstract types 49 group_list = fields.TypedField('Group_List', WinGroupList) 50 privilege_list = fields.TypedField('Privilege_List', WinPrivilegeList) 51