forked from phantomcyber/playbooks
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ReversingLabs_TitaniumScale_File_Analysis.py
78 lines (52 loc) · 2.81 KB
/
ReversingLabs_TitaniumScale_File_Analysis.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
"""
Detonates file on ReversingLabs TitaniumScale instance and retrieves report.
"""
import phantom.rules as phantom
import json
from datetime import datetime, timedelta
@phantom.playbook_block()
def on_start(container):
phantom.debug('on_start() called')
# call 'titaniumscale_detonate_file' block
titaniumscale_detonate_file(container=container)
return
@phantom.playbook_block()
def titaniumscale_detonate_file(action=None, success=None, container=None, results=None, handle=None, filtered_artifacts=None, filtered_results=None, custom_function=None, **kwargs):
phantom.debug("titaniumscale_detonate_file() called")
# phantom.debug('Action: {0} {1}'.format(action['name'], ('SUCCEEDED' if success else 'FAILED')))
container_artifact_data = phantom.collect2(container=container, datapath=["artifact:*.cef.vaultId","artifact:*.id"])
parameters = []
# build parameters list for 'titaniumscale_detonate_file' call
for container_artifact_item in container_artifact_data:
if container_artifact_item[0] is not None:
parameters.append({
"vault_id": container_artifact_item[0],
"full_report": True,
"context": {'artifact_id': container_artifact_item[1]},
})
################################################################################
## Custom Code Start
################################################################################
# Write your custom code here...
################################################################################
## Custom Code End
################################################################################
phantom.act("detonate file and get report", parameters=parameters, name="titaniumscale_detonate_file", assets=["reversinglabs_titaniumscale_v2"])
return
@phantom.playbook_block()
def on_finish(container, summary):
phantom.debug("on_finish() called")
detonate_file_and_get_report_1_result_data = phantom.collect2(container=container, datapath=["detonate_file_and_get_report_1:action_result.data.*.tc_report.classification.classification"])
detonate_file_and_get_report_1_result_item_0 = [item[0] for item in detonate_file_and_get_report_1_result_data]
output = {
"classification": detonate_file_and_get_report_1_result_item_0,
}
################################################################################
## Custom Code Start
################################################################################
# Write your custom code here...
################################################################################
## Custom Code End
################################################################################
phantom.save_playbook_output_data(output=output)
return