def create_entities(cls, request, response): domain_name = request.Value try: path = pathlib.Path(__file__).parent.absolute() with open(f"{path}/../settings.json", 'r') as h: contents = h.read().strip('\n') settings = json.loads(contents) key = settings['APIKEY'] h.close() intelx = intelxapi.intelx(key) results = intelx.search(domain_name) for record in results['records']: if record['name'] == "": name = record['systemid'] else: # we have to strip all unicode chracters, cuz maltego-trx can not handle them properly name = record['name'] stripped_name = (c for c in name if 0 < ord(c) < 127) name = ''.join(stripped_name) entity = response.addEntity('intelx.searchresult') entity.addProperty('properties.intelligencexsearchresult', 'properties.intelligencexsearchresult', 'loose', name) entity.addProperty('SID', 'SID', 'loose', record['systemid']) entity.addProperty("Type", "Type", "loose", record['type']) entity.addProperty("Media", "Media", "loose", record['media']) entity.addProperty("Bucket", "Bucket", "loose", record['bucket']) except Exception as e: response.addUIMessage("Error: " + str(e), UIM_TYPES["partial"])
def create_entities(cls, request, response): domain_name = request.Value try: path = pathlib.Path(__file__).parent.absolute() with open(f"{path}/../settings.json", 'r') as h: contents = h.read().strip('\n') settings = json.loads(contents) key = settings['APIKEY'] h.close() intelx = intelxapi.intelx(key, ua='IX Maltego Transform/2') results = intelx.phonebooksearch(domain_name, target=2) for selector in results: for result in selector['selectors']: response.addEntity(Email, result['selectorvalue']) except Exception as e: response.addUIMessage("Error: " + str(e), UIM_TYPES["partial"])
def create_entities(cls, request, response): domain_name = request.Value try: path = pathlib.Path(__file__).parent.absolute() with open(f"{path}/../settings.json", 'r') as h: contents = h.read().strip('\n') settings = json.loads(contents) key = settings['APIKEY'] h.close() intelx = intelxapi.intelx(key, ua='IX Maltego Transform/3') results = intelx.search( domain_name, maxresults=12 ) # request.Slider() returns 100 in Maltego CE, temp hardcode to 12 for testing for record in results['records']: if record['name'] == "": name = record['systemid'] else: # we have to strip all unicode chracters, cuz maltego-trx can not handle them properly name = record['name'] stripped_name = (c for c in name if 0 < ord(c) < 127) name = ''.join(stripped_name) entity = response.addEntity('intelx.searchresult') entity.addProperty('properties.intelligencexsearchresult', 'properties.intelligencexsearchresult', 'loose', name) entity.addProperty('SID', 'SID', 'loose', record['systemid']) entity.addProperty("Type", "Type", "loose", record['type']) entity.addProperty("Media", "Media", "loose", record['media']) entity.addProperty("Bucket", "Bucket", "loose", record['bucket']) preview = intelx.FILE_PREVIEW(record['type'], record['media'], 0, record['storageid'], record['bucket']) preview = preview.replace('\n', '<br>') preview = html.escape(preview) stripped_preview = (c for c in preview if 0 < ord(c) < 127) preview = ''.join(stripped_preview) entity.addDisplayInformation(preview, 'Preview') except Exception as e: response.addUIMessage("Error: " + str(e), UIM_TYPES["partial"])
def create_entities(cls, request, response): domain_name = request.Value try: path = pathlib.Path(__file__).parent.absolute() with open(f"{path}/../settings.json", 'r') as h: contents = h.read().strip('\n') settings = json.loads(contents) key = settings['APIKEY'] h.close() intelx = intelxapi.intelx(key) results = intelx.phonebooksearch(domain_name, target=3) for selector in results: for result in selector['selectors']: entity = response.addEntity(URL) entity.addProperty('short-title', 'Title', 'loose', result['selectorvalue']) entity.addProperty('url', 'URL', 'loose', result['selectorvalue']) except Exception as e: response.addUIMessage("Error: " + str(e), UIM_TYPES["partial"])
def create_entities(cls, request, response): domain_name = request.Value try: path = pathlib.Path(__file__).parent.absolute() with open(f"{path}/../settings.json", 'r') as h: contents = h.read().strip('\n') settings = json.loads(contents) key = settings['APIKEY'] h.close() intelx = intelxapi.intelx(key, ua='IX Maltego Transform/3') history = intelx.history(str(request.getProperty("Indexfile"))) for entry in history: entity = response.addEntity('intelx.searchresult', entry['name']) entity.addProperty('SID', 'SID', 'loose', entry['systemid']) entity.addProperty("Type", "Type", "loose", entry['type']) entity.addProperty("Media", "Media", "loose", entry['media']) entity.addProperty("Bucket", "Bucket", "loose", entry['bucket']) except Exception as e: response.addUIMessage("Error: " + str(e), UIM_TYPES["partial"])
Accountslist=[] try: with open('Credstuffing_October.csv','r') as f: for value in f: Accountslist.append(value.strip()) except FileNotFoundError: print('Error opening file') accounts100=Accountslist[] print('The number of accounts to be searched will be %s'%(len(accounts100))) intelx=intelx("API KEY") # API KEY from Intelx #results=[] # uncomment for using the first time for target in accounts100: result=intelx.search(target) results.append(result) #%% for resu in results: for record in resu['records']: intelx.FILE_READ(record['systemid'], 0, record['bucket'], "file_%s.txt"%(record['randomid'])) #%% accountsval=[]
from intelxapi import intelx startdate = "2014-01-01 00:00:00" enddate = "2015-02-02 23:00:00" intelx = intelx() search = intelx.search('riseup.net') for record in search['records']: print(f"Found media type {record['media']} in {record['bucket']}")
from intelxapi import intelx import modules.key as KEY intelx = intelx(KEY.intelx) def get_pastes(target): results = intelx.search(target, buckets=['pastes'], maxresults=2000) record_count = len(results['records']) print( f"|----[INFO][>] Found {record_count} records for {target} in bucket 'pastes'" ) if record_count > 0: print("|----[INFO][>] Downloading paste in file.txt...") intelx.FILE_READ(results['records'][0]['systemid'], 0, results['records'][0]['bucket'], "file.txt") def get_leaks(target): results = intelx.search(target, buckets=['leaks.public', 'leaks.private'], maxresults=2000) record_count = len(results['records']) print( f"|----[INFO][>] Found {record_count} records for {target} in bucket 'leaks'" ) if record_count > 0: print("|----[INFO][>] Downloading leak in file.txt...") intelx.FILE_READ(results['records'][0]['systemid'], 0,
help="set the search type to a phonebook search") parser.add_argument('--emails', help="show only emails from phonebook results", action="store_true") parser.add_argument('--capabilities', help="show your account's capabilities", action="store_true") parser.add_argument('--stats', help="show stats of search results", action="store_true") parser.add_argument('--raw', help="show raw json", action="store_true") args = parser.parse_args() # configure IX & the API key if 'INTELX_KEY' in os.environ: ix = intelx(os.environ['INTELX_KEY']) elif args.apikey: ix = intelx(args.apikey) else: print( 'No API key specified. Please use the "-apikey" parameter or set the environment variable "INTELX_KEY".' ) exit() # main application flow if not args.raw: print(banner) if len(sys.argv) < 2:
def create_entities(cls, request, response): try: path = pathlib.Path(__file__).parent.absolute() sid = request.getProperty("SID") with open(f"{path}/../settings.json", 'r') as h: contents = h.read().strip('\n') settings = json.loads(contents) key = settings['APIKEY'] h.close() intelx = intelxapi.intelx(key, ua='IX Maltego Transform/3') selectors = intelx.selectors(sid) for selector in selectors: if selector['type'] == 1: # Email entity = response.addEntity(Email, selector['selector']) entity.addProperty('SID', 'SID', 'loose', selector['systemid']) elif selector['type'] == 2: # Domain entity = response.addEntity(Domain, selector['selector']) entity.addProperty('SID', 'SID', 'loose', selector['systemid']) elif selector['type'] == 3: # URL entity = response.addEntity(URL, selector['selector']) entity.addProperty('url', 'url', 'loose', selector['selector']) entity.addProperty('SID', 'SID', 'loose', selector['systemid']) elif selector['type'] == 4: # Phone entity = response.addEntity(PhoneNumber, selector['selector']) entity.addProperty('SID', 'SID', 'loose', selector['systemid']) elif selector['type'] == 6: # IP entity = response.addEntity(IPAddress, selector['selector']) entity.addProperty('SID', 'SID', 'loose', selector['systemid']) elif selector['type'] == 17: # Credit card entity = response.addEntity('intelx.creditcard', selector['selector']) entity.addProperty('SID', 'SID', 'loose', selector['systemid']) elif selector['type'] == 22: # MAC address entity = response.addEntity('intelx.macaddress', selector['selector']) entity.addProperty('MAC Address', 'MAC Address', 'loose', selector['selector']) entity.addProperty('SID', 'SID', 'loose', selector['systemid']) else: entity = response.addEntity('intelx.selector', selector['selector']) entity.addProperty('SID', 'SID', 'loose', selector['systemid']) except Exception as e: response.addUIMessage("Error: " + str(e), UIM_TYPES["partial"])