File Utilities

Overview

File Utilities is a set of file actions used to power up playbook capabilities.

Actions

Add Attachment

Description

Adds an attachment to the case wall.

Parameters

Parameter Type Default Value Is Mandatory Description
Name String N/A Yes Specify the name of the attachment that will be visible in the case wall.
IsFavorite Checkbox Unchecked No Specify whether you want the attachment to be marked as favorite in the case wall.
Base64 Blob String N/A Yes Specify the attachment's Base64 blob. Use “Get Files as Base64” action to get the Base 64 blob.
Type String N/A Yes Specify the extension of the file
Description String N/A Yes Specify description of the file.


Example

In this scenario, a Base64 blob is derived from a previous action and then is attached to the case wall. Once added to the wall, it can then be used for further analysis. This action is used alongside the “Get File as Base64” action, which generates the Base64 string of a file.

Action Configurations

Parameter Value
Entities All entities
Name Malicious_EML
IsFavorite Checked
Base64 Blob [FileUtilities_Get Files as Base64_1.JsonResult | "data.base64"]
Type [FileUtilities_Get Files as Base64_1.JsonResult | "data.extension"
Description Malicious EML file from end user.

Action Results

  • Script Result
    Script Result Name Value options Example
    is_success True/False is_success:True
  • JSON Result
     {
    "evidenceName" : "Malicious_EML", 
    "description " : "Malicious EML file from end user.", 
    "evidenceThumbnailBase64" : "", 
    "evidenceId" : 322, 
    "fileType" : ".eml", 
    "creatorUserId" : "Siemplify automation", 
    "id " : 322, 
    "type"  : 4, 
    "caseId" : 51187, 
    "isFavorite" : true, 
    "modificationTimeUnixTimeInMs" : 1664206699128, 
    "creationTimeUnixTimeInMs" : 1664206699128, 
    "alertIdentifier" : null
    }

Add Entity to File

Description

Adds an identifier of a target entity to a local file. It will only add one occurrence of the entity to the file and will return False if the entity already exists.

Parameters

Parameter Type Default Value Is Mandatory Description
Filename String N/A Yes Specify the name of the file to write entities to. File will be stored in /tmp/ directory.

Example

In this scenario, suspicious hostname entity identifiers are added to a file called iocs_list.txt in /mnt/fileshare/ directory.

Action Configurations

Parameter Value
Entities Suspicious hostnames
Filename /mnt/fileshare/ocs_list.txt

Action Results

  • Script Result
    Script Result Name Value options Example
    AddedAllEntities True/False True

Count Files

Description

Counts number of files in a given folder path according to a specific file extension.

Parameters

Parameter Type Default Value Is Mandatory Description
File Extension String *.txt No Specify the file extension to count by.
Folder String N/A Yes Specify the folder path which you would like to count the files.
Is Recursive Checkbox Unchecked No If enabled, this will recursively count all files in the directory.

Example

In this scenario, all files with .txt in /mnt/fileshare directory are counted.

Action Configurations

Parameter Value
Entities All entities
File Extension *.txt
Folder /mnt/fileshare/
Is Recursive Checked

Action Results

  • Script Result
    Script Result Name Value options Example
    ScriptResult Count Value 10

Create Archive

Description

Creates an archive file from a list of provided files or directory. Returns the location of the archive file.

Parameters

Parameter Type Default Value Is Mandatory Description
Archive Type String N/A Yes Specify the type of archive to create. Supports: zip, tar, gztar, bztar, xtar.
Archive Base Name String N/A Yes Specify the name of the archive file that will be created without extension.
Archive Input String Unchecked Yes If enabled, this will recursively count all files in the directory.

Example

In this scenario, an archive zip file called archived_ioc_files is created containing multiple files in the /mnt/fileshares directory.

Action Configurations

Parameter Value
Entities All entities
Archive Type zip
Archive Base Name archived_ioc_files
Archive Input /mnt/fileshares/ioc_list1,/mnt/fileshares/ioc_list2, /mnt/fileshares/ioc_list3

Action Results

  • Script Result
    Script Result Name Value options Example
    ScriptResult True/False true
  • JSON Result
     {
    "archive" : 
    "/opt/siemplify/siemplify_server/Scripting/FileUtilities/Archives/archived_ioc_files.zip",
    "success" : true
    }

Decode Base64

Description

Decodes Base64 input string and returns a json object with the content.

Parameters

Parameter Type Default Value Is Mandatory Description
Base64 Input String N/A Yes Specify the Base64 input string you would like to decode.
Encoding Dropdown UTF-8 Yes Specify the encoding format. UTF-8 or ASCII.

Example

In this scenario, a Base64 blob of a file is converted using UTF-8 to its original content.

Action Configurations

Parameter Value
Entities All entities
Base64 Input (2FtcGxIIGZpbGUgY29udGFpbmluZyBzYW1qbGUgZGFOYQ==
Encoding UTF-8

Action Results

  • Script Result
    Script Result Name Value options Example
    ScriptResult True/False true
  • JSON Result
     {
    "decoded_content" : "<file content>"
    }

Extract Archive

Description

Extracts an archive file to a directory.

Parameters

Parameter Type Default Value Is Mandatory Description
Archive String N/A Yes Specify the path of the archive to be extracted. Supports: zip, tar, gztar, bztar, xtar. Destination path is: /opt/siemplify/siemplify_server/Scripting/FileUtilities/Extract

Example

In this scenario, files in ioc_lists.zip are extracted and saved in the /opt/siemplify/siemplify_server/Scripting/FileUtilities/Extract directory.

Action Configurations

Parameter Value
Entities All entities
Archive /opt/siemplify/siemplify_server/Scripting/FileUtilities/Extract/ioc_lists

Action Results

  • Script Result
    Script Result Name Value options Example
    ScriptResult True/False true
  • JSON Result
     {"archives" :
        {0 :
            "success" : true,
            "archive" : "ioc_lists.tar",
            "folder" : "/opt/siemplify/siemplify_server/Scripting/FileUtilities/Extract/ioc_lists",
            "files_with_path" :{
                    0 : "/opt/siemplify/siemplify_server/Scripting/FileUtilities/Extract/testarchive/Archives/ioc_lists.tar",
                    1 : "/opt/siemplify/siemplify_server/Scripting/FileUtilities/Extract/ioc_lists/Archives/file1"
                               },
            
            "files_list" : {
                    0 : "ioc_lists.tar",
                    1 : "file1",
                    2 : "file2"
                            },
            "files" :{
                "name" : "ioc_lists",
                "type" : "directory",
                "children" : {
                    0 :{
                        "name" : "ioc_lists.tar",
                        "type" : "file"
                       },
                    1 : {
                        "name" : "file1",
                        "type" : "file"
                        },
                    2 : {
                        "name" : "file2",
                        "type" : "file"
                        }
                             }
    
        }
    }

Extract Zip Files

Description

Extract files from a ZIP archive. It has the ability to extract password protected files by either a supplied password or brute force. It uses the attachment_id attribute of a file entity to pull the file from the case wall and extract it.

Parameters

Parameter Type Default Value Is Mandatory Description
Include Data in JSON Result Checkbox Unchecked No Specify whether you want to include the extracted data as Base64 values in the json result.
Create Entities Checkbox Checked No Specify whether you want to create entities out of the extracted files.
Zip File Password String N/A No Specify the password of the zip file if it’s password protected.
Bruteforce Password Checkbox Unchecked No Specify whether you want to brute force the password protected zip file.
Add to Case Wall Checkbox Checked No Specify whether you want to add the extracted files to the case wall.
Zip Password List Delimiter String , Yes Specify the delimiter to use if multiple passwords are provided in the “Zip File Password” parameter.

Example

In this scenario, a password protected zip file entity is extracted and the resulting files are added to the case wall along with file entity creation.

Action Configurations

Parameter Value
Include Data in JSON Result Checked
Create Entities Checked
Zip File Password Password1
Bruteforce Password Unchecked
Add to Case Wall Checked
Zip Password List Delimiter ,

Action Results

  • Script Result
    Script Result Name Value options Example
    zip_files_extracted True/False true

Get Attachment

Description

Retrieves an attachment from the case wall and returns its Base64 value.

Parameters

Parameter Type Default Value Is Mandatory Description
Attachment Scope Dropdown Alert Yes Specify the type of the attachment that needs to be retrieved. Options are: Case or Alert

Example

In this scenario, an attachment is pulled from the case wall and is converted to a Base64 blob.

Action Configurations

Parameter Value
Entities All entities
Attachment Scope Alert

Action Results

  • Script Result
    Script Result Name Value options Example
    ScriptResult Number of Attachments 1
  • JSON Result
     {
    "evidenceName": "myfile.txt", 
    "description": "sample descriptions", 
    "evidenceThumbnailBase64": "", 
    "evidenceId": 475, 
    "fileType": ".txt", 
    "creatorUserId": "Siemplify automation", 
    "id": 475, 
    "type": 4, 
    "caseId": 51209, 
    "isFavorite": false, 
    "modificationTimeUnixTimeInMs": 1664222678523, 
    "creationTimeUnixTimeInMs": 1664222678523, 
    "alertIdentifier": "COFENSE TRIAGE: INBOX REPORTCBEdfghB-B9E2-4A04fghAB-136A6fdghF0C6", 
    "base64_blob": "dGhpcyBpcyB0ZXN0aW5nIHNhhdfhfpbmRlIHdpbmRvd3Mgc2hhcmdfghdfgUgddfghXNpbmcgc2llbXBsdfghaWZ5IGFndfghdfghdfghZW50"
    }

Get Files as Base64

Description

Converts files in a directory to Base64 values.

Parameters

Parameter Type Default Value Is Mandatory Description
File Paths String N/A Yes Specify the file path(s) where the files are stored. Use comma delimiter if multiple paths are specified.

Example

In this scenario, a file called iocs_list.txt in /mnt/sharefiles directory is converted to a Base64 blob. This action is often used along with “Add Attachment” action, which takes the Base64 blob as an input and adds the file to the case wall.

Action Configurations

Parameter Value
Entities All entities
File Paths /mnt/sharefiles/iocs_list.txt

Action Results

  • Script Result
    Script Result Name Value options Example
    ScriptResult Number of Attachments 1
  • JSON Result
     {
    "Filenames" : {
         0 :  "/opt/siemplify/siemplify_server/Scripting/Phishing_.eml",
         1 :  "/opt/siemplify/siemplify_server/Scripting/Logo.png"
         },
    "data" : {
         0 : {
              "path" : "/opt/siemplify/siemplify_server/Scripting",
              "filename" : "Phishing_.eml",
              "extension" : ".eml",
              "base64" : "asdfagdfgergert34523523452345dfg"  
         }
       }
    }  

Remove Entity from File

Description

Removes the identifier of a target entity from a local file. It will return False if it fails to remove all entities or if an entity doesn't exist.

Parameters

Parameter Type Default Value Is Mandatory Description
File Name String N/A Yes Specify the name of the file to remove entities from.

Example

In this scenario, internal hostname entity identifiers are removed from ioc_list.txt that is located in /tmp directory.

Action Configurations

Parameter Value
Entities Internal hostnames
Filename ioc_list

Action Results

  • Script Result
    Script Result Name Value options Example
    RemovedAllEntities True/False True

Save Base64 to File

Description

Converts a Base64 string to a file. It supports comma separated lists for Filename and Base64 Input.

Default file path: /opt/siemplify/siemplify_server/Scripting/downloads/FILE_NAME

Default file path using an agent: /opt/SiemplifyAgent/downloads/FILE_NAME

Parameters

Parameter Type Default Value Is Mandatory Description
File Extension String N/A No Specify the file extension to add to the filename.
Base64 Input String N/A Yes Specify the Base64 string that will be converted to a file. Supports comma separation.
Filename String N/A Yes Specify the name of the file that will be created based on the Base64 string.

Example

In this scenario, if the action is run on a Remote agent, a Base64 input string is saved to a ioc_list text file located in the /opt/SiemplifyAgent/downloads directory.

Action Configurations

Parameter Value
Entities Internal hostnames
File Extension txt
Base64 Input c2FtcGxIIGZpbGUgY29udGFpbsdfgsdfgmluZyBzYW1wbGUgZGF

OYQ==

Filename ioc_list

Action Results

  • Script Result
    Script Result Name Value options Example
    ScriptResult True/False true
  • JSON Result
     {
    "files": [
    {"file_name": "ioc_list", 
    "file_path": "/opt/SiemplifyAgent/downloads/ioc_list.txt", 
    "extension": ".txt"}]
    }