class Label(MaltegoElement): def __init__(self, name=None, value=None, **kwargs): super(Label, self).__init__(name=name, value=value, **kwargs) value = fields_.CDATA(tagname='.') type = fields_.String(attrname='Type', default='text/text') name = fields_.String(attrname='Name')
class _Entity(MaltegoElement): class meta: tagname = 'Entity' type = fields_.String(attrname='Type') fields = fields_.Dict(Field, key='name', tagname='AdditionalFields', required=False) labels = fields_.Dict(Label, key='name', tagname='DisplayInformation', required=False) value = fields_.String(tagname='Value') weight = fields_.Integer(tagname='Weight', default=1) iconurl = fields_.String(tagname='IconURL', required=False) def appendelement(self, other): if isinstance(other, Field): self.fields.append(other) elif isinstance(other, Label): self.labels.append(other) def removeelement(self, other): if isinstance(other, Field): self.fields.remove(other) elif isinstance(other, Label): self.labels.remove(other)
class TransformPropertySetting(MaltegoElement): class meta: tagname = 'Property' name = fields_.String() popup = fields_.Boolean(default=False) type = fields_.String(default=PropertyType.String) value = fields_.String(tagname=".")
class Field(MaltegoElement): def __init__(self, name=None, value=None, **kwargs): super(Field, self).__init__(name=name, value=value, **kwargs) name = fields_.String(attrname='Name') displayname = fields_.String(attrname='DisplayName', required=False) matchingrule = fields_.String(attrname='MatchingRule', default=MatchingRule.Strict, required=False) value = fields_.String(tagname='.')
class MaltegoException(MaltegoElement, Exception): class meta: tagname = 'Exception' def __init__(self, value, code=None): super(MaltegoException, self).__init__(value=value, code=code), value = fields_.String(tagname='.') code = fields_.String(required=False)
class TransformSet(MaltegoElement): name = fields_.String() description = fields_.String(default='') transforms = fields_.List(Transform, tagname='Transforms') def appendelement(self, other): if isinstance(other, Transform): self.transforms.append(other) def removeelement(self, other): if isinstance(other, Transform): self.transforms.remove(other)
class InputConstraint(MaltegoElement): class meta: tagname = 'Entity' type = fields_.String() min = fields_.Integer(default=1) max = fields_.Integer(default=1)
class EntityProperties(MaltegoElement): class meta: tagname = 'Properties' value = fields_.String(required=False) groups = fields_.Model(Groups, required=False) fields = fields_.Dict(Field, key='name', tagname='Fields', required=False)
class MaltegoException(MaltegoElement, Exception): class meta: tagname = 'Exception' def __init__(self, value): super(MaltegoElement, self).__init__(value=value) value = fields_.String(tagname='.')
class MaltegoServer(MaltegoElement): name = fields_.String(default='Local') enabled = fields_.Boolean(default=True) description = fields_.String( default='Local transforms hosted on this machine') url = fields_.String(default='http://localhost') lastsync = fields_.String(tagname='LastSync', default=time.strftime('%Y-%m-%d')) protocol = fields_.Model(Protocol) authentication = fields_.Model(Authentication) transforms = fields_.List(Transform, tagname='Transforms') def appendelement(self, other): if isinstance(other, Transform): self.transforms.append(other) def removeelement(self, other): if isinstance(other, Transform): self.transforms.remove(other)
class attributes(MaltegoElement): version = fields_.String(default='1.0') fileobjects = fields_.Dict(fileobject, key='name') def appendelement(self, other): if isinstance(other, fileobject): self.fileobjects[other.name] = other def removeelement(self, other): if isinstance(other, fileobject): del self.fileobjects[other.name]
class fileobject(MaltegoElement): name = fields_.String() attrs = fields_.Dict(attr, key='name') def appendelement(self, other): if isinstance(other, attr): self.attrs[other.name] = other def removeelement(self, other): if isinstance(other, attr): del self.attrs[other.name]
class MaltegoEntity(MaltegoElement): id = fields_.String() displayname = fields_.String(attrname='displayName', required=False) plural = fields_.String(attrname='displayNamePlural', required=False) description = fields_.String(default='', required=False) category = fields_.String(required=False) smallicon = fields_.String(attrname='smallIconResource', required=False) largeicon = fields_.String(attrname='largeIconResource', required=False) allowedRoot = fields_.Boolean(default=True, required=False) conversion_order = fields_.Integer(attrname='conversionOrder', default=2147483647, required=False) visible = fields_.Boolean(default=True, required=False) largeicontag = fields_.String(tagname='Icon', required=False) smallicontag = fields_.String(tagname='SmallIcon', required=False) converter = fields_.Model(Converter, required=False) properties = fields_.Model(EntityProperties, required=False)
class Field(MaltegoElement): name = fields_.String() type = fields_.String() nullable = fields_.Boolean(default=True) hidden = fields_.Boolean(default=False) readonly = fields_.Boolean(default=False) description = fields_.String(required=False) displayname = fields_.String(attrname='displayName') defaultvalue = fields_.String(tagname='DefaultValue', required=False) samplevalue = fields_.String(tagname='SampleValue', default='')
class TransformProperty(MaltegoElement): class meta: tagname = 'Property' defaultvalue = fields_.String(tagname='DefaultValue', required=False) samplevalue = fields_.String(tagname='SampleValue', default='') abstract = fields_.Boolean(default=False) description = fields_.String(default='') displayname = fields_.String(attrname='displayName') hidden = fields_.Boolean(default=False) name = fields_.String() nullable = fields_.Boolean(default=False) readonly = fields_.Boolean(default=False) popup = fields_.Boolean(default=False) type = fields_.String(default=PropertyType.String) visibility = fields_.String(default=VisibilityType.Public)
class Authentication(MaltegoElement): type = fields_.String(default=AuthenticationType.Anonymous)
class Protocol(MaltegoElement): version = fields_.String(default='2.0')
class EntityCategory(MaltegoElement): name = fields_.String()
class UIMessage(MaltegoElement): def __init__(self, value=None, **kwargs): super(UIMessage, self).__init__(value=value, **kwargs) type = fields_.String(attrname='MessageType', default=UIMessageType.Inform) value = fields_.String(tagname='.')
class attr(MaltegoElement): name = fields_.String() stringvalue = fields_.String(required=False) boolvalue = fields_.Boolean(required=False)
class MaltegoTransform(MaltegoElement): name = fields_.String() displayname = fields_.String(attrname='displayName', default='') abstract = fields_.String(default=False) template = fields_.Boolean(default=False) visibility = fields_.String(default=VisibilityType.Public) description = fields_.String(default='') helpurl = fields_.String(attrname='helpURL', default='') author = fields_.String(default='') owner = fields_.String(default='') locrel = fields_.String(attrname='locationRelevance', default='global') version = fields_.String(default='1.0') requireinfo = fields_.Boolean(default=False, attrname='requireDisplayInfo') adapter = fields_.String(tagname='TransformAdapter', default=TransformAdapter.Local) properties = fields_.Model(Properties) input = fields_.List(InputConstraint, tagname='InputConstraints', required=False) output = fields_.List(OutputEntity, tagname='OutputEntities', required=False) help = fields_.CDATA(tagname='Help', default='') disclaimer = fields_.CDATA(tagname='Disclaimer', default='') sets = fields_.List(Set, tagname='defaultSets') stealthlevel = fields_.Integer(tagname='StealthLevel', default=0) authenticator = fields_.String(tagname='Authenticator', required=False) def appendelement(self, other): if isinstance(other, Set): self.sets.append(other) elif isinstance(other, TransformProperty): self.properties.fields_.append(other) elif isinstance(other, InputConstraint) or isinstance( other, InputEntity): self.input.append(other) elif isinstance(other, OutputEntity): self.output.append(other) def removeelement(self, other): if isinstance(other, Set): self.sets.remove(other) if isinstance(other, TransformProperty): self.properties.fields_.remove(other) elif isinstance(other, InputConstraint) or isinstance( other, InputEntity): self.input.remove(other) elif isinstance(other, OutputEntity): self.output.remove(other)
class Transform(MaltegoElement): name = fields_.String()
class Set(MaltegoElement): name = fields_.String()
class RegexGroup(MaltegoElement): property = fields_.String(required=False)