-
Notifications
You must be signed in to change notification settings - Fork 121
User Manual for the AzureHound Managed Application Available on the Marketplace #143
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
WalkthroughAdded a new markdown user guide that documents step-by-step deployment and configuration of the SpecterOps AzureHound Managed Application from the Azure Marketplace, covering portal navigation, Entra ID app registration, required configuration values, deployment review, job initiation, status verification, and log access. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Poem
✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
|
CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (3)
published-azurehound-application-user-guide/USER_GUIDE.md (3)
1-1: Use a proper Markdown heading instead of bold textReplace the leading bold title with an H1 (
#) so it’s picked up by TOC generators and passes MD036.
21-21: Convert bold section titles to headings
**Steps to Register…**,**Create a new Application Secret**, and**Start a job in Bloodhound**should be##or###headings for consistency and Markdown-lint compliance.Also applies to: 31-31, 65-65
5-10: Provide descriptive alt text for screenshotsAlt attributes like “image10” don’t aid screen-reader users. Replace with concise descriptions of what the screenshot shows (e.g.,
"Marketplace search for AzureHound").Also applies to: 18-19, 44-45, 74-76, 80-84, 90-96
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
published-azurehound-application-user-guide/USER_GUIDE.md(1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
published-azurehound-application-user-guide/USER_GUIDE.md
1-1: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
21-21: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
31-31: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
59-59: Bare URL used
(MD034, no-bare-urls)
65-65: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
| https://saazurehounddev.blob.core.windows.net/azurefunction/containerRestartFunction.zip | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
❓ Verification inconclusive
Wrap bare URL in a Markdown link and verify public availability
Bare links fail MD034 and the storage account appears to point at a dev environment (saazurehounddev).
Example:
-https://saazurehounddev.blob.core.windows.net/azurefunction/containerRestartFunction.zip
+[Azure Function package](https://saazurehounddev.blob.core.windows.net/azurefunction/containerRestartFunction.zip)Confirm the URI is intended for production distribution before publishing.
Wrap bare URL in a Markdown link and confirm storage account
Please replace the standalone link with a descriptive Markdown link and verify that saazurehounddev is the correct, publicly accessible endpoint for production distribution.
• File: published-azurehound-application-user-guide/USER_GUIDE.md
Lines: 59–60
- https://saazurehounddev.blob.core.windows.net/azurefunction/containerRestartFunction.zip
+ [Azure Function package](https://saazurehounddev.blob.core.windows.net/azurefunction/containerRestartFunction.zip)Ensure the URI points to the intended (public/production) storage account before publishing.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| https://saazurehounddev.blob.core.windows.net/azurefunction/containerRestartFunction.zip | |
| [Azure Function package](https://saazurehounddev.blob.core.windows.net/azurefunction/containerRestartFunction.zip) |
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
59-59: Bare URL used
(MD034, no-bare-urls)
🤖 Prompt for AI Agents
In published-azurehound-application-user-guide/USER_GUIDE.md around lines 59 to
60, the URL is presented as a bare link. Replace the bare URL with a descriptive
Markdown link text that clearly indicates what the link points to. Additionally,
verify that the storage account name 'saazurehounddev' is the correct and
publicly accessible endpoint intended for production use before finalizing the
change.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (1)
published-azurehound-application-user-guide/USER_GUIDE.md (1)
58-58: Confirm Azure Function package endpoint is production and publicly accessibleThe link now uses a proper Markdown label (thanks). The storage account name still looks like a dev environment (
saazurehounddev). Confirm this is the intended public, production endpoint for distribution. If not, replace with the production URI or a versioned release artifact.Optionally verify availability:
#!/bin/bash # HEAD request should return HTTP/1.1 200 OK and a content-length # If SAS is required, this will likely 403/404. set -euo pipefail URL='https://saazurehounddev.blob.core.windows.net/azurefunction/containerRestartFunction.zip' curl -sI "$URL" | sed -n '1p;/^content-length:/Ip;/^content-type:/Ip;/^last-modified:/Ip'
🧹 Nitpick comments (8)
published-azurehound-application-user-guide/USER_GUIDE.md (8)
21-21: Fix heading level to satisfy MD001Heading jumps from H1 to H3. Use H2 here.
-### Steps to Register an Application in Microsoft Entra ID +## Steps to Register an Application in Microsoft Entra ID
38-38: Remove trailing colon in heading (MD026)Headings should not end with punctuation.
-### To obtain the BloodHound Token ID and Token Secret, follow these steps: +### To obtain the BloodHound Token ID and Token Secret
24-27: Clean up phrasing/hyphens for clarityUnnecessary hyphens make the steps harder to read.
-- Click - **New registration**. +- Click **New registration**. @@ -- Under Supported account types, select - **Accounts in this organizational directory only**. +- Under Supported account types, select **Accounts in this organizational directory only**. @@ -- Click Register to create the Application. +- Click Register to create the application.
57-57: Fix spacing typo-- **BloodHound Token Secret** -Enter the Managed Client Token Secret. +- **BloodHound Token Secret** - Enter the Managed Client Token Secret.
64-64: Standardize product casing (“BloodHound”)-## Start a job in Bloodhound +## Start a job in BloodHound
87-87: Minor wording tweak for clarity-- In the Managed resource group, in Resources, search for the container app and open the Container App resource. +- In the managed resource group, under Resources, search for the container app and open the Container App resource.
47-60: Add minimal examples to reduce user guesswork (optional)Examples help users supply correctly formatted values.
- **Azure Tenant ID** - Your Azure Tenant ID. +- **Azure Tenant ID** - Your Azure tenant ID (e.g., 11111111-2222-3333-4444-555555555555). @@ - **BloodHound Instance Domain** - Enter your BloodHound instance domain name +- **BloodHound Instance Domain** - Enter your BloodHound instance domain name (e.g., https://<your-subdomain>.specterops.io)
1-3: Consider adding a short “Prerequisites” section (optional)Up front, clarify required roles and access to avoid deployment failures.
Suggested content to insert after the main title:
- Azure subscription with permissions to deploy Marketplace Managed Applications (Owner or Contributor on target RG).
- Permission to create an app registration and grant admin consent.
- Access to your BloodHound instance to create a Managed Client and retrieve Token ID/Secret.
- Ability to securely store the client secret.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
published-azurehound-application-user-guide/USER_GUIDE.md(1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
published-azurehound-application-user-guide/USER_GUIDE.md
21-21: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
38-38: Trailing punctuation in heading
Punctuation: ':'
(MD026, no-trailing-punctuation)
|
|
||
| 7. Fill in the required AzureHound Config Params: | ||
| - **Azure Tenant ID** - Your Azure Tenant ID. | ||
| - **Azure Application ID** - Register an application in Microsoft Entra ID, and grant it the Directory.Read.All, RoleManagement.Read.All API permissions and admin consent. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Specify Microsoft Graph permission type explicitly
Clarify these are Application permissions to avoid users adding Delegated permissions by mistake.
-- **Azure Application ID** - Register an application in Microsoft Entra ID, and grant it the Directory.Read.All, RoleManagement.Read.All API permissions and admin consent.
+- **Azure Application ID** - Register an application in Microsoft Entra ID, and grant it the Microsoft Graph Application permissions: Directory.Read.All and RoleManagement.Read.All. Then grant admin consent.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - **Azure Application ID** - Register an application in Microsoft Entra ID, and grant it the Directory.Read.All, RoleManagement.Read.All API permissions and admin consent. | |
| - **Azure Application ID** - Register an application in Microsoft Entra ID, and grant it the Microsoft Graph Application permissions: Directory.Read.All and RoleManagement.Read.All. Then grant admin consent. |
🤖 Prompt for AI Agents
In published-azurehound-application-user-guide/USER_GUIDE.md around line 49, the
permission note currently lists Directory.Read.All and RoleManagement.Read.All
without specifying permission type; update the text to explicitly state these
are Microsoft Graph Application permissions (not Delegated permissions), e.g.,
append “(Application permissions)” or rephrase to “grant the following Microsoft
Graph Application permissions: Directory.Read.All and RoleManagement.Read.All,
and provide admin consent,” so readers cannot confuse them with Delegated
permissions.
|
I have read the CLA Document and I hereby sign the CLA |
Adding a New Directory for the AzureHound Managed Application User Guide Published on the Marketplace
Summary by CodeRabbit