Etl2Pcap

Receives an ETL file and converts it to a PCAP file.

python · Windows Forensics

Source

import demistomock as demisto  # noqa: F401
from CommonServerPython import *  # noqa: F401
import subprocess
import uuid


def etl_to_pcap(etl_file_path, output_file_path):
    etl_file_path = os.path.abspath("./" + etl_file_path)
    output_file_path = os.path.abspath("./" + output_file_path)
    cmd = ["python", "/var/opt/etl/etl2pcap.py", etl_file_path, output_file_path]
    p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    p.communicate()


def get_file_name(entry_id):    # pragma: no cover
    ctx = demisto.context()
    res = demisto.dt(ctx, f"File(val['EntryID'] == '{entry_id}')")
    if res:
        if type(res) is list:
            res = res[0]
        return os.path.splitext(res.get("Name", ""))[0]
    return None


def main():  # pragma: no cover
    entry_id = demisto.args().get("EntryID")
    res = demisto.getFilePath(entry_id)
    if not res or res.get("path") is None:
        return_error("Cannot find file path for entry ID: " + entry_id)
    etl_file_path = res.get("path")
    output_file_name = get_file_name(entry_id)
    if output_file_name is None:
        output_file_name = str(uuid.uuid4())
    output_file_path = output_file_name + ".pcap"
    etl_to_pcap(etl_file_path, output_file_path)
    with open(output_file_path, "rb") as f:
        entry = fileResult(output_file_path, f.read())
        entry["EntryContext"] = {
            "EtlToPcap": {
                "NewFileName": output_file_path,
            }
        }
        demisto.results(entry)


if __name__ in ["__main__", "__builtin__", "builtins"]:
    main()

README

Receives an ETL file and converts it to a PCAP file.

Script Data


Name Description
Script Type python3
Tags  
Cortex XSOAR Version 6.0.0

Used In


This script is used in the following playbooks and scripts.

  • PS-Remote Get Network Traffic

Inputs


Argument Name Description
EntryID The file entry ID of the ETL File.

Outputs


Path Description Type
EtlToPcap.NewFileName The output filename. Unknown