Пример #1
0
class _Entity(MaltegoElement):
    class meta:
        tagname = 'Entity'

    type = fields_.String(attrname='Type')
    fields = fields_.Dict(Field,
                          key='name',
                          tagname='AdditionalFields',
                          required=False,
                          dictclass=OrderedDict)
    labels = fields_.Dict(Label,
                          key='name',
                          tagname='DisplayInformation',
                          required=False,
                          dictclass=OrderedDict)
    value = fields_.String(tagname='Value')
    weight = fields_.Integer(tagname='Weight', default=1)
    icon_url = fields_.String(tagname='IconURL', required=False)

    def __iadd__(self, other):
        if isinstance(other, Field):
            self.fields[other.name] = other
        elif isinstance(other, Label):
            self.labels[other.name] = other
        return self
Пример #2
0
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=".")
Пример #3
0
class Field(MaltegoElement):
    """Fields are additional sources of input that are attached to an entity."""
    def __init__(self, name=None, value=None, **kwargs):
        super(Field, self).__init__(name=name, value=value, **kwargs)

    name = fields_.String(attrname='Name')
    display_name = fields_.String(attrname='DisplayName', required=False)
    matching_rule = fields_.String(attrname='MatchingRule', default=MatchingRule.Strict, required=False)
    value = fields_.String(tagname='.')
Пример #4
0
class TransformSet(MaltegoElement):

    name = fields_.String()
    description = fields_.String(default='')
    transforms = fields_.List(Transform, tagname='Transforms')

    def __iadd__(self, other):
        if isinstance(other, Transform):
            self.transforms.append(other)
        return self
Пример #5
0
class Label(MaltegoElement):
    """
    Labels are used to convey extra information associated with an Entity in the Maltego user interface. Unlike entity
    fields, labels are only transmitted in response messages and cannot be passed from transform to transform as a
    source of input.
    """
    def __init__(self, name=None, value=None, **kwargs):
        super(Label, self).__init__(name=name, value=value or '', **kwargs)

    value = fields_.CDATA(tagname='.')
    type = fields_.String(attrname='Type', default='text/text')
    name = fields_.String(attrname='Name')
Пример #6
0
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 __iadd__(self, other):
        if isinstance(other, Transform):
            self.transforms.append(other)
        return self
Пример #7
0
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)
Пример #8
0
class InputConstraint(MaltegoElement):
    class meta:
        tagname = 'Entity'

    type = fields_.String()
    min = fields_.Integer(default=1)
    max = fields_.Integer(default=1)
Пример #9
0
class attributes(MaltegoElement):

    version = fields_.String(default='1.0')
    fileobjects = fields_.Dict(fileobject, key='name')

    def __iadd__(self, other):
        if isinstance(other, fileobject):
            self.fileobjects[other.name] = other
        return self
Пример #10
0
class fileobject(MaltegoElement):

    name = fields_.String()
    attrs = fields_.Dict(attr, key='name')

    def __iadd__(self, other):
        if isinstance(other, attr):
            self.attrs[other.name] = other
        return self
Пример #11
0
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)
Пример #12
0
class MaltegoException(MaltegoElement, Exception):
    """MaltegoException is the default container for exception messages."""
    class meta:
        tagname = 'Exception'

    value = fields_.String(tagname='.')
    code = fields_.Integer(attrname='code', required=False)

    def __init__(self, value=None):
        super(MaltegoElement, self).__init__(value=value)

    def __str__(self):
        return self.value
Пример #13
0
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', required=False)
    defaultvalue = fields_.String(tagname='DefaultValue', required=False)
    samplevalue = fields_.String(tagname='SampleValue', default='')
Пример #14
0
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', required=False)
    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)
Пример #15
0
class Protocol(MaltegoElement):

    version = fields_.String(default='2.0')
Пример #16
0
class Authentication(MaltegoElement):

    type = fields_.String(default=AuthenticationType.Anonymous)
Пример #17
0
class EntityCategory(MaltegoElement):

    name = fields_.String()
Пример #18
0
class Transform(MaltegoElement):
    name = fields_.String()
Пример #19
0
class RegexGroup(MaltegoElement):

    property = fields_.String(required=False)
Пример #20
0
class BaseEntities(MaltegoElement):
    class meta:
        tagname = 'BaseEntities'

    base_entity = fields_.String(tagname='BaseEntity', default='')
Пример #21
0
class MaltegoTransform(MaltegoElement):
    """This is the complete MaltegoTransform element definition that is present in Maltego profiles. It defines every
    aspect of a transform including it's input entity type, transform set, template, etc."""

    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 __iadd__(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)
        return self
Пример #22
0
class UIMessage(MaltegoElement):
    def __init__(self, message=None, **kwargs):
        super(UIMessage, self).__init__(message=message, **kwargs)

    type = fields_.String(attrname='MessageType', default=UIMessageType.Inform)
    message = fields_.String(tagname='.')
Пример #23
0
class Set(MaltegoElement):
    name = fields_.String()
Пример #24
0
class attr(MaltegoElement):
    name = fields_.String()
    stringvalue = fields_.String(required=False)
    boolvalue = fields_.Boolean(required=False)