agentic-threat-hunting-framework 0.3.0__py3-none-any.whl → 0.4.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agentic_threat_hunting_framework-0.3.0.dist-info → agentic_threat_hunting_framework-0.4.0.dist-info}/METADATA +4 -1
- {agentic_threat_hunting_framework-0.3.0.dist-info → agentic_threat_hunting_framework-0.4.0.dist-info}/RECORD +26 -19
- athf/__version__.py +1 -1
- athf/agents/__init__.py +14 -0
- athf/agents/base.py +141 -0
- athf/agents/llm/__init__.py +27 -0
- athf/agents/llm/hunt_researcher.py +762 -0
- athf/agents/llm/hypothesis_generator.py +238 -0
- athf/cli.py +17 -10
- athf/commands/__init__.py +19 -3
- athf/commands/agent.py +43 -1
- athf/commands/hunt.py +63 -12
- athf/commands/similar.py +2 -2
- athf/commands/splunk.py +323 -0
- athf/core/splunk_client.py +360 -0
- athf/core/template_engine.py +7 -1
- athf/core/web_search.py +1 -1
- athf/data/docs/CHANGELOG.md +52 -0
- athf/data/docs/CLI_REFERENCE.md +518 -12
- athf/data/docs/getting-started.md +47 -3
- athf/data/docs/level4-agentic-workflows.md +9 -1
- athf/data/docs/maturity-model.md +56 -14
- {agentic_threat_hunting_framework-0.3.0.dist-info → agentic_threat_hunting_framework-0.4.0.dist-info}/WHEEL +0 -0
- {agentic_threat_hunting_framework-0.3.0.dist-info → agentic_threat_hunting_framework-0.4.0.dist-info}/entry_points.txt +0 -0
- {agentic_threat_hunting_framework-0.3.0.dist-info → agentic_threat_hunting_framework-0.4.0.dist-info}/licenses/LICENSE +0 -0
- {agentic_threat_hunting_framework-0.3.0.dist-info → agentic_threat_hunting_framework-0.4.0.dist-info}/top_level.txt +0 -0
athf/data/docs/CLI_REFERENCE.md
CHANGED
|
@@ -9,17 +9,24 @@ Complete reference for all `athf` command-line interface commands.
|
|
|
9
9
|
| [`athf init`](#athf-init) | Setup | Initialize ATHF workspace directory structure |
|
|
10
10
|
| [`athf env setup`](#athf-env) | Environment | Setup Python virtual environment with dependencies |
|
|
11
11
|
| [`athf env info`](#athf-env) | Environment | Show virtual environment information |
|
|
12
|
+
| [`athf agent list`](#athf-agent-list) | Agent Framework | List all available agents |
|
|
13
|
+
| [`athf agent info`](#athf-agent-info) | Agent Framework | Show detailed agent information |
|
|
14
|
+
| [`athf agent run`](#athf-agent-run) | Agent Framework | Run individual agent |
|
|
15
|
+
| [`athf research new`](#athf-research-new) | Research | Create new research document with web search |
|
|
16
|
+
| [`athf research list`](#athf-research-list) | Research | List all research documents |
|
|
17
|
+
| [`athf research view`](#athf-research-view) | Research | View research document |
|
|
12
18
|
| [`athf hunt new`](#athf-hunt-new) | Hunt Management | Create new hunt from template with auto-generated ID |
|
|
13
19
|
| [`athf hunt list`](#athf-hunt-list) | Hunt Management | List all hunts with optional filtering |
|
|
14
20
|
| [`athf hunt validate`](#athf-hunt-validate) | Hunt Management | Validate hunt file structure and metadata |
|
|
15
21
|
| [`athf hunt stats`](#athf-hunt-stats) | Hunt Management | Display hunt statistics and success metrics |
|
|
16
22
|
| [`athf hunt search`](#athf-hunt-search) | Hunt Management | Full-text search across all hunts |
|
|
17
23
|
| [`athf hunt coverage`](#athf-hunt-coverage) | Hunt Management | Display MITRE ATT&CK coverage heatmap |
|
|
18
|
-
| [`athf
|
|
19
|
-
| [`athf investigate
|
|
20
|
-
| [`athf investigate
|
|
21
|
-
| [`athf investigate
|
|
22
|
-
| [`athf investigate
|
|
24
|
+
| [`athf hunt execute`](#athf-hunt-execute) | Hunt Management | Execute hunt workflow with agent orchestration |
|
|
25
|
+
| [`athf investigate new`](#athf-investigate-new) | Investigation | Create new investigation file for exploratory work |
|
|
26
|
+
| [`athf investigate list`](#athf-investigate-list) | Investigation | List all investigations with optional filtering |
|
|
27
|
+
| [`athf investigate search`](#athf-investigate-search) | Investigation | Full-text search across investigations |
|
|
28
|
+
| [`athf investigate validate`](#athf-investigate-validate) | Investigation | Validate investigation file structure |
|
|
29
|
+
| [`athf investigate promote`](#athf-investigate-promote) | Investigation | Promote investigation to formal hunt |
|
|
23
30
|
| [`athf context`](#athf-context) | AI Optimization | Export AI-optimized context bundle (saves ~75% tokens) |
|
|
24
31
|
| [`athf similar`](#athf-similar) | AI Optimization | Find similar hunts using semantic search |
|
|
25
32
|
|
|
@@ -29,6 +36,12 @@ Complete reference for all `athf` command-line interface commands.
|
|
|
29
36
|
- [Global Options](#global-options)
|
|
30
37
|
- [athf init](#athf-init)
|
|
31
38
|
- [athf env](#athf-env)
|
|
39
|
+
- [athf agent list](#athf-agent-list)
|
|
40
|
+
- [athf agent info](#athf-agent-info)
|
|
41
|
+
- [athf agent run](#athf-agent-run)
|
|
42
|
+
- [athf research new](#athf-research-new)
|
|
43
|
+
- [athf research list](#athf-research-list)
|
|
44
|
+
- [athf research view](#athf-research-view)
|
|
32
45
|
- [athf context](#athf-context)
|
|
33
46
|
- [athf similar](#athf-similar)
|
|
34
47
|
- [athf hunt new](#athf-hunt-new)
|
|
@@ -37,6 +50,7 @@ Complete reference for all `athf` command-line interface commands.
|
|
|
37
50
|
- [athf hunt stats](#athf-hunt-stats)
|
|
38
51
|
- [athf hunt search](#athf-hunt-search)
|
|
39
52
|
- [athf hunt coverage](#athf-hunt-coverage)
|
|
53
|
+
- [athf hunt execute](#athf-hunt-execute)
|
|
40
54
|
- [athf investigate new](#athf-investigate-new)
|
|
41
55
|
- [athf investigate list](#athf-investigate-list)
|
|
42
56
|
- [athf investigate search](#athf-investigate-search)
|
|
@@ -589,6 +603,7 @@ Creates a new hunt file with proper YAML frontmatter and LOCK structure. Automat
|
|
|
589
603
|
| `--behavior` | String | Behavior description (for ABLE framework) |
|
|
590
604
|
| `--location` | String | Location/scope description (for ABLE framework) |
|
|
591
605
|
| `--evidence` | String | Evidence description (for ABLE framework) |
|
|
606
|
+
| `--research` | String | Research document ID (e.g., R-0001) to link to this hunt |
|
|
592
607
|
|
|
593
608
|
\* Required in non-interactive mode
|
|
594
609
|
|
|
@@ -634,6 +649,22 @@ athf hunt new \
|
|
|
634
649
|
--non-interactive
|
|
635
650
|
```
|
|
636
651
|
|
|
652
|
+
**Link to pre-hunt research document**:
|
|
653
|
+
|
|
654
|
+
```bash
|
|
655
|
+
athf hunt new \
|
|
656
|
+
--research R-0001 \
|
|
657
|
+
--technique T1003.001 \
|
|
658
|
+
--title "LSASS Memory Dumping Hunt" \
|
|
659
|
+
--tactics credential-access \
|
|
660
|
+
--platforms windows \
|
|
661
|
+
--non-interactive
|
|
662
|
+
```
|
|
663
|
+
|
|
664
|
+
This links the hunt to research document `R-0001` (created via `athf research new`). The hunt file will include:
|
|
665
|
+
- `spawned_from: R-0001` in YAML frontmatter
|
|
666
|
+
- Link to research document in the "Threat Intel & Research" section
|
|
667
|
+
|
|
637
668
|
**AI-friendly one-liner with rich content** (full hypothesis + ABLE framework):
|
|
638
669
|
|
|
639
670
|
```bash
|
|
@@ -1130,16 +1161,29 @@ Displays a comprehensive visual coverage heatmap of all 14 MITRE ATT&CK tactics,
|
|
|
1130
1161
|
|
|
1131
1162
|
| Option | Type | Default | Description |
|
|
1132
1163
|
|--------|------|---------|-------------|
|
|
1164
|
+
| `--tactic` | String | - | Filter by specific tactic (or 'all' for all tactics) |
|
|
1133
1165
|
| `--detailed` | Flag | False | Show detailed technique coverage with hunt references |
|
|
1134
1166
|
|
|
1135
1167
|
### Examples
|
|
1136
1168
|
|
|
1137
|
-
**Show coverage
|
|
1169
|
+
**Show coverage for all tactics (default):**
|
|
1138
1170
|
|
|
1139
1171
|
```bash
|
|
1140
1172
|
athf hunt coverage
|
|
1141
1173
|
```
|
|
1142
1174
|
|
|
1175
|
+
**Show all tactics explicitly:**
|
|
1176
|
+
|
|
1177
|
+
```bash
|
|
1178
|
+
athf hunt coverage --tactic all
|
|
1179
|
+
```
|
|
1180
|
+
|
|
1181
|
+
**Filter by specific tactic:**
|
|
1182
|
+
|
|
1183
|
+
```bash
|
|
1184
|
+
athf hunt coverage --tactic credential-access
|
|
1185
|
+
```
|
|
1186
|
+
|
|
1143
1187
|
**Output:**
|
|
1144
1188
|
```
|
|
1145
1189
|
MITRE ATT&CK Coverage
|
|
@@ -1163,14 +1207,25 @@ Impact ░░░░░░░░░░░░░░░░░░
|
|
|
1163
1207
|
Overall: 10/221 techniques (5%)
|
|
1164
1208
|
```
|
|
1165
1209
|
|
|
1166
|
-
**Show detailed technique breakdown:**
|
|
1210
|
+
**Show detailed technique breakdown (all tactics):**
|
|
1167
1211
|
|
|
1168
1212
|
```bash
|
|
1169
1213
|
athf hunt coverage --detailed
|
|
1170
1214
|
```
|
|
1171
1215
|
|
|
1216
|
+
**Filter by tactic with detailed view:**
|
|
1217
|
+
|
|
1218
|
+
```bash
|
|
1219
|
+
athf hunt coverage --tactic persistence --detailed
|
|
1220
|
+
```
|
|
1221
|
+
|
|
1172
1222
|
**Detailed Output:**
|
|
1173
1223
|
```
|
|
1224
|
+
MITRE ATT&CK Coverage - Persistence
|
|
1225
|
+
────────────────────────────────────────────────────────────
|
|
1226
|
+
|
|
1227
|
+
Persistence 2 hunts, 7 techniques
|
|
1228
|
+
|
|
1174
1229
|
🔍 Detailed Technique Coverage
|
|
1175
1230
|
|
|
1176
1231
|
Persistence (2 hunts, 7 unique techniques)
|
|
@@ -1181,13 +1236,14 @@ Persistence (2 hunts, 7 unique techniques)
|
|
|
1181
1236
|
• T1078.004 - H-0003
|
|
1182
1237
|
• T1098 - H-0003
|
|
1183
1238
|
• T1546.004 - H-0003
|
|
1184
|
-
|
|
1185
|
-
Collection (1 hunts, 3 unique techniques)
|
|
1186
|
-
• T1005 - H-0001
|
|
1187
|
-
• T1059.002 - H-0001
|
|
1188
|
-
• T1555.003 - H-0001
|
|
1189
1239
|
```
|
|
1190
1240
|
|
|
1241
|
+
**Valid tactic names:**
|
|
1242
|
+
- `reconnaissance`, `resource-development`, `initial-access`, `execution`
|
|
1243
|
+
- `persistence`, `privilege-escalation`, `defense-evasion`, `credential-access`
|
|
1244
|
+
- `discovery`, `lateral-movement`, `collection`, `command-and-control`
|
|
1245
|
+
- `exfiltration`, `impact`
|
|
1246
|
+
|
|
1191
1247
|
### Progress Bar Legend
|
|
1192
1248
|
|
|
1193
1249
|
- `█` = Covered technique
|
|
@@ -1639,6 +1695,456 @@ Next steps:
|
|
|
1639
1695
|
|
|
1640
1696
|
---
|
|
1641
1697
|
|
|
1698
|
+
## athf agent list
|
|
1699
|
+
|
|
1700
|
+
List all available agents in the ATHF framework.
|
|
1701
|
+
|
|
1702
|
+
### Synopsis
|
|
1703
|
+
|
|
1704
|
+
```bash
|
|
1705
|
+
athf agent list [OPTIONS]
|
|
1706
|
+
```
|
|
1707
|
+
|
|
1708
|
+
### Description
|
|
1709
|
+
|
|
1710
|
+
Displays all 8 agents (6 core + 2 LLM) available for threat hunting workflows. Shows agent names, types, and brief descriptions.
|
|
1711
|
+
|
|
1712
|
+
### Options
|
|
1713
|
+
|
|
1714
|
+
| Option | Type | Default | Description |
|
|
1715
|
+
|--------|------|---------|-------------|
|
|
1716
|
+
| `--output` | Choice | table | Output format: `table`, `json`, `yaml` |
|
|
1717
|
+
|
|
1718
|
+
### Examples
|
|
1719
|
+
|
|
1720
|
+
**List all agents:**
|
|
1721
|
+
|
|
1722
|
+
```bash
|
|
1723
|
+
athf agent list
|
|
1724
|
+
```
|
|
1725
|
+
|
|
1726
|
+
Output:
|
|
1727
|
+
```
|
|
1728
|
+
Available Agents
|
|
1729
|
+
|
|
1730
|
+
Core Agents (6):
|
|
1731
|
+
• context-loader - Load hunt context and related files
|
|
1732
|
+
• query-validator - Validate SQL queries before execution
|
|
1733
|
+
• coverage-analyzer - Analyze MITRE ATT&CK coverage
|
|
1734
|
+
• metrics-aggregator - Aggregate hunt metrics and statistics
|
|
1735
|
+
• similarity-scorer - Find similar hunts using TF-IDF
|
|
1736
|
+
• investigation-promoter - Promote investigations to hunts
|
|
1737
|
+
|
|
1738
|
+
LLM Agents (2):
|
|
1739
|
+
• hypothesis-generator - Generate hunt hypotheses from threat intel
|
|
1740
|
+
• research-agent - Conduct pre-hunt research with web search
|
|
1741
|
+
```
|
|
1742
|
+
|
|
1743
|
+
**JSON output:**
|
|
1744
|
+
|
|
1745
|
+
```bash
|
|
1746
|
+
athf agent list --output json
|
|
1747
|
+
```
|
|
1748
|
+
|
|
1749
|
+
### Exit Codes
|
|
1750
|
+
|
|
1751
|
+
- `0`: Success
|
|
1752
|
+
|
|
1753
|
+
---
|
|
1754
|
+
|
|
1755
|
+
## athf agent info
|
|
1756
|
+
|
|
1757
|
+
Show detailed information about a specific agent.
|
|
1758
|
+
|
|
1759
|
+
### Synopsis
|
|
1760
|
+
|
|
1761
|
+
```bash
|
|
1762
|
+
athf agent info AGENT_NAME
|
|
1763
|
+
```
|
|
1764
|
+
|
|
1765
|
+
### Description
|
|
1766
|
+
|
|
1767
|
+
Displays detailed information about an agent including capabilities, input requirements, output format, and usage examples.
|
|
1768
|
+
|
|
1769
|
+
### Arguments
|
|
1770
|
+
|
|
1771
|
+
| Argument | Type | Description |
|
|
1772
|
+
|----------|------|-------------|
|
|
1773
|
+
| `AGENT_NAME` | String | Agent name (e.g., hypothesis-generator, context-loader) |
|
|
1774
|
+
|
|
1775
|
+
### Examples
|
|
1776
|
+
|
|
1777
|
+
**Show agent details:**
|
|
1778
|
+
|
|
1779
|
+
```bash
|
|
1780
|
+
athf agent info hypothesis-generator
|
|
1781
|
+
```
|
|
1782
|
+
|
|
1783
|
+
Output:
|
|
1784
|
+
```
|
|
1785
|
+
Agent: hypothesis-generator
|
|
1786
|
+
Type: LLM Agent
|
|
1787
|
+
Description: Generate structured hunt hypotheses from threat intelligence
|
|
1788
|
+
|
|
1789
|
+
Capabilities:
|
|
1790
|
+
• Analyzes threat intel and TTPs
|
|
1791
|
+
• Generates ABLE framework scoping
|
|
1792
|
+
• Creates testable hypotheses
|
|
1793
|
+
• Suggests data sources and queries
|
|
1794
|
+
|
|
1795
|
+
Input Requirements:
|
|
1796
|
+
• --threat-intel (required): Threat intelligence or context
|
|
1797
|
+
|
|
1798
|
+
Output Format:
|
|
1799
|
+
• hypothesis: Testable hypothesis statement
|
|
1800
|
+
• actor: Threat actor description
|
|
1801
|
+
• behavior: Expected behavior patterns
|
|
1802
|
+
• location: Where to look (data sources)
|
|
1803
|
+
• evidence: What evidence to collect
|
|
1804
|
+
|
|
1805
|
+
Example Usage:
|
|
1806
|
+
athf agent run hypothesis-generator \
|
|
1807
|
+
--threat-intel "APT29 using WMI for persistence"
|
|
1808
|
+
```
|
|
1809
|
+
|
|
1810
|
+
### Exit Codes
|
|
1811
|
+
|
|
1812
|
+
- `0`: Success
|
|
1813
|
+
- `1`: Agent not found
|
|
1814
|
+
|
|
1815
|
+
---
|
|
1816
|
+
|
|
1817
|
+
## athf agent run
|
|
1818
|
+
|
|
1819
|
+
Run an individual agent with specified parameters.
|
|
1820
|
+
|
|
1821
|
+
### Synopsis
|
|
1822
|
+
|
|
1823
|
+
```bash
|
|
1824
|
+
athf agent run AGENT_NAME [OPTIONS]
|
|
1825
|
+
```
|
|
1826
|
+
|
|
1827
|
+
### Description
|
|
1828
|
+
|
|
1829
|
+
Executes a specific agent with provided inputs. Agents are autonomous components that perform specific tasks in the threat hunting workflow.
|
|
1830
|
+
|
|
1831
|
+
### Arguments
|
|
1832
|
+
|
|
1833
|
+
| Argument | Type | Description |
|
|
1834
|
+
|----------|------|-------------|
|
|
1835
|
+
| `AGENT_NAME` | String | Agent to run (see `athf agent list`) |
|
|
1836
|
+
|
|
1837
|
+
### Common Options
|
|
1838
|
+
|
|
1839
|
+
| Option | Type | Description |
|
|
1840
|
+
|--------|------|-------------|
|
|
1841
|
+
| `--output` | Choice | Output format: `json`, `yaml`, `text` (default: text) |
|
|
1842
|
+
|
|
1843
|
+
### Agent-Specific Options
|
|
1844
|
+
|
|
1845
|
+
**hypothesis-generator:**
|
|
1846
|
+
- `--threat-intel` (required): Threat intelligence text
|
|
1847
|
+
- `--technique`: MITRE ATT&CK technique (optional)
|
|
1848
|
+
|
|
1849
|
+
**context-loader:**
|
|
1850
|
+
- `--hunt`: Hunt ID to load context for
|
|
1851
|
+
- `--tactic`: Filter by tactic
|
|
1852
|
+
- `--platform`: Filter by platform
|
|
1853
|
+
|
|
1854
|
+
**query-validator:**
|
|
1855
|
+
- `--sql`: SQL query to validate
|
|
1856
|
+
- `--target`: Target database (default: clickhouse)
|
|
1857
|
+
|
|
1858
|
+
**coverage-analyzer:**
|
|
1859
|
+
- `--tactic`: Analyze specific tactic coverage
|
|
1860
|
+
|
|
1861
|
+
**similarity-scorer:**
|
|
1862
|
+
- `--query`: Search query text
|
|
1863
|
+
- `--hunt`: Hunt ID to find similar hunts for
|
|
1864
|
+
- `--limit`: Max results (default: 10)
|
|
1865
|
+
|
|
1866
|
+
### Examples
|
|
1867
|
+
|
|
1868
|
+
**Generate hypothesis:**
|
|
1869
|
+
|
|
1870
|
+
```bash
|
|
1871
|
+
athf agent run hypothesis-generator \
|
|
1872
|
+
--threat-intel "APT29 using WMI for lateral movement and persistence" \
|
|
1873
|
+
--technique T1047
|
|
1874
|
+
```
|
|
1875
|
+
|
|
1876
|
+
**Load hunt context:**
|
|
1877
|
+
|
|
1878
|
+
```bash
|
|
1879
|
+
athf agent run context-loader \
|
|
1880
|
+
--hunt H-0013 \
|
|
1881
|
+
--output json
|
|
1882
|
+
```
|
|
1883
|
+
|
|
1884
|
+
**Validate query:**
|
|
1885
|
+
|
|
1886
|
+
```bash
|
|
1887
|
+
athf agent run query-validator \
|
|
1888
|
+
--sql "SELECT * FROM events WHERE time >= now() - INTERVAL 7 DAY LIMIT 100"
|
|
1889
|
+
```
|
|
1890
|
+
|
|
1891
|
+
**Analyze coverage:**
|
|
1892
|
+
|
|
1893
|
+
```bash
|
|
1894
|
+
athf agent run coverage-analyzer --tactic credential-access
|
|
1895
|
+
```
|
|
1896
|
+
|
|
1897
|
+
**Find similar hunts:**
|
|
1898
|
+
|
|
1899
|
+
```bash
|
|
1900
|
+
athf agent run similarity-scorer \
|
|
1901
|
+
--query "password spraying" \
|
|
1902
|
+
--limit 5
|
|
1903
|
+
```
|
|
1904
|
+
|
|
1905
|
+
### Exit Codes
|
|
1906
|
+
|
|
1907
|
+
- `0`: Success
|
|
1908
|
+
- `1`: Agent execution failed
|
|
1909
|
+
- `2`: Invalid arguments
|
|
1910
|
+
|
|
1911
|
+
---
|
|
1912
|
+
|
|
1913
|
+
## athf research new
|
|
1914
|
+
|
|
1915
|
+
Create new research document with web search and LLM analysis.
|
|
1916
|
+
|
|
1917
|
+
### Synopsis
|
|
1918
|
+
|
|
1919
|
+
```bash
|
|
1920
|
+
athf research new [OPTIONS]
|
|
1921
|
+
```
|
|
1922
|
+
|
|
1923
|
+
### Description
|
|
1924
|
+
|
|
1925
|
+
Conducts deep pre-hunt research using a 5-skill methodology: System Internals, Adversary Tradecraft, Telemetry Mapping, Historical Analysis, and Environmental Factors. Uses web search (Tavily API) and LLM analysis (AWS Bedrock) to generate comprehensive research documents.
|
|
1926
|
+
|
|
1927
|
+
**Research Depth:**
|
|
1928
|
+
- **Advanced** (default): 15-20 minutes, thorough 5-skill methodology
|
|
1929
|
+
- **Basic**: 5 minutes, rapid research for urgent hunts
|
|
1930
|
+
|
|
1931
|
+
### Options
|
|
1932
|
+
|
|
1933
|
+
| Option | Type | Default | Description |
|
|
1934
|
+
|--------|------|---------|-------------|
|
|
1935
|
+
| `--topic` | String | Required | Research topic (e.g., "LSASS dumping", "Pass-the-Hash") |
|
|
1936
|
+
| `--technique` | String | - | MITRE ATT&CK technique (e.g., T1003.001) |
|
|
1937
|
+
| `--depth` | Choice | advanced | Research depth: `basic`, `advanced` |
|
|
1938
|
+
| `--output` | Choice | markdown | Output format: `markdown`, `json`, `yaml` |
|
|
1939
|
+
|
|
1940
|
+
### Examples
|
|
1941
|
+
|
|
1942
|
+
**Deep research (default):**
|
|
1943
|
+
|
|
1944
|
+
```bash
|
|
1945
|
+
athf research new --topic "LSASS dumping" --technique T1003.001
|
|
1946
|
+
```
|
|
1947
|
+
|
|
1948
|
+
**Quick research for urgent hunts:**
|
|
1949
|
+
|
|
1950
|
+
```bash
|
|
1951
|
+
athf research new --topic "Pass-the-Hash" --depth basic
|
|
1952
|
+
```
|
|
1953
|
+
|
|
1954
|
+
**Research without technique mapping:**
|
|
1955
|
+
|
|
1956
|
+
```bash
|
|
1957
|
+
athf research new --topic "Cloud IAM enumeration"
|
|
1958
|
+
```
|
|
1959
|
+
|
|
1960
|
+
### Output
|
|
1961
|
+
|
|
1962
|
+
```
|
|
1963
|
+
🔬 Starting research: LSASS dumping
|
|
1964
|
+
|
|
1965
|
+
Research ID: R-0003
|
|
1966
|
+
|
|
1967
|
+
⏳ Conducting research (this may take 15-20 minutes)...
|
|
1968
|
+
|
|
1969
|
+
✅ Research complete!
|
|
1970
|
+
|
|
1971
|
+
Created: research/R-0003.md
|
|
1972
|
+
|
|
1973
|
+
Next steps:
|
|
1974
|
+
1. Review research/R-0003.md
|
|
1975
|
+
2. Create hunt: athf hunt new --research R-0003
|
|
1976
|
+
3. Link to hunt in frontmatter
|
|
1977
|
+
```
|
|
1978
|
+
|
|
1979
|
+
### Generated File Structure
|
|
1980
|
+
|
|
1981
|
+
```yaml
|
|
1982
|
+
---
|
|
1983
|
+
research_id: R-0003
|
|
1984
|
+
title: "LSASS Dumping Research"
|
|
1985
|
+
topic: "LSASS dumping"
|
|
1986
|
+
technique: T1003.001
|
|
1987
|
+
depth: advanced
|
|
1988
|
+
date: 2026-01-13
|
|
1989
|
+
status: completed
|
|
1990
|
+
---
|
|
1991
|
+
|
|
1992
|
+
# R-0003: LSASS Dumping Research
|
|
1993
|
+
|
|
1994
|
+
## Executive Summary
|
|
1995
|
+
...
|
|
1996
|
+
|
|
1997
|
+
## System Internals
|
|
1998
|
+
...
|
|
1999
|
+
|
|
2000
|
+
## Adversary Tradecraft
|
|
2001
|
+
...
|
|
2002
|
+
|
|
2003
|
+
## Telemetry Mapping
|
|
2004
|
+
...
|
|
2005
|
+
|
|
2006
|
+
## Historical Analysis
|
|
2007
|
+
...
|
|
2008
|
+
|
|
2009
|
+
## Environmental Factors
|
|
2010
|
+
...
|
|
2011
|
+
|
|
2012
|
+
## Recommendations
|
|
2013
|
+
...
|
|
2014
|
+
```
|
|
2015
|
+
|
|
2016
|
+
### Requirements
|
|
2017
|
+
|
|
2018
|
+
**Optional but Recommended:**
|
|
2019
|
+
- `TAVILY_API_KEY`: Web search for adversary tradecraft (get from https://tavily.com)
|
|
2020
|
+
- `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_DEFAULT_REGION`: AWS Bedrock for LLM analysis
|
|
2021
|
+
- Without Bedrock: Falls back to template-based research
|
|
2022
|
+
- With Bedrock: Enhanced analysis using Claude Sonnet 4.5
|
|
2023
|
+
|
|
2024
|
+
### Exit Codes
|
|
2025
|
+
|
|
2026
|
+
- `0`: Success
|
|
2027
|
+
- `1`: Research failed
|
|
2028
|
+
- `2`: Missing required options
|
|
2029
|
+
|
|
2030
|
+
---
|
|
2031
|
+
|
|
2032
|
+
## athf research list
|
|
2033
|
+
|
|
2034
|
+
List all research documents.
|
|
2035
|
+
|
|
2036
|
+
### Synopsis
|
|
2037
|
+
|
|
2038
|
+
```bash
|
|
2039
|
+
athf research list [OPTIONS]
|
|
2040
|
+
```
|
|
2041
|
+
|
|
2042
|
+
### Description
|
|
2043
|
+
|
|
2044
|
+
Displays all research documents with filtering options.
|
|
2045
|
+
|
|
2046
|
+
### Options
|
|
2047
|
+
|
|
2048
|
+
| Option | Type | Default | Description |
|
|
2049
|
+
|--------|------|---------|-------------|
|
|
2050
|
+
| `--status` | Choice | - | Filter by status: `in-progress`, `completed` |
|
|
2051
|
+
| `--output` | Choice | table | Output format: `table`, `json`, `yaml` |
|
|
2052
|
+
|
|
2053
|
+
### Examples
|
|
2054
|
+
|
|
2055
|
+
```bash
|
|
2056
|
+
# List all research
|
|
2057
|
+
athf research list
|
|
2058
|
+
|
|
2059
|
+
# Filter by status
|
|
2060
|
+
athf research list --status completed
|
|
2061
|
+
|
|
2062
|
+
# JSON output
|
|
2063
|
+
athf research list --output json
|
|
2064
|
+
```
|
|
2065
|
+
|
|
2066
|
+
### Exit Codes
|
|
2067
|
+
|
|
2068
|
+
- `0`: Success
|
|
2069
|
+
|
|
2070
|
+
---
|
|
2071
|
+
|
|
2072
|
+
## athf research view
|
|
2073
|
+
|
|
2074
|
+
View research document content.
|
|
2075
|
+
|
|
2076
|
+
### Synopsis
|
|
2077
|
+
|
|
2078
|
+
```bash
|
|
2079
|
+
athf research view RESEARCH_ID
|
|
2080
|
+
```
|
|
2081
|
+
|
|
2082
|
+
### Description
|
|
2083
|
+
|
|
2084
|
+
Displays the full content of a research document.
|
|
2085
|
+
|
|
2086
|
+
### Arguments
|
|
2087
|
+
|
|
2088
|
+
| Argument | Type | Description |
|
|
2089
|
+
|----------|------|-------------|
|
|
2090
|
+
| `RESEARCH_ID` | String | Research ID (e.g., R-0001) |
|
|
2091
|
+
|
|
2092
|
+
### Examples
|
|
2093
|
+
|
|
2094
|
+
```bash
|
|
2095
|
+
athf research view R-0001
|
|
2096
|
+
```
|
|
2097
|
+
|
|
2098
|
+
### Exit Codes
|
|
2099
|
+
|
|
2100
|
+
- `0`: Success
|
|
2101
|
+
- `1`: Research not found
|
|
2102
|
+
|
|
2103
|
+
---
|
|
2104
|
+
|
|
2105
|
+
## athf hunt execute
|
|
2106
|
+
|
|
2107
|
+
Execute hunt workflow with agent orchestration.
|
|
2108
|
+
|
|
2109
|
+
### Synopsis
|
|
2110
|
+
|
|
2111
|
+
```bash
|
|
2112
|
+
athf hunt execute HUNT_ID [OPTIONS]
|
|
2113
|
+
```
|
|
2114
|
+
|
|
2115
|
+
### Description
|
|
2116
|
+
|
|
2117
|
+
Orchestrates the complete LOCK pattern workflow using autonomous agents. Loads context, validates queries, executes hunt, and generates findings.
|
|
2118
|
+
|
|
2119
|
+
### Arguments
|
|
2120
|
+
|
|
2121
|
+
| Argument | Type | Description |
|
|
2122
|
+
|----------|------|-------------|
|
|
2123
|
+
| `HUNT_ID` | String | Hunt to execute (e.g., H-0013) |
|
|
2124
|
+
|
|
2125
|
+
### Options
|
|
2126
|
+
|
|
2127
|
+
| Option | Type | Default | Description |
|
|
2128
|
+
|--------|------|---------|-------------|
|
|
2129
|
+
| `--dry-run` | Flag | False | Simulate execution without running queries |
|
|
2130
|
+
|
|
2131
|
+
### Examples
|
|
2132
|
+
|
|
2133
|
+
```bash
|
|
2134
|
+
# Execute hunt with orchestration
|
|
2135
|
+
athf hunt execute H-0013
|
|
2136
|
+
|
|
2137
|
+
# Dry run to validate workflow
|
|
2138
|
+
athf hunt execute H-0013 --dry-run
|
|
2139
|
+
```
|
|
2140
|
+
|
|
2141
|
+
### Exit Codes
|
|
2142
|
+
|
|
2143
|
+
- `0`: Success
|
|
2144
|
+
- `1`: Execution failed
|
|
2145
|
+
|
|
2146
|
+
---
|
|
2147
|
+
|
|
1642
2148
|
## Configuration
|
|
1643
2149
|
|
|
1644
2150
|
ATHF uses `.athfconfig.yaml` for configuration:
|
|
@@ -191,14 +191,25 @@ The repository includes [knowledge/hunting-knowledge.md](../knowledge/hunting-kn
|
|
|
191
191
|
|
|
192
192
|
**No changes needed** - this file provides universal hunting expertise that AI assistants will apply to your environment.
|
|
193
193
|
|
|
194
|
-
### Test AI Integration
|
|
194
|
+
### Test AI Integration and Agent Framework (v0.3.0+)
|
|
195
195
|
|
|
196
196
|
1. Open your repository in Claude Code, GitHub Copilot, or Cursor
|
|
197
197
|
2. Ask: "What hunts have we documented?"
|
|
198
198
|
3. Ask: "What data sources do we have for Windows endpoint hunting?"
|
|
199
|
-
4.
|
|
199
|
+
4. Try the agent framework:
|
|
200
|
+
```bash
|
|
201
|
+
# List available agents
|
|
202
|
+
athf agent list
|
|
203
|
+
|
|
204
|
+
# Generate a hypothesis using the hypothesis-generator agent
|
|
205
|
+
athf agent run hypothesis-generator \
|
|
206
|
+
--threat-intel "APT29 using LSASS dumping for credential theft"
|
|
200
207
|
|
|
201
|
-
|
|
208
|
+
# Conduct pre-hunt research
|
|
209
|
+
athf research new --topic "LSASS dumping" --technique T1003.001
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
If the AI can answer these questions and the agent commands work, you're successfully at Level 2!
|
|
202
213
|
|
|
203
214
|
**Time investment:** Approximately 1 week to customize AGENTS.md and test AI integration.
|
|
204
215
|
|
|
@@ -332,12 +343,45 @@ Don't build a full agent pipeline on day one:
|
|
|
332
343
|
|
|
333
344
|
If you installed the CLI (Option A), here are the most useful commands:
|
|
334
345
|
|
|
346
|
+
### Agent Framework (v0.3.0+)
|
|
347
|
+
|
|
348
|
+
```bash
|
|
349
|
+
# List all available agents
|
|
350
|
+
athf agent list
|
|
351
|
+
|
|
352
|
+
# Get details about a specific agent
|
|
353
|
+
athf agent info hypothesis-generator
|
|
354
|
+
|
|
355
|
+
# Run an agent
|
|
356
|
+
athf agent run hypothesis-generator --threat-intel "APT29 using WMI"
|
|
357
|
+
athf agent run context-loader --hunt H-0013
|
|
358
|
+
athf agent run similarity-scorer --query "password spraying"
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
### Research Workflow (v0.3.0+)
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
# Create research document (15-20 min deep research)
|
|
365
|
+
athf research new --topic "LSASS dumping" --technique T1003.001
|
|
366
|
+
|
|
367
|
+
# Quick research for urgent hunts (5 min)
|
|
368
|
+
athf research new --topic "Pass-the-Hash" --depth basic
|
|
369
|
+
|
|
370
|
+
# List and view research
|
|
371
|
+
athf research list
|
|
372
|
+
athf research view R-0001
|
|
373
|
+
```
|
|
374
|
+
|
|
335
375
|
### Hunt Management
|
|
336
376
|
|
|
337
377
|
```bash
|
|
338
378
|
# Create hunts
|
|
339
379
|
athf hunt new # Interactive mode
|
|
340
380
|
athf hunt new --technique T1003.001 --title "LSASS Dumping"
|
|
381
|
+
athf hunt new --research R-0001 # Link to research document
|
|
382
|
+
|
|
383
|
+
# Execute hunt workflow with agents (v0.3.0+)
|
|
384
|
+
athf hunt execute H-0013
|
|
341
385
|
|
|
342
386
|
# List and search
|
|
343
387
|
athf hunt list # All hunts
|