Darkmon - Compromised Credentials Sweep
Polls Darkmon for compromised credentials, filters to the customer's email/web domains, dedupes via state list, and creates a 'Darkmon Compromised Credential' incident per new account. Triggered on a 4-hour Job.
Darkmon · 8 tasks · 0 inputs · 2 outputs
Details
| ID | Darkmon - Compromised Credentials Sweep |
|---|---|
| From Version | 6.8.0 |
| Tasks | 8 |
| Tags | darkmon monitoring |
README
Polls Darkmon for compromised credentials, filters to the customer’s email/web domains, dedupes via state list, and creates a ‘Darkmon Compromised Credential’ incident per new account. Triggered on a 4-hour Job.
Dependencies
This playbook uses the following sub-playbooks, integrations, and scripts.
Sub-playbooks
- Darkmon - Generic Notify
Integrations
- Darkmon
Scripts
- DarkmonCreateIncidents
- DarkmonFilterUnseen
Commands
- dmontip-get-compromised
Playbook Inputs
There are no inputs for this playbook.
Playbook Outputs
| Path | Description | Type |
|---|---|---|
| NewAccounts | Compromised account records that triggered new incidents this run. | unknown |
| Darkmon.Compromised.Account | Raw compromised account data returned by Darkmon. | unknown |
Outputs
NewAccounts— Compromised account records that triggered new incidents this run.Darkmon.Compromised.Account— Raw compromised account data returned by Darkmon.
Commands used
dmontip-get-compromised
Flowchart
id: Darkmon - Compromised Credentials Sweep version: -1 name: Darkmon - Compromised Credentials Sweep description: Polls Darkmon for compromised credentials, filters to the customer's email/web domains, dedupes via state list, and creates a 'Darkmon Compromised Credential' incident per new account. Triggered on a 4-hour Job. fromversion: 6.8.0 marketplaces: - xsoar - platform tags: - darkmon - monitoring starttaskid: '0' tasks: '0': id: '0' taskid: 0344d9df-6aa7-423e-a45e-3868a7223948 type: start task: id: 0344d9df-6aa7-423e-a45e-3868a7223948 version: -1 name: '' description: '' type: start iscommand: false brand: '' nexttasks: '#none#': - '100' separatecontext: false continueonerrortype: '' view: '{"position": {"x": 50, "y": 50}}' note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 '1': id: '1' taskid: 918b6c57-dbed-4b6f-9b10-fbc9385ff642 type: regular task: id: 918b6c57-dbed-4b6f-9b10-fbc9385ff642 version: -1 name: Fetch latest compromised accounts description: Pulls the most recent 100 compromised accounts (sorted newest first). script: Darkmon|||dmontip-get-compromised type: regular iscommand: true brand: Darkmon scriptarguments: type: simple: accounts size: simple: '100' sort: simple: firstSeen,desc nexttasks: '#none#': - '2' separatecontext: false continueonerrortype: '' view: '{"position": {"x": 50, "y": 530}}' note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 '2': id: '2' taskid: 852c8531-03ac-4c8f-bccc-8e412677090c type: regular task: id: 852c8531-03ac-4c8f-bccc-8e412677090c version: -1 name: Filter to customer domains and unseen account IDs description: 'Helper script: returns ${{NewAccounts}} containing only accounts whose username matches a customer domain and whose id is not in the Seen list. Updates the seen list.' type: regular iscommand: false brand: '' scriptName: DarkmonFilterUnseen scriptarguments: items: simple: ${{Darkmon.Compromised.Account}} id_field: simple: id seen_list: simple: Darkmon - Seen Compromised Accounts domain_filter_list: simple: Darkmon - Customer Domains domain_match_field: simple: username nexttasks: '#none#': - '3' separatecontext: false continueonerrortype: '' view: '{"position": {"x": 50, "y": 770}}' note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 '3': id: '3' taskid: 2c514eaa-3910-4d9b-bf7a-688a74b80dab type: regular task: id: 2c514eaa-3910-4d9b-bf7a-688a74b80dab version: -1 name: Create one incident per new account description: Helper script that calls createNewIncident per new entry, mapping Darkmon fields to incident fields. type: regular iscommand: false brand: '' scriptName: DarkmonCreateIncidents scriptarguments: items: simple: ${{NewAccounts}} incident_type: simple: Darkmon Compromised Credential name_template: simple: 'Darkmon: ${{username}} compromised at ${{url}}' field_map: simple: darkmonaccountid=id,darkmonusername=username,darkmonpasswordredacted=password,darkmonurl=url,darkmonsourcename=sources,darkmonstealer=stealers,country=countries,darkmonfirstcompromise=firstCompromiseDate,darkmonlastcompromise=lastCompromiseDate nexttasks: '#none#': - '4' separatecontext: false continueonerrortype: '' view: '{"position": {"x": 50, "y": 1010}}' note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 '4': id: '4' taskid: c210ca17-a4f1-4deb-a1dd-9dc487ad5e9b type: playbook task: id: c210ca17-a4f1-4deb-a1dd-9dc487ad5e9b version: -1 name: Notify SOC description: Routes the alert to whichever provider the customer configured. type: playbook iscommand: false brand: '' playbookName: Darkmon - Generic Notify scriptarguments: Subject: simple: 'Darkmon: ${{NewAccounts.length}} new compromised customer credentials' Body: simple: Sweep created ${{NewAccounts.length}} 'Darkmon Compromised Credential' incidents. nexttasks: '#none#': - '5' separatecontext: false continueonerrortype: '' view: '{"position": {"x": 50, "y": 1250}}' note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 '5': id: '5' taskid: c102476b-c77c-4247-a9a8-d57851a9fe70 type: title task: id: c102476b-c77c-4247-a9a8-d57851a9fe70 version: -1 name: Done description: '' type: title iscommand: false brand: '' separatecontext: false continueonerrortype: '' view: '{"position": {"x": 50, "y": 1490}}' note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 '100': id: '100' taskid: de2a3401-8408-47f9-90b3-9b41d4ad4f70 type: condition task: id: de2a3401-8408-47f9-90b3-9b41d4ad4f70 version: -1 name: Is Darkmon integration available? description: Skips the playbook gracefully if the Darkmon integration is not configured in this tenant. Calls the built-in IsIntegrationAvailable script with brandname=Darkmon. scriptName: IsIntegrationAvailable type: condition iscommand: false brand: '' scriptarguments: brandname: simple: Darkmon results: - brandInstances nexttasks: 'yes': - '1' '#default#': - '101' separatecontext: false continueonerrortype: '' view: '{"position": {"x": 50, "y": 290}}' note: false timertriggers: [] ignoreworker: false skipunavailable: true quietmode: 0 '101': id: '101' taskid: fad0587e-6cd6-4f8a-a416-a4dd18af61a2 type: title task: id: fad0587e-6cd6-4f8a-a416-a4dd18af61a2 version: -1 name: Done description: '' type: title iscommand: false brand: '' separatecontext: false continueonerrortype: '' view: '{"position": {"x": -450, "y": 530}}' note: false timertriggers: [] ignoreworker: false skipunavailable: false quietmode: 0 view: '{"linkLabelsPosition": {"100_1_yes": 0.1, "100_101_#default#": 0.5}, "paper": {"dimensions": {"height": 1655, "width": 980, "x": -500, "y": 0}}}' inputs: [] outputs: - contextPath: NewAccounts description: Compromised account records that triggered new incidents this run. type: unknown - contextPath: Darkmon.Compromised.Account description: Raw compromised account data returned by Darkmon. type: unknown tests: - No tests supportedModules: - cloud_posture - cloud - cloud_runtime_security - edr - asm - tim - cloud_appsec - xsiam - exposure_management - agentix - email_security