# timeline-mythic

Parse Mythic export JSON into normalized timeline entries.

- **Kind:** skill
- **Source:** https://github.com/SpecterOps/skills
- **Page:** https://forefy.com/skills/2721e876-a81d-4b5a-aa8f-73ae4f502206
- **API (JSON + files):** https://forefy.com/api/asr/2721e876-a81d-4b5a-aa8f-73ae4f502206

---

## SKILL.md

---
name: timeline-mythic
description: Parse Mythic export JSON into normalized timeline entries.
metadata:
  author: "GhostWorks"
---

# Timeline Mythic Parser

Trigger when Mythic exports (callbacks/tasks/responses/operations) are provided for timeline consolidation.

## Input Contract
- Directory `input/c2logs/mythic/` with JSON exports for callbacks, tasks, responses, or full operations.

## Output
- Produce `output/mythic_entries.json` with timeline entries (timestamp, source, operator, action, details, raw_timestamp).
- Add metadata with `source_type = "mythic"`, counts, and parse errors.

## Workflow
1. Detect export type (callbacks, tasks, full operations) by inspecting keys such as `callbacks`, `command_name`, or `timestamp`.
2. Convert all timestamps to ISO 8601 UTC (ensure `Z` suffix) using `fromisoformat` fallback patterns.
3. Emit entries:
   - Callback exports: `beacon_init` at `init_callback`, `checkin` at `last_checkin`.
   - Task exports: map `command_name`, `original_params`, or `display_params` to `action`/`details`.
   - Operation exports: iterate nested `callbacks` and `tasks`, keeping owner context.
4. Normalize `source` names to `Mythic-callback-<id>` or `Mythic-task-<id>`.
5. Include operator names, host/service details, and `action = task_name` with `details` from params/output.
6. Capture MITRE clues from command names when available (documented in the consolidator).

## Notes
- Favor `display_params` for human-readable commands.
- When `responses` arrays exist, include their output as part of the `details` field.

## agents

```

```

## agents/openai.yaml

```yaml
interface:
  display_name: Timeline Mythic
  short_description: Parse Mythic export JSON into normalized timeline entries.
  icon_small: ./assets/icon.svg
  icon_large: ./assets/icon.png
  brand_color: '#8E92EB'
  default_prompt: Use $timeline-mythic for this workflow.
policy:
  allow_implicit_invocation: true
```

## assets

```

```

## assets/icon.png

```

```

## assets/icon.svg

```

```

