Detonate URL - McAfee ATD

Detonates a URL using the McAfee Advanced Threat Defense sandbox integration.

McAfee Advanced Threat Defense · 10 tasks · 3 inputs · 31 outputs

Details

IDdetonate_url_-_mcafee_atd
From Version5.0.0
Tasks10

README

Detonates a URL using the McAfee Advanced Threat Defense Sandbox integration.

Dependencies

This playbook uses the following sub-playbooks, integrations, and scripts.

Sub-playbooks

  • GenericPolling

Integrations

This playbook does not use any integrations.

Scripts

  • Set

Commands

  • atd-check-status
  • atd-get-report
  • atd-file-upload

Playbook Inputs


Name Description Default Value Source Required
URL The URL to detonate. Data URL Optional
Interval The polling frequency. How often the polling command should run (in minutes). 1 - Optional
Timeout How much time to wait before a timeout occurs (in minutes). 15 - Optional

Playbook Outputs


Path Description Type
ATD.Task.taskId The task ID of the sample uploaded. string
ATD.Task.jobId The job ID of the sample uploaded. string
ATD.Task.messageId The message ID relevant to the sample uploaded. string
ATD.Task.url The URL detonated. string
ATD.Task.srcIp The source IPv4 address. string
ATD.Task.destIp The destination IPv4 address. string
ATD.Task.MD5 The MD5 hash of the sample uploaded. string
ATD.Task.SHA1 The SHA1 hash of the sample uploaded. string
ATD.Task.SHA256 The SHA256 hash of the sample uploaded. string
File.Name The filename (only in case of report type=json). string
File.Type The file type. For example, “PE” (only in case of report type=json). string
File.MD5 The MD5 hash of the file (only in case of report type=json). string
File.SHA1 The SHA1 hash of the file (only in case of report type=json). string
File.SHA256 The SHA256 hash of the file (only in case of report type=json). string
File.EntryID The entry ID of the sample. string
DBotScore.Indicator The indicator that was tested (only in case of report type=json). string
DBotScore.Type The type of the indicator (only in case of report type=json). string
DBotScore.Vendor The vendor used to calculate the score (only in case of report type=json). string
DBotScore.Score The actual score (only in case of report type=json). number
IP.Address The IP addresses’s relevant to the sample. string
InfoFile.EntryID The EntryID of the report file. string
InfoFile.Extension The extension of the report file. string
InfoFile.Name The name of the report file. string
InfoFile.Info The info of the report file. string
InfoFile.Size The size of the report file. number
InfoFile.Type The type of the report file. string
File The file object. unknown
File.Malicious The file’s malicious object. unknown
DBotScore The DBotScore object. unknown
InfoFile The report file object. unknown
URL.Malicious The URL malicious object. unknown

Playbook Image


Detonate_URL_McAfee_ATD

Inputs

  • URL — URL to detonate.
  • Interval — Polling frequency - how often the polling command should run (minutes)
  • Timeout — How much time to wait before a timeout occurs (minutes)

Outputs

  • ATD.Task.taskId — The task ID of the sample uploaded
  • ATD.Task.jobId — The job ID of the sample uploaded
  • ATD.Task.messageId — The message Id relevant to the sample uploaded
  • ATD.Task.url — The URL detonated
  • ATD.Task.srcIp — Source IPv4 address
  • ATD.Task.destIp — Destination IPv4 address
  • ATD.Task.MD5 — MD5 of the sample uploaded
  • ATD.Task.SHA1 — SHA1 of the sample uploaded
  • ATD.Task.SHA256 — SHA256 of the sample uploaded
  • File.Name — Filename (only in case of report type=json)
  • File.Type — File type e.g. "PE" (only in case of report type=json)
  • File.MD5 — MD5 hash of the file (only in case of report type=json)
  • File.SHA1 — SHA1 hash of the file (only in case of report type=json)
  • File.SHA256 — SHA256 hash of the file (only in case of report type=json)
  • File.EntryID — The Entry ID of the sample
  • DBotScore.Indicator — The indicator we tested (only in case of report type=json)
  • DBotScore.Type — The type of the indicator (only in case of report type=json)
  • DBotScore.Vendor — Vendor used to calculate the score (only in case of report type=json)
  • DBotScore.Score — The actual score (only in case of report type=json)
  • IP.Address — IP's relevant to the sample
  • InfoFile.EntryID — The EntryID of the report file
  • InfoFile.Extension — The extension of the report file
  • InfoFile.Name — The name of the report file
  • InfoFile.Info — The info of the report file
  • InfoFile.Size — The size of the report file
  • InfoFile.Type — The type of the report file
  • File — File object
  • File.Malicious — File Malicious object
  • DBotScore — DBotScore object
  • InfoFile — Report file object
  • URL.Malicious — URL Malicious object

Commands used

atd-check-status atd-file-upload atd-get-report

Flowchart

yes yes yes Start Start McAfee ATD Upload URL - atd-file-upload McAfee ATD Upload URL atd-file-upload GenericPolling - GenericPolling GenericPolling GenericPolling McAfee ATD Get Report - atd-get-report McAfee ATD Get Report atd-get-report Is there a URL to detonate? Is there a URL to detonate? Done Done Filter taskId Filter taskId Is McAfee ATD sandbox enabled? Is McAfee ATD sandbox ena... atd-check-status - atd-check-status atd-check-status atd-check-status Set Context - Set Set Context Set
id: detonate_url_-_mcafee_atd
version: -1
name: Detonate URL - McAfee ATD
fromversion: 5.0.0
description: Detonates a URL using the McAfee Advanced Threat Defense sandbox integration.
starttaskid: "0"
tasks:
  "0":
    id: "0"
    taskid: d2f4d7dc-4562-4517-8d63-3539676ca81d
    type: start
    task:
      id: d2f4d7dc-4562-4517-8d63-3539676ca81d
      version: -1
      name: ""
      description: start
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "9"
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 50,
          "y": 50
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "1":
    id: "1"
    taskid: 1ffe1273-53cc-4196-85ee-aeb00cdc3683
    type: regular
    task:
      id: 1ffe1273-53cc-4196-85ee-aeb00cdc3683
      version: -1
      name: McAfee ATD Upload URL
      description: Uploads the submission to McAfee ATD.
      script: '|||atd-file-upload'
      type: regular
      iscommand: true
      brand: ""
    nexttasks:
      '#none#':
      - "8"
    scriptarguments:
      analyzeAgain: {}
      dstIp: {}
      entryID: {}
      fileName: {}
      filePriorityQ: {}
      messageId: {}
      skipTaskId: {}
      srcIp: {}
      submitType:
        simple: "1"
      url:
        complex:
          root: inputs.URL
      vmProfileList: {}
      xMode: {}
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 275,
          "y": 545
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "2":
    id: "2"
    taskid: d774d782-52bb-4667-8842-9401535bdf2f
    type: playbook
    task:
      id: d774d782-52bb-4667-8842-9401535bdf2f
      version: -1
      name: GenericPolling
      description: |-
        Use as a sub-playbook to block execution of the master playbook until a remote action is complete.
        This playbook implements polling by continually running the command in Step #2 until the operation completes.
        The remote action should have the following structure:

        1. Initiate the operation.
        2. Poll to check if the operation completed.
        3. (optional) Get the results of the operation.
      playbookName: GenericPolling
      type: playbook
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "10"
    scriptarguments:
      Ids:
        complex:
          root: ATD
          filters:
          - - operator: isNotEqualNumber
              left:
                value:
                  simple: ATD.Task.taskId
                iscontext: true
              right:
                value:
                  simple: "-1"
          accessor: Task
          transformers:
          - operator: getField
            args:
              field:
                value:
                  simple: taskId
      Interval:
        complex:
          root: inputs.Interval
      PollingCommandArgName:
        simple: taskId
      PollingCommandName:
        simple: atd-check-status
      Timeout:
        complex:
          root: inputs.Timeout
      dt:
        simple: ATD.Task(val.status != 'Completed').taskId
    separatecontext: true
    loop:
      iscommand: false
      exitCondition: ""
      wait: 1
    view: |-
      {
        "position": {
          "x": 162.5,
          "y": 895
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "3":
    id: "3"
    taskid: 139bb8bd-8c59-483e-8632-aa1031236b24
    type: regular
    task:
      id: 139bb8bd-8c59-483e-8632-aa1031236b24
      version: -1
      name: McAfee ATD Get Report
      description: Retrieve the reports from McAfee ATD.
      script: '|||atd-get-report'
      type: regular
      iscommand: true
      brand: ""
    nexttasks:
      '#none#':
      - "6"
    scriptarguments:
      jobId: {}
      taskId:
        complex:
          root: ATDTask
          filters:
          - - operator: isEqualString
              left:
                value:
                  simple: ATDTask.status
                iscontext: true
              right:
                value:
                  simple: Completed
          transformers:
          - operator: getField
            args:
              field:
                value:
                  simple: taskId
      threshold: {}
      type:
        simple: pdf
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 162.5,
          "y": 1420
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "5":
    id: "5"
    taskid: 7aef66ab-1f28-4a35-89d8-173760f509c5
    type: condition
    task:
      id: 7aef66ab-1f28-4a35-89d8-173760f509c5
      version: -1
      name: Is there a URL to detonate?
      description: Checks that there is a URL in the playbook’s input.
      type: condition
      iscommand: false
      brand: ""
    nexttasks:
      '#default#':
      - "6"
      "yes":
      - "1"
    separatecontext: false
    conditions:
    - label: "yes"
      condition:
      - - operator: isExists
          left:
            value:
              simple: inputs.URL
            iscontext: true
    view: |-
      {
        "position": {
          "x": 162.5,
          "y": 370
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "6":
    id: "6"
    taskid: 586f9a47-8d2a-4ff5-8ad5-788ddc8310ed
    type: title
    task:
      id: 586f9a47-8d2a-4ff5-8ad5-788ddc8310ed
      version: -1
      name: Done
      description: Done
      type: title
      iscommand: false
      brand: ""
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 50,
          "y": 1595
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "8":
    id: "8"
    taskid: bd6b3429-b5e0-4bf5-8aa7-5b6305b016dc
    type: condition
    task:
      id: bd6b3429-b5e0-4bf5-8aa7-5b6305b016dc
      version: -1
      name: Filter taskId
      description: Checks that valid URLs only have been sent to detonation.
      type: condition
      iscommand: false
      brand: ""
    nexttasks:
      '#default#':
      - "6"
      "yes":
      - "2"
    separatecontext: false
    conditions:
    - label: "yes"
      condition:
      - - operator: isExists
          left:
            value:
              complex:
                root: ATD
                filters:
                - - operator: isNotEqualNumber
                    left:
                      value:
                        simple: ATD.Task.taskId
                      iscontext: true
                    right:
                      value:
                        simple: "-1"
                accessor: Task
                transformers:
                - operator: getField
                  args:
                    field:
                      value:
                        simple: taskId
            iscontext: true
    view: |-
      {
        "position": {
          "x": 275,
          "y": 720
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "9":
    id: "9"
    taskid: 35d8af19-10dd-43fa-855d-1a99e08bbf12
    type: condition
    task:
      id: 35d8af19-10dd-43fa-855d-1a99e08bbf12
      version: -1
      name: Is McAfee ATD sandbox enabled?
      description: |
        Verify that there is a valid instance of McAfee ATD enabled.
      type: condition
      iscommand: false
      brand: ""
    nexttasks:
      '#default#':
      - "6"
      "yes":
      - "5"
    separatecontext: false
    conditions:
    - label: "yes"
      condition:
      - - operator: isExists
          left:
            value:
              complex:
                root: modules
                filters:
                - - operator: isEqualString
                    left:
                      value:
                        simple: modules.brand
                      iscontext: true
                    right:
                      value:
                        simple: McAfee Advanced Threat Defense
                - - operator: isEqualString
                    left:
                      value:
                        simple: modules.state
                      iscontext: true
                    right:
                      value:
                        simple: active
                accessor: brand
            iscontext: true
    view: |-
      {
        "position": {
          "x": 50,
          "y": 195
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "10":
    id: "10"
    taskid: d9cb6357-65d3-489e-829a-32db7a9e54f1
    type: regular
    task:
      id: d9cb6357-65d3-489e-829a-32db7a9e54f1
      version: -1
      name: atd-check-status
      description: Updates the status of the tasks in the context.
      script: '|||atd-check-status'
      type: regular
      iscommand: true
      brand: ""
    nexttasks:
      '#none#':
      - "11"
    scriptarguments:
      jobId: {}
      taskId:
        complex:
          root: ATD
          filters:
          - - operator: isNotEqualNumber
              left:
                value:
                  simple: ATD.Task.taskId
                iscontext: true
              right:
                value:
                  simple: "-1"
          accessor: Task.taskId
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 162.5,
          "y": 1070
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
  "11":
    id: "11"
    taskid: e67fe4e6-2060-46ff-8f61-c87a4b88cf93
    type: regular
    task:
      id: e67fe4e6-2060-46ff-8f61-c87a4b88cf93
      version: -1
      name: Set Context
      description: '-'
      scriptName: Set
      type: regular
      iscommand: false
      brand: ""
    nexttasks:
      '#none#':
      - "3"
    scriptarguments:
      append: {}
      key:
        simple: ATDTask
      value:
        complex:
          root: ATD
          filters:
          - - operator: isNotEqualNumber
              left:
                value:
                  simple: ATD.Task.taskId
                iscontext: true
              right:
                value:
                  simple: "-1"
          accessor: Task
    separatecontext: false
    view: |-
      {
        "position": {
          "x": 162.5,
          "y": 1245
        }
      }
    note: false
    timertriggers: []
    ignoreworker: false
view: |-
  {
    "linkLabelsPosition": {
      "8_2_yes": 0.57
    },
    "paper": {
      "dimensions": {
        "height": 1610,
        "width": 605,
        "x": 50,
        "y": 50
      }
    }
  }
inputs:
- key: URL
  value:
    complex:
      root: URL
      accessor: Data
  required: false
  description: URL to detonate.
- key: Interval
  value:
    simple: "1"
  required: false
  description: Polling frequency - how often the polling command should run (minutes)
- key: Timeout
  value:
    simple: "15"
  required: false
  description: How much time to wait before a timeout occurs (minutes)
outputs:
- contextPath: ATD.Task.taskId
  description: The task ID of the sample uploaded
  type: string
- contextPath: ATD.Task.jobId
  description: The job ID of the sample uploaded
  type: string
- contextPath: ATD.Task.messageId
  description: The message Id relevant to the sample uploaded
  type: string
- contextPath: ATD.Task.url
  description: The URL detonated
  type: string
- contextPath: ATD.Task.srcIp
  description: Source IPv4 address
  type: string
- contextPath: ATD.Task.destIp
  description: Destination IPv4 address
  type: string
- contextPath: ATD.Task.MD5
  description: MD5 of the sample uploaded
  type: string
- contextPath: ATD.Task.SHA1
  description: SHA1 of the sample uploaded
  type: string
- contextPath: ATD.Task.SHA256
  description: SHA256 of the sample uploaded
  type: string
- contextPath: File.Name
  description: Filename (only in case of report type=json)
  type: string
- contextPath: File.Type
  description: File type e.g. "PE" (only in case of report type=json)
  type: string
- contextPath: File.MD5
  description: MD5 hash of the file (only in case of report type=json)
  type: string
- contextPath: File.SHA1
  description: SHA1 hash of the file (only in case of report type=json)
  type: string
- contextPath: File.SHA256
  description: SHA256 hash of the file (only in case of report type=json)
  type: string
- contextPath: File.EntryID
  description: The Entry ID of the sample
  type: string
- contextPath: DBotScore.Indicator
  description: The indicator we tested (only in case of report type=json)
  type: string
- contextPath: DBotScore.Type
  description: The type of the indicator (only in case of report type=json)
  type: string
- contextPath: DBotScore.Vendor
  description: Vendor used to calculate the score (only in case of report type=json)
  type: string
- contextPath: DBotScore.Score
  description: The actual score (only in case of report type=json)
  type: number
- contextPath: IP.Address
  description: IP's relevant to the sample
  type: string
- contextPath: InfoFile.EntryID
  description: The EntryID of the report file
  type: string
- contextPath: InfoFile.Extension
  description: The extension of the report file
  type: string
- contextPath: InfoFile.Name
  description: The name of the report file
  type: string
- contextPath: InfoFile.Info
  description: The info of the report file
  type: string
- contextPath: InfoFile.Size
  description: The size of the report file
  type: number
- contextPath: InfoFile.Type
  description: The type of the report file
  type: string
- contextPath: File
  description: File object
  type: unknown
- contextPath: File.Malicious
  description: File Malicious object
  type: unknown
- contextPath: DBotScore
  description: DBotScore object
  type: unknown
- contextPath: InfoFile
  description: Report file object
  type: unknown
- contextPath: URL.Malicious
  description: URL Malicious object
  type: unknown
tests:
- Test Playbook McAfee ATD
- Detonate URL - Generic Test