41 lines
1.5 KiB
Python
41 lines
1.5 KiB
Python
import sys
|
|
import os
|
|
from stix2.v21 import (Indicator, Malware, Relationship, Bundle, DomainName)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
if os.path.isfile("malware.stix2"):
|
|
os.remove("malware.stix2")
|
|
|
|
with open("domains.txt") as f:
|
|
domains = list(set([a.strip() for a in f.read().split()]))
|
|
|
|
with open("file_paths.txt") as f:
|
|
filepaths = list(set([a.strip() for a in f.read().split()]))
|
|
|
|
with open("android_properties.txt") as f:
|
|
properties = list(set([a.strip() for a in f.read().split()]))
|
|
|
|
res = []
|
|
malware = Malware(name="MercenarySpywareCampaign", is_family=False, description="Targeted campaign by a mercenary spyware company")
|
|
res.append(malware)
|
|
for d in domains:
|
|
i = Indicator(indicator_types=["malicious-activity"], pattern="[domain-name:value='{}']".format(d), pattern_type="stix")
|
|
res.append(i)
|
|
res.append(Relationship(i, 'indicates', malware))
|
|
|
|
for f in filepaths:
|
|
i = Indicator(indicator_types=["malicious-activity"], pattern="[file:path='{}']".format(f), pattern_type="stix")
|
|
res.append(i)
|
|
res.append(Relationship(i, 'indicates', malware))
|
|
|
|
for p in properties:
|
|
i = Indicator(indicator_types=["malicious-activity"], pattern="[android-property:name='{}']".format(p), pattern_type="stix")
|
|
res.append(i)
|
|
res.append(Relationship(i, 'indicates', malware))
|
|
|
|
bundle = Bundle(objects=res)
|
|
with open("malware.stix2", "w+") as f:
|
|
f.write(bundle.serialize(indent=4))
|
|
print("malware.stix2 file created")
|