Beispiel #1
0
    def post(self):
        
        if 'value' in self.request.arguments():
        
            #value = base64.b64decode(self.request.get('value'))

            fields = base64.b64decode(self.request.get('fields'))
            fields = fields.split('#')
            fs = {}
            for f in fields:
                if f.strip() != '':
                    field,f_value = tuple(f.split('='))
                    fs[field] = f_value
        
            mt = MaltegoTransform()
            
            #surname = value.split()[-1]
            #first_name = value.split()[0]
            #t = solve_persona_ar( ['persona_ar','telefono',surname+' '+first_name] )
            

            
            t = solve_persona_ar( ['persona_ar','telefono',fs['lastname']+' '+fs['firstname'] ] )

            for solution in t:
            
                new_ent = mt.addEntity("PhoneNumber", '54 ' + solution[-1].replace('(','').replace(')','').replace('-',' ') )
                
                phone = solution[-1].replace('(','').replace(')','').replace('-',' ')
                country = '54'
                city = phone.split()[0]
                area = phone.split()[1]
                last_digits = phone.split()[2]
                
                new_ent.addAdditionalFields(displayName='Country Code',fieldName='countrycode',value=country,matchingRule='strict')
                new_ent.addAdditionalFields(displayName='City Code',fieldName='citycode',value=city,matchingRule='strict')
                new_ent.addAdditionalFields(displayName='Area Code',fieldName='areacode',value=area,matchingRule='strict')
                new_ent.addAdditionalFields(displayName='Last Digits',fieldName='lastnumbers',value=last_digits,matchingRule='strict')
                new_ent.addAdditionalFields(displayName='PhoneType',fieldName='type',value='landline',matchingRule='strict')
        
        
            op = mt.returnOutputString()

            self.response.out.write( op )

            self.response.headers['Content-Type'] = "text/xml"

        else:


            self.response.out.write( "PersonToPhoneNumberArgentina Maltego Transform" )

            self.response.headers["Content-Type"] = "text/plain"
Beispiel #2
0
def main():

    print "Content-type: xml\n\n";
    MaltegoXML_in = sys.stdin.read()
    if MaltegoXML_in <> '':
        m = MaltegoMsg(MaltegoXML_in)
    
        # Shows inputs in client as error message
        # Enable debug on this transform in TDS to see 
        # Comment this section to run the transform
        print 'Type='+ m.Type +'  Value='+ m.Value + '  Weight=' + m.Weight + '  Limit=' + m.Slider
        print '\nAdditional fields:'
        for item in m.AdditionalFields.keys():
            print 'N:'+item+'  V:'+m.AdditionalFields[item]
        
        print "\nTransform settings:"
        for item in m.TransformSettings.keys():
            print "N:"+item+" V:"+m.TransformSettings[item]
        
        print "\n\nXML received: \n" + MaltegoXML_in
        # Comment up to here..     
    
    
    
    
        # Start writing your transform here!                
        # This one works on Person Entity as input
        # Swaps firstname and lastname, weight of 99, adds age field
        # Needs'Age' and 'ImageURL' transform settings
        
        Age="0"
        if m.TransformSettings["Age"] is not None:
            Age = m.TransformSettings["Age"]

        TRX = MaltegoTransform()
    
        Ent=TRX.addEntity("maltego.Person","doesnotmatter_its_computed")
        Ent.setWeight(99)
        Ent.addAdditionalFields("firstname","First Names","strict",m.AdditionalFields["lastname"])
        Ent.addAdditionalFields("lastname","Surname","strict",m.AdditionalFields["firstname"])
        Ent.addAdditionalFields("Age","Age of Person","strict",Age)
        
        if m.TransformSettings["ImageURL"] is not None:
            Ent.setIconURL(m.TransformSettings["ImageURL"])
        
        TRX.returnOutput()
Beispiel #3
0
def main():

    print "Content-type: xml\n\n"
    MaltegoXML_in = sys.stdin.read()
    if MaltegoXML_in <> '':
        m = MaltegoMsg(MaltegoXML_in)

        # Shows inputs in client as error message
        # Enable debug on this transform in TDS to see
        # Comment this section to run the transform
        print 'Type=' + m.Type + '  Value=' + m.Value + '  Weight=' + m.Weight + '  Limit=' + m.Slider
        print '\nAdditional fields:'
        for item in m.AdditionalFields.keys():
            print 'N:' + item + '  V:' + m.AdditionalFields[item]

        print "\nTransform settings:"
        for item in m.TransformSettings.keys():
            print "N:" + item + " V:" + m.TransformSettings[item]

        print "\n\nXML received: \n" + MaltegoXML_in
        # Comment up to here..

        # Start writing your transform here!
        # This one works on Person Entity as input
        # Swaps firstname and lastname, weight of 99, adds age field
        # Needs'Age' and 'ImageURL' transform settings

        Age = "0"
        if m.TransformSettings["Age"] is not None:
            Age = m.TransformSettings["Age"]

        TRX = MaltegoTransform()

        Ent = TRX.addEntity("maltego.Person", "doesnotmatter_its_computed")
        Ent.setWeight(99)
        Ent.addAdditionalFields("firstname", "First Names", "strict",
                                m.AdditionalFields["lastname"])
        Ent.addAdditionalFields("lastname", "Surname", "strict",
                                m.AdditionalFields["firstname"])
        Ent.addAdditionalFields("Age", "Age of Person", "strict", Age)

        if m.TransformSettings["ImageURL"] is not None:
            Ent.setIconURL(m.TransformSettings["ImageURL"])

        TRX.returnOutput()
Beispiel #4
0
    def post(self):

        if 'value' in self.request.arguments():

            #value = base64.b64decode(self.request.get('value'))

            mt = MaltegoTransform()
            #new_ent = mt.addEntity("Phrase", value + '!!!')

            op = mt.returnOutputString()

            self.response.out.write(op)

            self.response.headers['Content-Type'] = "text/xml"

        else:

            self.response.out.write("Sample Maltego Transform")

            self.response.headers["Content-Type"] = "text/plain"
Beispiel #5
0
    def post(self):
        
        if 'value' in self.request.arguments():
        
            #value = base64.b64decode(self.request.get('value'))
        
            mt = MaltegoTransform()
            #new_ent = mt.addEntity("Phrase", value + '!!!')
        
            op = mt.returnOutputString()

            self.response.out.write( op )

            self.response.headers['Content-Type'] = "text/xml"

        else:

            self.response.out.write( "Sample Maltego Transform" )

            self.response.headers["Content-Type"] = "text/plain"
Beispiel #6
0
    def post(self):

        if 'value' in self.request.arguments():

            #value = base64.b64decode(self.request.get('value'))

            fields = base64.b64decode(self.request.get('fields'))
            fields = fields.split('#')
            fs = {}
            for f in fields:
                if f.strip() != '':
                    field, f_value = tuple(f.split('='))
                    fs[field] = f_value

            mt = MaltegoTransform()

            #surname = value.split()[-1]
            #first_name = value.split()[0]
            #t = solve_persona_ar( ['persona_ar','telefono',surname+' '+first_name] )

            t = solve_persona_ar([
                'persona_ar', 'telefono',
                fs['lastname'] + ' ' + fs['firstname']
            ])

            for solution in t:

                new_ent = mt.addEntity(
                    "PhoneNumber", '54 ' + solution[-1].replace(
                        '(', '').replace(')', '').replace('-', ' '))

                phone = solution[-1].replace('(',
                                             '').replace(')',
                                                         '').replace('-', ' ')
                country = '54'
                city = phone.split()[0]
                area = phone.split()[1]
                last_digits = phone.split()[2]

                new_ent.addAdditionalFields(displayName='Country Code',
                                            fieldName='countrycode',
                                            value=country,
                                            matchingRule='strict')
                new_ent.addAdditionalFields(displayName='City Code',
                                            fieldName='citycode',
                                            value=city,
                                            matchingRule='strict')
                new_ent.addAdditionalFields(displayName='Area Code',
                                            fieldName='areacode',
                                            value=area,
                                            matchingRule='strict')
                new_ent.addAdditionalFields(displayName='Last Digits',
                                            fieldName='lastnumbers',
                                            value=last_digits,
                                            matchingRule='strict')
                new_ent.addAdditionalFields(displayName='PhoneType',
                                            fieldName='type',
                                            value='landline',
                                            matchingRule='strict')

            op = mt.returnOutputString()

            self.response.out.write(op)

            self.response.headers['Content-Type'] = "text/xml"

        else:

            self.response.out.write(
                "PersonToPhoneNumberArgentina Maltego Transform")

            self.response.headers["Content-Type"] = "text/plain"
import argparse
from Maltego import MaltegoTransform

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='Maltego transform')
    parser.add_argument('DOMAIN', help='Domain value')
    parser.add_argument('FIELDS', nargs='*', help='Additional fields')
    args = parser.parse_args()

    trx = MaltegoTransform()

    for subd in ["www", "smtp", "admin"]:
        trx.addEntity("maltego.Domain", subd + '.' + args.DOMAIN)

    trx.addUIMessage("completed!")
    print(trx.returnOutput())