コード例 #1
0
ファイル: configuration.py プロジェクト: wtfuzz/canari3
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=".")
コード例 #2
0
ファイル: message.py プロジェクト: wtfuzz/canari3
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='.')
コード例 #3
0
ファイル: configuration.py プロジェクト: wtfuzz/canari3
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
コード例 #4
0
ファイル: message.py プロジェクト: mgcfish/canari3
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, **kwargs)

    value = fields_.CDATA(tagname='.')
    type = fields_.String(attrname='Type', default='text/text')
    name = fields_.String(attrname='Name')
コード例 #5
0
ファイル: configuration.py プロジェクト: wtfuzz/canari3
class InputConstraint(MaltegoElement):
    class meta:
        tagname = 'Entity'

    type = fields_.String()
    min = fields_.Integer(default=1)
    max = fields_.Integer(default=1)
コード例 #6
0
ファイル: configuration.py プロジェクト: wtfuzz/canari3
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)
コード例 #7
0
ファイル: message.py プロジェクト: wtfuzz/canari3
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)
    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
コード例 #8
0
ファイル: configuration.py プロジェクト: wtfuzz/canari3
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
コード例 #9
0
ファイル: configuration.py プロジェクト: wtfuzz/canari3
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
ファイル: configuration.py プロジェクト: wtfuzz/canari3
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
ファイル: configuration.py プロジェクト: wtfuzz/canari3
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
ファイル: message.py プロジェクト: mgcfish/canari3
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):
        super(MaltegoElement, self).__init__(value=value)

    def __str__(self):
        return self.value
コード例 #13
0
ファイル: configuration.py プロジェクト: wtfuzz/canari3
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
ファイル: configuration.py プロジェクト: wtfuzz/canari3
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
ファイル: message.py プロジェクト: mgcfish/canari3
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='.')
コード例 #16
0
ファイル: configuration.py プロジェクト: wtfuzz/canari3
class EntityCategory(MaltegoElement):

    name = fields_.String()
コード例 #17
0
ファイル: configuration.py プロジェクト: wtfuzz/canari3
class Transform(MaltegoElement):
    name = fields_.String()
コード例 #18
0
ファイル: configuration.py プロジェクト: wtfuzz/canari3
class Set(MaltegoElement):
    name = fields_.String()
コード例 #19
0
ファイル: configuration.py プロジェクト: wtfuzz/canari3
class attr(MaltegoElement):
    name = fields_.String()
    stringvalue = fields_.String(required=False)
    boolvalue = fields_.Boolean(required=False)
コード例 #20
0
ファイル: configuration.py プロジェクト: wtfuzz/canari3
class RegexGroup(MaltegoElement):

    property = fields_.String(required=False)
コード例 #21
0
ファイル: configuration.py プロジェクト: wtfuzz/canari3
class Authentication(MaltegoElement):

    type = fields_.String(default=AuthenticationType.Anonymous)
コード例 #22
0
ファイル: configuration.py プロジェクト: wtfuzz/canari3
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
コード例 #23
0
ファイル: configuration.py プロジェクト: wtfuzz/canari3
class Protocol(MaltegoElement):

    version = fields_.String(default='2.0')