July 29, 2014, 03:32:45 am
Maltego Forum

Username
Password

Pages: [1]
Print
Author Topic: Python Lib  (Read 60079 times)
AndrewMacPherson
Administrator
Full Member
*****
Posts: 132


« on: January 08, 2009, 11:39:50 am »

So here is a small python lib for creating your own transforms, just takes out some of the hassle Smiley
Note: The Lib is attached to this post

Basic Example: (will create a Person Entity with a value of "Andrew MacPherson"

#!/usr/bin/python
import sys
from MaltegoTransform import *
me = MaltegoTransform();
me.debug("Starting Transform"); #Debug Info
me.addEntity("Person","Andrew MacPherson"); #New Person Entity
me.returnOutput();


More Advanced Example:
#!/usr/bin/python
import sys
from MaltegoTransform import *
me = MaltegoTransform();
me.debug("Starting Transform"); #Debug Info
NewEnt = me.addEntity("Person","Andrew MacPherson"); #New Person Entity
NewEnt.setWeight(300); #Set the Weight of the entity
NewEnt.addAdditionalFields("Age","Age Of Person","sastrict","24");
me.returnOutput();


Available Functions:

Maltego Transform:
==============
addEntity(enType,enValue):
enType: Entity Type
enValue: Entity Value

addEntityToMessage(maltegoEntity):
maltegoEntity: MaltegoEntity Object to be added to the outputted "message"

addUIMessage(message,messageType="Inform"):
message: The Message to be displayed
messageType: FatalError/PartialError/Inform/Debug - note this defaults to "Inform" see documentation for additional information

addException(exceptionString):
exceptionString: Exception message to be thrown (eg "Error! Could not connect to 10.4.0.1")

throwExceptions():
Simply return exception XML to the application

returnOutput():
Function to return all the added entities as well as the UI Messages

writeSTDERR(msg):
Function to write msg to STDErr

heartbeat():
Function to produce a "heartbeat"

progress(percent):
Function to output progress, eg MaltegoTransform.progress(20); #20% done

debug(msg)
msg: Debug message to be sent out


Maltego Entity
===========

__init__(eT,v)
eT: Entity Type (eg. Person,IPAddress)
v: Value for this entity

setType(type)
Setter for the entity Type property

setValue(value)
Setter for the entity Value property

setWeight(weight)
Setter for the entity Weight property

setDisplayInformation(displayinformation)
Setter for the entity Display Information property

addAdditionalFields(fieldName=None,displayName=None,matchingRule=False,value=None)
Set additional fields for the entity
fieldName: Name used on the code side, eg displayName may be "Age of Person", but the app and your transform will see it as the fieldName variable
displayName: display name of the field shown within the entity properties
matchingRule: either "strict" for strict matching on this specific field or false
value: The additional fields value

setIconURL(iconURL)
Setter for the entity Icon URL (entity Icon) property

returnEntity()
Prints the entity with the correct XML formatting


* MaltegoTransform-py-101.zip (1.14 KB - downloaded 701 times.)
« Last Edit: January 11, 2009, 05:04:53 am by AndrewMohawk » Logged
AndrewMacPherson
Administrator
Full Member
*****
Posts: 132


« Reply #1 on: February 11, 2009, 12:06:49 pm »

I have updated the python library slightly with the following:

def parseArguments(self,argv):
*This function will parse the system arguments for you so that you dont have to!*
usage example: myMaltegoTransform.parseArguments(sys.argv);

These can then be called with the following:

def getValue(self):
*This function will return the value parameter, ie the value displayed on the graph*
usage example: theValue = myMaltegoTransform.getValue()

def getVar(self,varName):
*This function will return the entity property value for the variable given in varName*
usage example: entityValue = myMaltegoTransform.getVar("ESSID")

Few other fixes within the python lib as well as some cleaning up. I have included the file as a .py and you can just overwrite your previous file!

-AM

* MaltegoTransform.py (5.27 KB - downloaded 695 times.)
Logged
Pages: [1]
Print
Jump to: