hound-cli 0.1.0__tar.gz → 0.1.1__tar.gz
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.
- hound_cli-0.1.1/PKG-INFO +336 -0
- hound_cli-0.1.1/README.md +319 -0
- hound_cli-0.1.1/hound_cli.egg-info/PKG-INFO +336 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/hound_cli.egg-info/requires.txt +1 -1
- {hound_cli-0.1.0 → hound_cli-0.1.1}/pyproject.toml +3 -2
- hound_cli-0.1.0/PKG-INFO +0 -79
- hound_cli-0.1.0/README.md +0 -62
- hound_cli-0.1.0/hound_cli.egg-info/PKG-INFO +0 -79
- {hound_cli-0.1.0 → hound_cli-0.1.1}/LICENSE +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/hound_cli.egg-info/SOURCES.txt +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/hound_cli.egg-info/dependency_links.txt +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/hound_cli.egg-info/entry_points.txt +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/hound_cli.egg-info/top_level.txt +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/setup.cfg +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/__init__.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/__main__.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/agents.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/aws.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/contracts/__init__.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/contracts/domain.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/contracts/workflow.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/inbox/__init__.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/inbox/command.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/inbox/email.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/inbox/sms.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/reports/__init__.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/reports/close.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/reports/files.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/reports/open.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/reports/render.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/reports/reviews.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/reports/service.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/roster.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/targets/__init__.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/targets/configure.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/targets/verification.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/ui.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/workflows/__init__.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/workflows/launch.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/workflows/logs.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/workflows/selection.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/workflows/status.py +0 -0
- {hound_cli-0.1.0 → hound_cli-0.1.1}/src/workflows/stop.py +0 -0
hound_cli-0.1.1/PKG-INFO
ADDED
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: hound-cli
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: Hound operator CLI
|
|
5
|
+
License-Expression: Apache-2.0
|
|
6
|
+
Requires-Python: >=3.14
|
|
7
|
+
Description-Content-Type: text/markdown
|
|
8
|
+
License-File: LICENSE
|
|
9
|
+
Requires-Dist: boto3>=1.35.0
|
|
10
|
+
Requires-Dist: click>=8.3.3
|
|
11
|
+
Requires-Dist: dnspython>=2.7
|
|
12
|
+
Requires-Dist: idna>=3.11
|
|
13
|
+
Requires-Dist: publicsuffixlist>=1.0.2.20260515
|
|
14
|
+
Requires-Dist: questionary>=2.1
|
|
15
|
+
Requires-Dist: urllib3>=2.8.0
|
|
16
|
+
Dynamic: license-file
|
|
17
|
+
|
|
18
|
+
# Hound CLI
|
|
19
|
+
|
|
20
|
+
The command-line interface for managing [Hound](https://cyberhound.ai) penetration tests.
|
|
21
|
+
|
|
22
|
+
## Install
|
|
23
|
+
|
|
24
|
+
Requires Python 3.14 or newer and [`pipx`](https://pipx.pypa.io/stable/installation/).
|
|
25
|
+
|
|
26
|
+
```console
|
|
27
|
+
pipx install hound-cli
|
|
28
|
+
hound --help
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
To upgrade:
|
|
32
|
+
|
|
33
|
+
```console
|
|
34
|
+
pipx upgrade hound-cli
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Hound uses your current AWS credentials to access your Hound environment.
|
|
38
|
+
Run `hound <command> --help` for usage and options, or see the reference below.
|
|
39
|
+
|
|
40
|
+
## Command reference
|
|
41
|
+
|
|
42
|
+
<!-- [[[cog
|
|
43
|
+
import click
|
|
44
|
+
import cog
|
|
45
|
+
from hound_cli.__main__ import main
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def render(command, name, parent=None):
|
|
49
|
+
with command.make_context(name, [], parent=parent, resilient_parsing=True, terminal_width=88) as ctx:
|
|
50
|
+
cog.outl(f"### `{ctx.command_path}`\n\n```text\n{ctx.get_help()}\n```\n")
|
|
51
|
+
if isinstance(command, click.Group):
|
|
52
|
+
for child_name in command.list_commands(ctx):
|
|
53
|
+
render(command.get_command(ctx, child_name), child_name, ctx)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
render(main, "hound")
|
|
57
|
+
]]] -->
|
|
58
|
+
### `hound`
|
|
59
|
+
|
|
60
|
+
```text
|
|
61
|
+
Usage: hound [OPTIONS] COMMAND [ARGS]...
|
|
62
|
+
|
|
63
|
+
Hound CLI.
|
|
64
|
+
|
|
65
|
+
Options:
|
|
66
|
+
-h, --help Show this message and exit.
|
|
67
|
+
|
|
68
|
+
Commands:
|
|
69
|
+
agents List Hound agents and their configured contact details.
|
|
70
|
+
auth Show and check DNS authorization for a target.
|
|
71
|
+
engagements Launch and manage penetration tests.
|
|
72
|
+
inbox Read recent agent email or SMS for this account.
|
|
73
|
+
ips List persistent Hound Elastic IPs.
|
|
74
|
+
reports Manage task-scoped customer report reviews.
|
|
75
|
+
retests Launch and manage retests.
|
|
76
|
+
status Show the account-wide work queue, newest first.
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### `hound agents`
|
|
80
|
+
|
|
81
|
+
```text
|
|
82
|
+
Usage: hound agents [OPTIONS]
|
|
83
|
+
|
|
84
|
+
List Hound agents and their configured contact details.
|
|
85
|
+
|
|
86
|
+
Options:
|
|
87
|
+
-h, --help Show this message and exit.
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### `hound auth`
|
|
91
|
+
|
|
92
|
+
```text
|
|
93
|
+
Usage: hound auth [OPTIONS]
|
|
94
|
+
|
|
95
|
+
Show and check DNS authorization for a target.
|
|
96
|
+
|
|
97
|
+
Options:
|
|
98
|
+
--domain TEXT Use this exact target domain.
|
|
99
|
+
-h, --help Show this message and exit.
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### `hound engagements`
|
|
103
|
+
|
|
104
|
+
```text
|
|
105
|
+
Usage: hound engagements [OPTIONS] COMMAND [ARGS]...
|
|
106
|
+
|
|
107
|
+
Launch and manage penetration tests.
|
|
108
|
+
|
|
109
|
+
Options:
|
|
110
|
+
-h, --help Show this message and exit.
|
|
111
|
+
|
|
112
|
+
Commands:
|
|
113
|
+
launch Start a new penetration test or relaunch a previous one.
|
|
114
|
+
logs View the log stream for an engagement.
|
|
115
|
+
status Show engagement status details.
|
|
116
|
+
stop Stop an engagement and wait for its infrastructure to be absent.
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### `hound engagements launch`
|
|
120
|
+
|
|
121
|
+
```text
|
|
122
|
+
Usage: hound engagements launch [OPTIONS]
|
|
123
|
+
|
|
124
|
+
Start a new penetration test or relaunch a previous one.
|
|
125
|
+
|
|
126
|
+
Options:
|
|
127
|
+
--skip-dns-check Skip live DNS authorization checks after confirming authorization
|
|
128
|
+
out of band.
|
|
129
|
+
--domain TEXT Use this exact target domain.
|
|
130
|
+
-h, --help Show this message and exit.
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### `hound engagements logs`
|
|
134
|
+
|
|
135
|
+
```text
|
|
136
|
+
Usage: hound engagements logs [OPTIONS]
|
|
137
|
+
|
|
138
|
+
View the log stream for an engagement.
|
|
139
|
+
|
|
140
|
+
Options:
|
|
141
|
+
-t, --tail Keep polling for new events.
|
|
142
|
+
--domain TEXT Use this exact target domain.
|
|
143
|
+
--task-id TEXT Use one exact task; requires --domain.
|
|
144
|
+
-h, --help Show this message and exit.
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### `hound engagements status`
|
|
148
|
+
|
|
149
|
+
```text
|
|
150
|
+
Usage: hound engagements status [OPTIONS]
|
|
151
|
+
|
|
152
|
+
Show engagement status details.
|
|
153
|
+
|
|
154
|
+
Options:
|
|
155
|
+
--task-id TEXT Show one exact task; requires --domain.
|
|
156
|
+
--domain TEXT Filter by exact target domain.
|
|
157
|
+
-h, --help Show this message and exit.
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### `hound engagements stop`
|
|
161
|
+
|
|
162
|
+
```text
|
|
163
|
+
Usage: hound engagements stop [OPTIONS]
|
|
164
|
+
|
|
165
|
+
Stop an engagement and wait for its infrastructure to be absent.
|
|
166
|
+
|
|
167
|
+
Options:
|
|
168
|
+
--task-id TEXT Use one exact task; requires --domain.
|
|
169
|
+
--domain TEXT Use this exact target domain.
|
|
170
|
+
-h, --help Show this message and exit.
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### `hound inbox`
|
|
174
|
+
|
|
175
|
+
```text
|
|
176
|
+
Usage: hound inbox [OPTIONS]
|
|
177
|
+
|
|
178
|
+
Read recent agent email or SMS for this account.
|
|
179
|
+
|
|
180
|
+
Options:
|
|
181
|
+
--agent TEXT Stable agent ID from hound/agents.
|
|
182
|
+
--channel [email|sms] Inbox channel.
|
|
183
|
+
--since TEXT Recent window: 30m, 2h, or up to 7d. [default: 24h]
|
|
184
|
+
-h, --help Show this message and exit.
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### `hound ips`
|
|
188
|
+
|
|
189
|
+
```text
|
|
190
|
+
Usage: hound ips [OPTIONS]
|
|
191
|
+
|
|
192
|
+
List persistent Hound Elastic IPs.
|
|
193
|
+
|
|
194
|
+
Options:
|
|
195
|
+
-h, --help Show this message and exit.
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### `hound reports`
|
|
199
|
+
|
|
200
|
+
```text
|
|
201
|
+
Usage: hound reports [OPTIONS] COMMAND [ARGS]...
|
|
202
|
+
|
|
203
|
+
Manage task-scoped customer report reviews.
|
|
204
|
+
|
|
205
|
+
Options:
|
|
206
|
+
-h, --help Show this message and exit.
|
|
207
|
+
|
|
208
|
+
Commands:
|
|
209
|
+
close Upload one reviewed task to S3 and wipe its local copy.
|
|
210
|
+
open Pull task artifacts for local review.
|
|
211
|
+
render Render one reviewed customer report package as a PDF.
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### `hound reports close`
|
|
215
|
+
|
|
216
|
+
```text
|
|
217
|
+
Usage: hound reports close [OPTIONS]
|
|
218
|
+
|
|
219
|
+
Upload one reviewed task to S3 and wipe its local copy.
|
|
220
|
+
|
|
221
|
+
Options:
|
|
222
|
+
-h, --help Show this message and exit.
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
### `hound reports open`
|
|
226
|
+
|
|
227
|
+
```text
|
|
228
|
+
Usage: hound reports open [OPTIONS]
|
|
229
|
+
|
|
230
|
+
Pull task artifacts for local review.
|
|
231
|
+
|
|
232
|
+
Options:
|
|
233
|
+
--domain TEXT Use this exact target domain.
|
|
234
|
+
--task-id TEXT Use one exact task; requires --domain.
|
|
235
|
+
-h, --help Show this message and exit.
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### `hound reports render`
|
|
239
|
+
|
|
240
|
+
```text
|
|
241
|
+
Usage: hound reports render [OPTIONS]
|
|
242
|
+
|
|
243
|
+
Render one reviewed customer report package as a PDF.
|
|
244
|
+
|
|
245
|
+
Options:
|
|
246
|
+
--customer-name TEXT Customer or application name shown on the cover.
|
|
247
|
+
-h, --help Show this message and exit.
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### `hound retests`
|
|
251
|
+
|
|
252
|
+
```text
|
|
253
|
+
Usage: hound retests [OPTIONS] COMMAND [ARGS]...
|
|
254
|
+
|
|
255
|
+
Launch and manage retests.
|
|
256
|
+
|
|
257
|
+
Options:
|
|
258
|
+
-h, --help Show this message and exit.
|
|
259
|
+
|
|
260
|
+
Commands:
|
|
261
|
+
launch Start or relaunch a retest for a completed penetration test.
|
|
262
|
+
logs View the log stream for a retest.
|
|
263
|
+
status Show retest status details.
|
|
264
|
+
stop Stop a retest and wait for its infrastructure to be absent.
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### `hound retests launch`
|
|
268
|
+
|
|
269
|
+
```text
|
|
270
|
+
Usage: hound retests launch [OPTIONS]
|
|
271
|
+
|
|
272
|
+
Start or relaunch a retest for a completed penetration test.
|
|
273
|
+
|
|
274
|
+
Options:
|
|
275
|
+
--skip-dns-check Skip live DNS authorization checks after confirming authorization
|
|
276
|
+
out of band.
|
|
277
|
+
--domain TEXT Use this exact target domain.
|
|
278
|
+
-h, --help Show this message and exit.
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### `hound retests logs`
|
|
282
|
+
|
|
283
|
+
```text
|
|
284
|
+
Usage: hound retests logs [OPTIONS]
|
|
285
|
+
|
|
286
|
+
View the log stream for a retest.
|
|
287
|
+
|
|
288
|
+
Options:
|
|
289
|
+
-t, --tail Keep polling for new events.
|
|
290
|
+
--domain TEXT Use this exact target domain.
|
|
291
|
+
--task-id TEXT Use one exact task; requires --domain.
|
|
292
|
+
-h, --help Show this message and exit.
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
### `hound retests status`
|
|
296
|
+
|
|
297
|
+
```text
|
|
298
|
+
Usage: hound retests status [OPTIONS]
|
|
299
|
+
|
|
300
|
+
Show retest status details.
|
|
301
|
+
|
|
302
|
+
Options:
|
|
303
|
+
--task-id TEXT Show one exact task; requires --domain.
|
|
304
|
+
--domain TEXT Filter by exact target domain.
|
|
305
|
+
-h, --help Show this message and exit.
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### `hound retests stop`
|
|
309
|
+
|
|
310
|
+
```text
|
|
311
|
+
Usage: hound retests stop [OPTIONS]
|
|
312
|
+
|
|
313
|
+
Stop a retest and wait for its infrastructure to be absent.
|
|
314
|
+
|
|
315
|
+
Options:
|
|
316
|
+
--task-id TEXT Use one exact task; requires --domain.
|
|
317
|
+
--domain TEXT Use this exact target domain.
|
|
318
|
+
-h, --help Show this message and exit.
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### `hound status`
|
|
322
|
+
|
|
323
|
+
```text
|
|
324
|
+
Usage: hound status [OPTIONS]
|
|
325
|
+
|
|
326
|
+
Show the account-wide work queue, newest first.
|
|
327
|
+
|
|
328
|
+
Options:
|
|
329
|
+
--task-id TEXT Show one exact task; requires --domain.
|
|
330
|
+
--domain TEXT Filter by exact target domain.
|
|
331
|
+
-h, --help Show this message and exit.
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
<!-- [[[end]]] -->
|
|
335
|
+
|
|
336
|
+
Hound CLI is licensed under the [Apache License 2.0](LICENSE).
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
# Hound CLI
|
|
2
|
+
|
|
3
|
+
The command-line interface for managing [Hound](https://cyberhound.ai) penetration tests.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
Requires Python 3.14 or newer and [`pipx`](https://pipx.pypa.io/stable/installation/).
|
|
8
|
+
|
|
9
|
+
```console
|
|
10
|
+
pipx install hound-cli
|
|
11
|
+
hound --help
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
To upgrade:
|
|
15
|
+
|
|
16
|
+
```console
|
|
17
|
+
pipx upgrade hound-cli
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Hound uses your current AWS credentials to access your Hound environment.
|
|
21
|
+
Run `hound <command> --help` for usage and options, or see the reference below.
|
|
22
|
+
|
|
23
|
+
## Command reference
|
|
24
|
+
|
|
25
|
+
<!-- [[[cog
|
|
26
|
+
import click
|
|
27
|
+
import cog
|
|
28
|
+
from hound_cli.__main__ import main
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def render(command, name, parent=None):
|
|
32
|
+
with command.make_context(name, [], parent=parent, resilient_parsing=True, terminal_width=88) as ctx:
|
|
33
|
+
cog.outl(f"### `{ctx.command_path}`\n\n```text\n{ctx.get_help()}\n```\n")
|
|
34
|
+
if isinstance(command, click.Group):
|
|
35
|
+
for child_name in command.list_commands(ctx):
|
|
36
|
+
render(command.get_command(ctx, child_name), child_name, ctx)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
render(main, "hound")
|
|
40
|
+
]]] -->
|
|
41
|
+
### `hound`
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
Usage: hound [OPTIONS] COMMAND [ARGS]...
|
|
45
|
+
|
|
46
|
+
Hound CLI.
|
|
47
|
+
|
|
48
|
+
Options:
|
|
49
|
+
-h, --help Show this message and exit.
|
|
50
|
+
|
|
51
|
+
Commands:
|
|
52
|
+
agents List Hound agents and their configured contact details.
|
|
53
|
+
auth Show and check DNS authorization for a target.
|
|
54
|
+
engagements Launch and manage penetration tests.
|
|
55
|
+
inbox Read recent agent email or SMS for this account.
|
|
56
|
+
ips List persistent Hound Elastic IPs.
|
|
57
|
+
reports Manage task-scoped customer report reviews.
|
|
58
|
+
retests Launch and manage retests.
|
|
59
|
+
status Show the account-wide work queue, newest first.
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### `hound agents`
|
|
63
|
+
|
|
64
|
+
```text
|
|
65
|
+
Usage: hound agents [OPTIONS]
|
|
66
|
+
|
|
67
|
+
List Hound agents and their configured contact details.
|
|
68
|
+
|
|
69
|
+
Options:
|
|
70
|
+
-h, --help Show this message and exit.
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### `hound auth`
|
|
74
|
+
|
|
75
|
+
```text
|
|
76
|
+
Usage: hound auth [OPTIONS]
|
|
77
|
+
|
|
78
|
+
Show and check DNS authorization for a target.
|
|
79
|
+
|
|
80
|
+
Options:
|
|
81
|
+
--domain TEXT Use this exact target domain.
|
|
82
|
+
-h, --help Show this message and exit.
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### `hound engagements`
|
|
86
|
+
|
|
87
|
+
```text
|
|
88
|
+
Usage: hound engagements [OPTIONS] COMMAND [ARGS]...
|
|
89
|
+
|
|
90
|
+
Launch and manage penetration tests.
|
|
91
|
+
|
|
92
|
+
Options:
|
|
93
|
+
-h, --help Show this message and exit.
|
|
94
|
+
|
|
95
|
+
Commands:
|
|
96
|
+
launch Start a new penetration test or relaunch a previous one.
|
|
97
|
+
logs View the log stream for an engagement.
|
|
98
|
+
status Show engagement status details.
|
|
99
|
+
stop Stop an engagement and wait for its infrastructure to be absent.
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### `hound engagements launch`
|
|
103
|
+
|
|
104
|
+
```text
|
|
105
|
+
Usage: hound engagements launch [OPTIONS]
|
|
106
|
+
|
|
107
|
+
Start a new penetration test or relaunch a previous one.
|
|
108
|
+
|
|
109
|
+
Options:
|
|
110
|
+
--skip-dns-check Skip live DNS authorization checks after confirming authorization
|
|
111
|
+
out of band.
|
|
112
|
+
--domain TEXT Use this exact target domain.
|
|
113
|
+
-h, --help Show this message and exit.
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### `hound engagements logs`
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
Usage: hound engagements logs [OPTIONS]
|
|
120
|
+
|
|
121
|
+
View the log stream for an engagement.
|
|
122
|
+
|
|
123
|
+
Options:
|
|
124
|
+
-t, --tail Keep polling for new events.
|
|
125
|
+
--domain TEXT Use this exact target domain.
|
|
126
|
+
--task-id TEXT Use one exact task; requires --domain.
|
|
127
|
+
-h, --help Show this message and exit.
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### `hound engagements status`
|
|
131
|
+
|
|
132
|
+
```text
|
|
133
|
+
Usage: hound engagements status [OPTIONS]
|
|
134
|
+
|
|
135
|
+
Show engagement status details.
|
|
136
|
+
|
|
137
|
+
Options:
|
|
138
|
+
--task-id TEXT Show one exact task; requires --domain.
|
|
139
|
+
--domain TEXT Filter by exact target domain.
|
|
140
|
+
-h, --help Show this message and exit.
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### `hound engagements stop`
|
|
144
|
+
|
|
145
|
+
```text
|
|
146
|
+
Usage: hound engagements stop [OPTIONS]
|
|
147
|
+
|
|
148
|
+
Stop an engagement and wait for its infrastructure to be absent.
|
|
149
|
+
|
|
150
|
+
Options:
|
|
151
|
+
--task-id TEXT Use one exact task; requires --domain.
|
|
152
|
+
--domain TEXT Use this exact target domain.
|
|
153
|
+
-h, --help Show this message and exit.
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### `hound inbox`
|
|
157
|
+
|
|
158
|
+
```text
|
|
159
|
+
Usage: hound inbox [OPTIONS]
|
|
160
|
+
|
|
161
|
+
Read recent agent email or SMS for this account.
|
|
162
|
+
|
|
163
|
+
Options:
|
|
164
|
+
--agent TEXT Stable agent ID from hound/agents.
|
|
165
|
+
--channel [email|sms] Inbox channel.
|
|
166
|
+
--since TEXT Recent window: 30m, 2h, or up to 7d. [default: 24h]
|
|
167
|
+
-h, --help Show this message and exit.
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### `hound ips`
|
|
171
|
+
|
|
172
|
+
```text
|
|
173
|
+
Usage: hound ips [OPTIONS]
|
|
174
|
+
|
|
175
|
+
List persistent Hound Elastic IPs.
|
|
176
|
+
|
|
177
|
+
Options:
|
|
178
|
+
-h, --help Show this message and exit.
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### `hound reports`
|
|
182
|
+
|
|
183
|
+
```text
|
|
184
|
+
Usage: hound reports [OPTIONS] COMMAND [ARGS]...
|
|
185
|
+
|
|
186
|
+
Manage task-scoped customer report reviews.
|
|
187
|
+
|
|
188
|
+
Options:
|
|
189
|
+
-h, --help Show this message and exit.
|
|
190
|
+
|
|
191
|
+
Commands:
|
|
192
|
+
close Upload one reviewed task to S3 and wipe its local copy.
|
|
193
|
+
open Pull task artifacts for local review.
|
|
194
|
+
render Render one reviewed customer report package as a PDF.
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### `hound reports close`
|
|
198
|
+
|
|
199
|
+
```text
|
|
200
|
+
Usage: hound reports close [OPTIONS]
|
|
201
|
+
|
|
202
|
+
Upload one reviewed task to S3 and wipe its local copy.
|
|
203
|
+
|
|
204
|
+
Options:
|
|
205
|
+
-h, --help Show this message and exit.
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### `hound reports open`
|
|
209
|
+
|
|
210
|
+
```text
|
|
211
|
+
Usage: hound reports open [OPTIONS]
|
|
212
|
+
|
|
213
|
+
Pull task artifacts for local review.
|
|
214
|
+
|
|
215
|
+
Options:
|
|
216
|
+
--domain TEXT Use this exact target domain.
|
|
217
|
+
--task-id TEXT Use one exact task; requires --domain.
|
|
218
|
+
-h, --help Show this message and exit.
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### `hound reports render`
|
|
222
|
+
|
|
223
|
+
```text
|
|
224
|
+
Usage: hound reports render [OPTIONS]
|
|
225
|
+
|
|
226
|
+
Render one reviewed customer report package as a PDF.
|
|
227
|
+
|
|
228
|
+
Options:
|
|
229
|
+
--customer-name TEXT Customer or application name shown on the cover.
|
|
230
|
+
-h, --help Show this message and exit.
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### `hound retests`
|
|
234
|
+
|
|
235
|
+
```text
|
|
236
|
+
Usage: hound retests [OPTIONS] COMMAND [ARGS]...
|
|
237
|
+
|
|
238
|
+
Launch and manage retests.
|
|
239
|
+
|
|
240
|
+
Options:
|
|
241
|
+
-h, --help Show this message and exit.
|
|
242
|
+
|
|
243
|
+
Commands:
|
|
244
|
+
launch Start or relaunch a retest for a completed penetration test.
|
|
245
|
+
logs View the log stream for a retest.
|
|
246
|
+
status Show retest status details.
|
|
247
|
+
stop Stop a retest and wait for its infrastructure to be absent.
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### `hound retests launch`
|
|
251
|
+
|
|
252
|
+
```text
|
|
253
|
+
Usage: hound retests launch [OPTIONS]
|
|
254
|
+
|
|
255
|
+
Start or relaunch a retest for a completed penetration test.
|
|
256
|
+
|
|
257
|
+
Options:
|
|
258
|
+
--skip-dns-check Skip live DNS authorization checks after confirming authorization
|
|
259
|
+
out of band.
|
|
260
|
+
--domain TEXT Use this exact target domain.
|
|
261
|
+
-h, --help Show this message and exit.
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### `hound retests logs`
|
|
265
|
+
|
|
266
|
+
```text
|
|
267
|
+
Usage: hound retests logs [OPTIONS]
|
|
268
|
+
|
|
269
|
+
View the log stream for a retest.
|
|
270
|
+
|
|
271
|
+
Options:
|
|
272
|
+
-t, --tail Keep polling for new events.
|
|
273
|
+
--domain TEXT Use this exact target domain.
|
|
274
|
+
--task-id TEXT Use one exact task; requires --domain.
|
|
275
|
+
-h, --help Show this message and exit.
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
### `hound retests status`
|
|
279
|
+
|
|
280
|
+
```text
|
|
281
|
+
Usage: hound retests status [OPTIONS]
|
|
282
|
+
|
|
283
|
+
Show retest status details.
|
|
284
|
+
|
|
285
|
+
Options:
|
|
286
|
+
--task-id TEXT Show one exact task; requires --domain.
|
|
287
|
+
--domain TEXT Filter by exact target domain.
|
|
288
|
+
-h, --help Show this message and exit.
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### `hound retests stop`
|
|
292
|
+
|
|
293
|
+
```text
|
|
294
|
+
Usage: hound retests stop [OPTIONS]
|
|
295
|
+
|
|
296
|
+
Stop a retest and wait for its infrastructure to be absent.
|
|
297
|
+
|
|
298
|
+
Options:
|
|
299
|
+
--task-id TEXT Use one exact task; requires --domain.
|
|
300
|
+
--domain TEXT Use this exact target domain.
|
|
301
|
+
-h, --help Show this message and exit.
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
### `hound status`
|
|
305
|
+
|
|
306
|
+
```text
|
|
307
|
+
Usage: hound status [OPTIONS]
|
|
308
|
+
|
|
309
|
+
Show the account-wide work queue, newest first.
|
|
310
|
+
|
|
311
|
+
Options:
|
|
312
|
+
--task-id TEXT Show one exact task; requires --domain.
|
|
313
|
+
--domain TEXT Filter by exact target domain.
|
|
314
|
+
-h, --help Show this message and exit.
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
<!-- [[[end]]] -->
|
|
318
|
+
|
|
319
|
+
Hound CLI is licensed under the [Apache License 2.0](LICENSE).
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: hound-cli
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: Hound operator CLI
|
|
5
|
+
License-Expression: Apache-2.0
|
|
6
|
+
Requires-Python: >=3.14
|
|
7
|
+
Description-Content-Type: text/markdown
|
|
8
|
+
License-File: LICENSE
|
|
9
|
+
Requires-Dist: boto3>=1.35.0
|
|
10
|
+
Requires-Dist: click>=8.3.3
|
|
11
|
+
Requires-Dist: dnspython>=2.7
|
|
12
|
+
Requires-Dist: idna>=3.11
|
|
13
|
+
Requires-Dist: publicsuffixlist>=1.0.2.20260515
|
|
14
|
+
Requires-Dist: questionary>=2.1
|
|
15
|
+
Requires-Dist: urllib3>=2.8.0
|
|
16
|
+
Dynamic: license-file
|
|
17
|
+
|
|
18
|
+
# Hound CLI
|
|
19
|
+
|
|
20
|
+
The command-line interface for managing [Hound](https://cyberhound.ai) penetration tests.
|
|
21
|
+
|
|
22
|
+
## Install
|
|
23
|
+
|
|
24
|
+
Requires Python 3.14 or newer and [`pipx`](https://pipx.pypa.io/stable/installation/).
|
|
25
|
+
|
|
26
|
+
```console
|
|
27
|
+
pipx install hound-cli
|
|
28
|
+
hound --help
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
To upgrade:
|
|
32
|
+
|
|
33
|
+
```console
|
|
34
|
+
pipx upgrade hound-cli
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Hound uses your current AWS credentials to access your Hound environment.
|
|
38
|
+
Run `hound <command> --help` for usage and options, or see the reference below.
|
|
39
|
+
|
|
40
|
+
## Command reference
|
|
41
|
+
|
|
42
|
+
<!-- [[[cog
|
|
43
|
+
import click
|
|
44
|
+
import cog
|
|
45
|
+
from hound_cli.__main__ import main
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def render(command, name, parent=None):
|
|
49
|
+
with command.make_context(name, [], parent=parent, resilient_parsing=True, terminal_width=88) as ctx:
|
|
50
|
+
cog.outl(f"### `{ctx.command_path}`\n\n```text\n{ctx.get_help()}\n```\n")
|
|
51
|
+
if isinstance(command, click.Group):
|
|
52
|
+
for child_name in command.list_commands(ctx):
|
|
53
|
+
render(command.get_command(ctx, child_name), child_name, ctx)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
render(main, "hound")
|
|
57
|
+
]]] -->
|
|
58
|
+
### `hound`
|
|
59
|
+
|
|
60
|
+
```text
|
|
61
|
+
Usage: hound [OPTIONS] COMMAND [ARGS]...
|
|
62
|
+
|
|
63
|
+
Hound CLI.
|
|
64
|
+
|
|
65
|
+
Options:
|
|
66
|
+
-h, --help Show this message and exit.
|
|
67
|
+
|
|
68
|
+
Commands:
|
|
69
|
+
agents List Hound agents and their configured contact details.
|
|
70
|
+
auth Show and check DNS authorization for a target.
|
|
71
|
+
engagements Launch and manage penetration tests.
|
|
72
|
+
inbox Read recent agent email or SMS for this account.
|
|
73
|
+
ips List persistent Hound Elastic IPs.
|
|
74
|
+
reports Manage task-scoped customer report reviews.
|
|
75
|
+
retests Launch and manage retests.
|
|
76
|
+
status Show the account-wide work queue, newest first.
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### `hound agents`
|
|
80
|
+
|
|
81
|
+
```text
|
|
82
|
+
Usage: hound agents [OPTIONS]
|
|
83
|
+
|
|
84
|
+
List Hound agents and their configured contact details.
|
|
85
|
+
|
|
86
|
+
Options:
|
|
87
|
+
-h, --help Show this message and exit.
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### `hound auth`
|
|
91
|
+
|
|
92
|
+
```text
|
|
93
|
+
Usage: hound auth [OPTIONS]
|
|
94
|
+
|
|
95
|
+
Show and check DNS authorization for a target.
|
|
96
|
+
|
|
97
|
+
Options:
|
|
98
|
+
--domain TEXT Use this exact target domain.
|
|
99
|
+
-h, --help Show this message and exit.
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### `hound engagements`
|
|
103
|
+
|
|
104
|
+
```text
|
|
105
|
+
Usage: hound engagements [OPTIONS] COMMAND [ARGS]...
|
|
106
|
+
|
|
107
|
+
Launch and manage penetration tests.
|
|
108
|
+
|
|
109
|
+
Options:
|
|
110
|
+
-h, --help Show this message and exit.
|
|
111
|
+
|
|
112
|
+
Commands:
|
|
113
|
+
launch Start a new penetration test or relaunch a previous one.
|
|
114
|
+
logs View the log stream for an engagement.
|
|
115
|
+
status Show engagement status details.
|
|
116
|
+
stop Stop an engagement and wait for its infrastructure to be absent.
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### `hound engagements launch`
|
|
120
|
+
|
|
121
|
+
```text
|
|
122
|
+
Usage: hound engagements launch [OPTIONS]
|
|
123
|
+
|
|
124
|
+
Start a new penetration test or relaunch a previous one.
|
|
125
|
+
|
|
126
|
+
Options:
|
|
127
|
+
--skip-dns-check Skip live DNS authorization checks after confirming authorization
|
|
128
|
+
out of band.
|
|
129
|
+
--domain TEXT Use this exact target domain.
|
|
130
|
+
-h, --help Show this message and exit.
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### `hound engagements logs`
|
|
134
|
+
|
|
135
|
+
```text
|
|
136
|
+
Usage: hound engagements logs [OPTIONS]
|
|
137
|
+
|
|
138
|
+
View the log stream for an engagement.
|
|
139
|
+
|
|
140
|
+
Options:
|
|
141
|
+
-t, --tail Keep polling for new events.
|
|
142
|
+
--domain TEXT Use this exact target domain.
|
|
143
|
+
--task-id TEXT Use one exact task; requires --domain.
|
|
144
|
+
-h, --help Show this message and exit.
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### `hound engagements status`
|
|
148
|
+
|
|
149
|
+
```text
|
|
150
|
+
Usage: hound engagements status [OPTIONS]
|
|
151
|
+
|
|
152
|
+
Show engagement status details.
|
|
153
|
+
|
|
154
|
+
Options:
|
|
155
|
+
--task-id TEXT Show one exact task; requires --domain.
|
|
156
|
+
--domain TEXT Filter by exact target domain.
|
|
157
|
+
-h, --help Show this message and exit.
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### `hound engagements stop`
|
|
161
|
+
|
|
162
|
+
```text
|
|
163
|
+
Usage: hound engagements stop [OPTIONS]
|
|
164
|
+
|
|
165
|
+
Stop an engagement and wait for its infrastructure to be absent.
|
|
166
|
+
|
|
167
|
+
Options:
|
|
168
|
+
--task-id TEXT Use one exact task; requires --domain.
|
|
169
|
+
--domain TEXT Use this exact target domain.
|
|
170
|
+
-h, --help Show this message and exit.
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### `hound inbox`
|
|
174
|
+
|
|
175
|
+
```text
|
|
176
|
+
Usage: hound inbox [OPTIONS]
|
|
177
|
+
|
|
178
|
+
Read recent agent email or SMS for this account.
|
|
179
|
+
|
|
180
|
+
Options:
|
|
181
|
+
--agent TEXT Stable agent ID from hound/agents.
|
|
182
|
+
--channel [email|sms] Inbox channel.
|
|
183
|
+
--since TEXT Recent window: 30m, 2h, or up to 7d. [default: 24h]
|
|
184
|
+
-h, --help Show this message and exit.
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### `hound ips`
|
|
188
|
+
|
|
189
|
+
```text
|
|
190
|
+
Usage: hound ips [OPTIONS]
|
|
191
|
+
|
|
192
|
+
List persistent Hound Elastic IPs.
|
|
193
|
+
|
|
194
|
+
Options:
|
|
195
|
+
-h, --help Show this message and exit.
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### `hound reports`
|
|
199
|
+
|
|
200
|
+
```text
|
|
201
|
+
Usage: hound reports [OPTIONS] COMMAND [ARGS]...
|
|
202
|
+
|
|
203
|
+
Manage task-scoped customer report reviews.
|
|
204
|
+
|
|
205
|
+
Options:
|
|
206
|
+
-h, --help Show this message and exit.
|
|
207
|
+
|
|
208
|
+
Commands:
|
|
209
|
+
close Upload one reviewed task to S3 and wipe its local copy.
|
|
210
|
+
open Pull task artifacts for local review.
|
|
211
|
+
render Render one reviewed customer report package as a PDF.
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### `hound reports close`
|
|
215
|
+
|
|
216
|
+
```text
|
|
217
|
+
Usage: hound reports close [OPTIONS]
|
|
218
|
+
|
|
219
|
+
Upload one reviewed task to S3 and wipe its local copy.
|
|
220
|
+
|
|
221
|
+
Options:
|
|
222
|
+
-h, --help Show this message and exit.
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
### `hound reports open`
|
|
226
|
+
|
|
227
|
+
```text
|
|
228
|
+
Usage: hound reports open [OPTIONS]
|
|
229
|
+
|
|
230
|
+
Pull task artifacts for local review.
|
|
231
|
+
|
|
232
|
+
Options:
|
|
233
|
+
--domain TEXT Use this exact target domain.
|
|
234
|
+
--task-id TEXT Use one exact task; requires --domain.
|
|
235
|
+
-h, --help Show this message and exit.
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### `hound reports render`
|
|
239
|
+
|
|
240
|
+
```text
|
|
241
|
+
Usage: hound reports render [OPTIONS]
|
|
242
|
+
|
|
243
|
+
Render one reviewed customer report package as a PDF.
|
|
244
|
+
|
|
245
|
+
Options:
|
|
246
|
+
--customer-name TEXT Customer or application name shown on the cover.
|
|
247
|
+
-h, --help Show this message and exit.
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### `hound retests`
|
|
251
|
+
|
|
252
|
+
```text
|
|
253
|
+
Usage: hound retests [OPTIONS] COMMAND [ARGS]...
|
|
254
|
+
|
|
255
|
+
Launch and manage retests.
|
|
256
|
+
|
|
257
|
+
Options:
|
|
258
|
+
-h, --help Show this message and exit.
|
|
259
|
+
|
|
260
|
+
Commands:
|
|
261
|
+
launch Start or relaunch a retest for a completed penetration test.
|
|
262
|
+
logs View the log stream for a retest.
|
|
263
|
+
status Show retest status details.
|
|
264
|
+
stop Stop a retest and wait for its infrastructure to be absent.
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### `hound retests launch`
|
|
268
|
+
|
|
269
|
+
```text
|
|
270
|
+
Usage: hound retests launch [OPTIONS]
|
|
271
|
+
|
|
272
|
+
Start or relaunch a retest for a completed penetration test.
|
|
273
|
+
|
|
274
|
+
Options:
|
|
275
|
+
--skip-dns-check Skip live DNS authorization checks after confirming authorization
|
|
276
|
+
out of band.
|
|
277
|
+
--domain TEXT Use this exact target domain.
|
|
278
|
+
-h, --help Show this message and exit.
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### `hound retests logs`
|
|
282
|
+
|
|
283
|
+
```text
|
|
284
|
+
Usage: hound retests logs [OPTIONS]
|
|
285
|
+
|
|
286
|
+
View the log stream for a retest.
|
|
287
|
+
|
|
288
|
+
Options:
|
|
289
|
+
-t, --tail Keep polling for new events.
|
|
290
|
+
--domain TEXT Use this exact target domain.
|
|
291
|
+
--task-id TEXT Use one exact task; requires --domain.
|
|
292
|
+
-h, --help Show this message and exit.
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
### `hound retests status`
|
|
296
|
+
|
|
297
|
+
```text
|
|
298
|
+
Usage: hound retests status [OPTIONS]
|
|
299
|
+
|
|
300
|
+
Show retest status details.
|
|
301
|
+
|
|
302
|
+
Options:
|
|
303
|
+
--task-id TEXT Show one exact task; requires --domain.
|
|
304
|
+
--domain TEXT Filter by exact target domain.
|
|
305
|
+
-h, --help Show this message and exit.
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### `hound retests stop`
|
|
309
|
+
|
|
310
|
+
```text
|
|
311
|
+
Usage: hound retests stop [OPTIONS]
|
|
312
|
+
|
|
313
|
+
Stop a retest and wait for its infrastructure to be absent.
|
|
314
|
+
|
|
315
|
+
Options:
|
|
316
|
+
--task-id TEXT Use one exact task; requires --domain.
|
|
317
|
+
--domain TEXT Use this exact target domain.
|
|
318
|
+
-h, --help Show this message and exit.
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### `hound status`
|
|
322
|
+
|
|
323
|
+
```text
|
|
324
|
+
Usage: hound status [OPTIONS]
|
|
325
|
+
|
|
326
|
+
Show the account-wide work queue, newest first.
|
|
327
|
+
|
|
328
|
+
Options:
|
|
329
|
+
--task-id TEXT Show one exact task; requires --domain.
|
|
330
|
+
--domain TEXT Filter by exact target domain.
|
|
331
|
+
-h, --help Show this message and exit.
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
<!-- [[[end]]] -->
|
|
335
|
+
|
|
336
|
+
Hound CLI is licensed under the [Apache License 2.0](LICENSE).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "hound-cli"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.1"
|
|
4
4
|
description = "Hound operator CLI"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.14"
|
|
@@ -13,7 +13,7 @@ dependencies = [
|
|
|
13
13
|
"idna>=3.11",
|
|
14
14
|
"publicsuffixlist>=1.0.2.20260515",
|
|
15
15
|
"questionary>=2.1",
|
|
16
|
-
"urllib3>=2.
|
|
16
|
+
"urllib3>=2.8.0",
|
|
17
17
|
]
|
|
18
18
|
|
|
19
19
|
[project.scripts]
|
|
@@ -54,5 +54,6 @@ known-first-party = ["hound_cli"]
|
|
|
54
54
|
|
|
55
55
|
[dependency-groups]
|
|
56
56
|
dev = [
|
|
57
|
+
"cogapp>=3.6.0",
|
|
57
58
|
"ruff>=0.15.9",
|
|
58
59
|
]
|
hound_cli-0.1.0/PKG-INFO
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: hound-cli
|
|
3
|
-
Version: 0.1.0
|
|
4
|
-
Summary: Hound operator CLI
|
|
5
|
-
License-Expression: Apache-2.0
|
|
6
|
-
Requires-Python: >=3.14
|
|
7
|
-
Description-Content-Type: text/markdown
|
|
8
|
-
License-File: LICENSE
|
|
9
|
-
Requires-Dist: boto3>=1.35.0
|
|
10
|
-
Requires-Dist: click>=8.3.3
|
|
11
|
-
Requires-Dist: dnspython>=2.7
|
|
12
|
-
Requires-Dist: idna>=3.11
|
|
13
|
-
Requires-Dist: publicsuffixlist>=1.0.2.20260515
|
|
14
|
-
Requires-Dist: questionary>=2.1
|
|
15
|
-
Requires-Dist: urllib3>=2.7.0
|
|
16
|
-
Dynamic: license-file
|
|
17
|
-
|
|
18
|
-
# Hound CLI
|
|
19
|
-
|
|
20
|
-
The command-line interface for managing Hound penetration tests.
|
|
21
|
-
|
|
22
|
-
## Install
|
|
23
|
-
|
|
24
|
-
Requirements:
|
|
25
|
-
|
|
26
|
-
- Python 3.14 or newer.
|
|
27
|
-
- [`pipx`](https://pipx.pypa.io/stable/installation/) to install Hound.
|
|
28
|
-
|
|
29
|
-
Install Hound from PyPI:
|
|
30
|
-
|
|
31
|
-
```console
|
|
32
|
-
pipx install hound-cli
|
|
33
|
-
hound --help
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
To upgrade:
|
|
37
|
-
|
|
38
|
-
```console
|
|
39
|
-
pipx upgrade hound-cli
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
## Commands
|
|
43
|
-
|
|
44
|
-
Hound uses your current AWS credentials to access your Hound environment.
|
|
45
|
-
|
|
46
|
-
```text
|
|
47
|
-
hound agents
|
|
48
|
-
hound auth
|
|
49
|
-
hound ips
|
|
50
|
-
hound status
|
|
51
|
-
hound engagements launch|status|logs|stop
|
|
52
|
-
hound retests launch|status|logs|stop
|
|
53
|
-
hound inbox
|
|
54
|
-
hound reports open|render|close
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
Commands guide you through selection when context is needed. Run any command
|
|
58
|
-
with `--help` for additional options.
|
|
59
|
-
|
|
60
|
-
Launch commands collect or reuse the access details Hound needs, then check
|
|
61
|
-
target authorization before queueing work. `hound auth` shows the
|
|
62
|
-
accepted DNS record and its current status without starting a launch.
|
|
63
|
-
|
|
64
|
-
Interactive values, including passwords, remain visible while they are entered
|
|
65
|
-
and in subsequent summaries so the operator can verify them.
|
|
66
|
-
|
|
67
|
-
`hound status` opens the account work queue in a terminal pager, with the newest
|
|
68
|
-
work first and older history below it.
|
|
69
|
-
Stop requests continue in AWS if the local display is interrupted.
|
|
70
|
-
|
|
71
|
-
## Report review
|
|
72
|
-
|
|
73
|
-
`hound reports open` creates a local review, `render` produces a customer PDF,
|
|
74
|
-
and `close` uploads the local task files to S3 before wiping the local copy.
|
|
75
|
-
Files removed locally remain in S3. If an upload fails, the local review is
|
|
76
|
-
preserved. Reviews live under `~/Hound/reports` by default and may contain
|
|
77
|
-
sensitive customer data.
|
|
78
|
-
|
|
79
|
-
Hound CLI is licensed under the [Apache License 2.0](LICENSE).
|
hound_cli-0.1.0/README.md
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
# Hound CLI
|
|
2
|
-
|
|
3
|
-
The command-line interface for managing Hound penetration tests.
|
|
4
|
-
|
|
5
|
-
## Install
|
|
6
|
-
|
|
7
|
-
Requirements:
|
|
8
|
-
|
|
9
|
-
- Python 3.14 or newer.
|
|
10
|
-
- [`pipx`](https://pipx.pypa.io/stable/installation/) to install Hound.
|
|
11
|
-
|
|
12
|
-
Install Hound from PyPI:
|
|
13
|
-
|
|
14
|
-
```console
|
|
15
|
-
pipx install hound-cli
|
|
16
|
-
hound --help
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
To upgrade:
|
|
20
|
-
|
|
21
|
-
```console
|
|
22
|
-
pipx upgrade hound-cli
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## Commands
|
|
26
|
-
|
|
27
|
-
Hound uses your current AWS credentials to access your Hound environment.
|
|
28
|
-
|
|
29
|
-
```text
|
|
30
|
-
hound agents
|
|
31
|
-
hound auth
|
|
32
|
-
hound ips
|
|
33
|
-
hound status
|
|
34
|
-
hound engagements launch|status|logs|stop
|
|
35
|
-
hound retests launch|status|logs|stop
|
|
36
|
-
hound inbox
|
|
37
|
-
hound reports open|render|close
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
Commands guide you through selection when context is needed. Run any command
|
|
41
|
-
with `--help` for additional options.
|
|
42
|
-
|
|
43
|
-
Launch commands collect or reuse the access details Hound needs, then check
|
|
44
|
-
target authorization before queueing work. `hound auth` shows the
|
|
45
|
-
accepted DNS record and its current status without starting a launch.
|
|
46
|
-
|
|
47
|
-
Interactive values, including passwords, remain visible while they are entered
|
|
48
|
-
and in subsequent summaries so the operator can verify them.
|
|
49
|
-
|
|
50
|
-
`hound status` opens the account work queue in a terminal pager, with the newest
|
|
51
|
-
work first and older history below it.
|
|
52
|
-
Stop requests continue in AWS if the local display is interrupted.
|
|
53
|
-
|
|
54
|
-
## Report review
|
|
55
|
-
|
|
56
|
-
`hound reports open` creates a local review, `render` produces a customer PDF,
|
|
57
|
-
and `close` uploads the local task files to S3 before wiping the local copy.
|
|
58
|
-
Files removed locally remain in S3. If an upload fails, the local review is
|
|
59
|
-
preserved. Reviews live under `~/Hound/reports` by default and may contain
|
|
60
|
-
sensitive customer data.
|
|
61
|
-
|
|
62
|
-
Hound CLI is licensed under the [Apache License 2.0](LICENSE).
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: hound-cli
|
|
3
|
-
Version: 0.1.0
|
|
4
|
-
Summary: Hound operator CLI
|
|
5
|
-
License-Expression: Apache-2.0
|
|
6
|
-
Requires-Python: >=3.14
|
|
7
|
-
Description-Content-Type: text/markdown
|
|
8
|
-
License-File: LICENSE
|
|
9
|
-
Requires-Dist: boto3>=1.35.0
|
|
10
|
-
Requires-Dist: click>=8.3.3
|
|
11
|
-
Requires-Dist: dnspython>=2.7
|
|
12
|
-
Requires-Dist: idna>=3.11
|
|
13
|
-
Requires-Dist: publicsuffixlist>=1.0.2.20260515
|
|
14
|
-
Requires-Dist: questionary>=2.1
|
|
15
|
-
Requires-Dist: urllib3>=2.7.0
|
|
16
|
-
Dynamic: license-file
|
|
17
|
-
|
|
18
|
-
# Hound CLI
|
|
19
|
-
|
|
20
|
-
The command-line interface for managing Hound penetration tests.
|
|
21
|
-
|
|
22
|
-
## Install
|
|
23
|
-
|
|
24
|
-
Requirements:
|
|
25
|
-
|
|
26
|
-
- Python 3.14 or newer.
|
|
27
|
-
- [`pipx`](https://pipx.pypa.io/stable/installation/) to install Hound.
|
|
28
|
-
|
|
29
|
-
Install Hound from PyPI:
|
|
30
|
-
|
|
31
|
-
```console
|
|
32
|
-
pipx install hound-cli
|
|
33
|
-
hound --help
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
To upgrade:
|
|
37
|
-
|
|
38
|
-
```console
|
|
39
|
-
pipx upgrade hound-cli
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
## Commands
|
|
43
|
-
|
|
44
|
-
Hound uses your current AWS credentials to access your Hound environment.
|
|
45
|
-
|
|
46
|
-
```text
|
|
47
|
-
hound agents
|
|
48
|
-
hound auth
|
|
49
|
-
hound ips
|
|
50
|
-
hound status
|
|
51
|
-
hound engagements launch|status|logs|stop
|
|
52
|
-
hound retests launch|status|logs|stop
|
|
53
|
-
hound inbox
|
|
54
|
-
hound reports open|render|close
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
Commands guide you through selection when context is needed. Run any command
|
|
58
|
-
with `--help` for additional options.
|
|
59
|
-
|
|
60
|
-
Launch commands collect or reuse the access details Hound needs, then check
|
|
61
|
-
target authorization before queueing work. `hound auth` shows the
|
|
62
|
-
accepted DNS record and its current status without starting a launch.
|
|
63
|
-
|
|
64
|
-
Interactive values, including passwords, remain visible while they are entered
|
|
65
|
-
and in subsequent summaries so the operator can verify them.
|
|
66
|
-
|
|
67
|
-
`hound status` opens the account work queue in a terminal pager, with the newest
|
|
68
|
-
work first and older history below it.
|
|
69
|
-
Stop requests continue in AWS if the local display is interrupted.
|
|
70
|
-
|
|
71
|
-
## Report review
|
|
72
|
-
|
|
73
|
-
`hound reports open` creates a local review, `render` produces a customer PDF,
|
|
74
|
-
and `close` uploads the local task files to S3 before wiping the local copy.
|
|
75
|
-
Files removed locally remain in S3. If an upload fails, the local review is
|
|
76
|
-
preserved. Reviews live under `~/Hound/reports` by default and may contain
|
|
77
|
-
sensitive customer data.
|
|
78
|
-
|
|
79
|
-
Hound CLI is licensed under the [Apache License 2.0](LICENSE).
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|