"
labels: ["bug"]
body:
-- type: checkboxes
- attributes:
- label: Is there an existing issue for this?
- description: Please search to see if an issue already exists for the bug you encountered.
- options:
- - label: I have searched the existing issues
+ - type: checkboxes
+ attributes:
+ label: Is there an existing issue for this?
+ description: Please search to see if an issue already exists for the bug you encountered.
+ options:
+ - label: I have searched the existing issues
+ required: true
+ - type: input
+ attributes:
+ label: Empire Version
+ description: What version of Empire are you using?
+ validations:
required: true
-- type: input
- attributes:
- label: Empire Version
- description: What version of Empire are you using?
- validations:
- required: true
-- type: input
- attributes:
- label: Starkiller Version
- description: What version of Starkiller are you using?
- validations:
- required: true
-- type: input
- attributes:
- label: Browser
- description: What browser are you using?
- validations:
- required: true
-- type: textarea
- attributes:
- label: Current Behavior
- description: A concise description of what you're experiencing.
- validations:
- required: true
-- type: textarea
- attributes:
- label: Expected Behavior
- description: A concise description of what you expected to happen.
- validations:
- required: true
-- type: textarea
- attributes:
- label: Steps To Reproduce
- description: Steps to reproduce the behavior.
- placeholder: |
- 1. In this environment...
- 1. With this config...
- 1. Run '...'
- 1. See error...
- validations:
- required: true
-- type: textarea
- attributes:
- label: Anything else?
- description: |
- Links? References? Anything that will give us more context about the issue you are encountering!
+ - type: input
+ attributes:
+ label: Starkiller Version
+ description: What version of Starkiller are you using?
+ validations:
+ required: true
+ - type: input
+ attributes:
+ label: Browser
+ description: What browser are you using?
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: Current Behavior
+ description: A concise description of what you're experiencing.
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: Expected Behavior
+ description: A concise description of what you expected to happen.
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: Steps To Reproduce
+ description: Steps to reproduce the behavior.
+ placeholder: |
+ 1. In this environment...
+ 1. With this config...
+ 1. Run '...'
+ 1. See error...
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: Anything else?
+ description: |
+ Links? References? Anything that will give us more context about the issue you are encountering!
- Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
- validations:
- required: false
+ Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
+ validations:
+ required: false
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml
index 67daffe..683efa8 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.yaml
+++ b/.github/ISSUE_TEMPLATE/feature_request.yaml
@@ -3,27 +3,27 @@ description: File a bug/issue
title: "[FEATURE REQUEST] "
labels: ["enhancement"]
body:
-- type: textarea
- attributes:
- label: Description
- description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
- validations:
- required: true
-- type: textarea
- attributes:
- label: Solution
- description: A clear and concise description of what you want to happen.
- validations:
- required: true
-- type: textarea
- attributes:
- label: Alternatives
- description: A clear and concise description of any alternative solutions or features you've considered.
- validations:
- required: false
-- type: textarea
- attributes:
- label: Additional Context
- description: Add any other context or screenshots about the feature request here.
- validations:
- required: false
+ - type: textarea
+ attributes:
+ label: Description
+ description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: Solution
+ description: A clear and concise description of what you want to happen.
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: Alternatives
+ description: A clear and concise description of any alternative solutions or features you've considered.
+ validations:
+ required: false
+ - type: textarea
+ attributes:
+ label: Additional Context
+ description: Add any other context or screenshots about the feature request here.
+ validations:
+ required: false
diff --git a/.github/actions/clean-merge/action.yml b/.github/actions/clean-merge/action.yml
index 58a53dd..51d0da2 100644
--- a/.github/actions/clean-merge/action.yml
+++ b/.github/actions/clean-merge/action.yml
@@ -1,14 +1,14 @@
-name: 'Clean Merge'
-description: 'Merge a branch into another branch without creating a merge commit. Fail if the merge would create merge conflicts.'
+name: "Clean Merge"
+description: "Merge a branch into another branch without creating a merge commit. Fail if the merge would create merge conflicts."
inputs:
from-branch:
- description: 'The branch to merge from'
+ description: "The branch to merge from"
required: true
to-branch:
- description: 'The branch to merge to'
+ description: "The branch to merge to"
required: true
push-repo:
- description: 'The remote to push to'
+ description: "The remote to push to"
required: true
runs:
using: "composite"
@@ -25,7 +25,7 @@ runs:
git submodule foreach --recursive git reset --hard
git submodule update --init --recursive
- name: Merge ${{ inputs.from-branch }} branch to ${{ inputs.to-branch }}
- shell: '/bin/bash {0}'
+ shell: "/bin/bash {0}"
run: |
git merge --no-edit ${{ inputs.from-branch }}
if [ $? -ne 0 ]; then
@@ -47,4 +47,4 @@ runs:
shell: bash
run: |
git push ${{ inputs.push-repo }} ${{ inputs.to-branch }}
- echo "MERGE_STATUS=NO_CHANGES" >> $GITHUB_ENV
\ No newline at end of file
+ echo "MERGE_STATUS=NO_CHANGES" >> $GITHUB_ENV
diff --git a/.github/ci-and-release.md b/.github/ci-and-release.md
index 19b49b9..7cc69d7 100644
--- a/.github/ci-and-release.md
+++ b/.github/ci-and-release.md
@@ -1,26 +1,29 @@
# CI Processes
Starkiller's workflows (and this documentation) are a fork of the [Empire workflows](https://github.com/BC-SECURITY/Empire/tree/main/.github).
-The `main`, `kali-main`, and `sponsors-main` branches get a `dist/` generated upon release. `private-main` does not.
+The `main`, `kali-main`, and `sponsors-main` branches get a `dist/` generated upon release. `private-main` does not.
## Pull Requests - Build and Test
+
All pull requests will run the `Lint and Test` workflow.
-* The workflow will run `vue-cli-service lint` to lint the code.
-* There are no tests yet.
+- The workflow will run `vue-cli-service lint` to lint the code.
+- There are no tests yet.
When submitting a pull request to `private-main`, the label `auto-merge-downstream` can be added. If the label is present, then merging a branch to `private-main` will automatically trigger the prerelease step of merging `private-main` into `sponsors-main` and `kali-main`.
## BC-SECURITY/Starkiller-Sponsors Sponsors & Kali Release Process
-*Note: Starting in 2023, the Kali team will be pulling from the public repo.
+
+_Note: Starting in 2023, the Kali team will be pulling from the public repo.
I am keeping the Kali workflows running for now with the exception of the tagging.
This is mostly out of laziness since I just wrote all of the CI/CD. In the near future,
-we can rework these jobs to be more like "sponsors & other downstream" releases.*
+we can rework these jobs to be more like "sponsors & other downstream" releases._
Sponsors and Kali releases go through the same release process. It is easier to manage Starkiller releases by not allowing them to be released at different times and have the version numbers diverge.
A side effect of this is its possible for a version bump to be empty (no changes) and still be released.
### 1. cherry-pick any changes from BC-SECURITY/Starkiller#main to BC-SECURITY/Starkiller-Sponsors#private-main
+
If you don't feel comfortable pushing to `private-main`, you can branch from `private-main` before cherry-picking and open a pull request to merge into `private-main`.
```bash
@@ -45,6 +48,7 @@ git push origin private-main
**Potential Enhancement:** Could add a GitHub workflow that you supply a commit hash and it will cherry-pick it into `private-main` and open a pull request.
### 2. Merge Starkiller-Sponsors/private-main -> (Starkiller-Sponsors/sponsors-main, Starkiller-Sponsors/kali-main)
+
Run the `Prerelease - Merge private-main` manual workflow. The branch that it runs on doesn't matter.
The workflow will merge `private-main` into `sponsors-main` and `kali-main`.
@@ -69,6 +73,7 @@ git add -A
git merge --continue
git push origin kali-main
```
+
@@ -88,19 +93,22 @@ git add -A
git merge --continue
git push origin sponsors-main
```
+
**Potential Enhancement:** I'm still considering if this step should open PRs instead of doing direct merges.
### 3. Start Private Release
+
Start a release by running the `Private - Create Release` manual workflow.
The branch that it runs on doesn't matter.
The workflow will then create a release branch, push it to the repo, and create a pull request into `private-main`.
-* Updates `package.json` version
+- Updates `package.json` version
### 4. Manual Step - Merge private-main release PR
+
Once the first workflow runs, it will open one pull request from the `release/v{version}-private` branch to `private-main`.
Check the changelog on this branch, this will be the changelog that is used for the release notes.
@@ -113,18 +121,22 @@ the `private-main` branch.
**Potential Enhancement:** Use a git diff to generate a list of changes as suggestions for the release notes.
### 5. Private - Tag and Release
+
Once the `release/` pull request is merged, the `Private - Tag Release` workflow will automatically run.
The workflow will create a tag and release on the `HEAD` of `private-main` using the release notes from `CHANGELOG.md` for the body of the release.
### 6. Repeat Step 2 - Prerelease Merge
+
Repeat step 2 to merge `private-main` into `sponsors-main` and `kali-main`.
### 7. Start Sponsor/Kali Release
+
Start the release by running the `Sponsors & Kali - Create Release` manual workflow.
A release PR will then be opened for each branch.
#### 8. Manual Step - Merge sponsor/kali release PRs
+
Once the workflow runs, it will open two pull requests from the `release/v{version}-sponsors` and `release/v{version}-kali` branches to `sponsors-main` and `kali-main` respectively.
Check the changelog on these branches, this will be the changelog that is used for the release notes.
@@ -139,14 +151,18 @@ the `sponsors-main` branch or `kali-main` branch.
**Potential Enhancement** We could add automation that copies the `unreleased` section from the target branch to the version section in the `head` branch.
### 9. Tag and Release
+
Once the pull requests are merged, the `Sponsors - Tag Release` and `Kali - Tag Release` workflows will automatically run.
-The workflow will run `yarn build` and commit the `dist/` to `sponsors-main` and `kali-main` (independently). It will then create a tag and release on the `HEAD` of of `sponsors-main` and `kali-main` using the release notes from `CHANGELOG.md` for the body of the release.
+The workflow will run `yarn build` and commit the `dist/` to `sponsors-main` and `kali-main` (independently). It will then create a tag and release on the `HEAD` of of `sponsors-main` and `kali-main` using the release notes from `CHANGELOG.md` for the body of the release.
### Setup
+
Requires a secret in the repo `RELEASE_TOKEN` that has `repo` and `workflow` access.
## BC-SECURITY/Starkiller Public Release Process
+
### 1. Start Release
+
Start a release by running the `Public - Create Release Branch` manual workflow. It doesn't matter which branch it runs on.
The workflow will then checkout the chosen tag from the `sponsors` repo, create a release branch, push it to the public repo, and create a pull request into `main`.
@@ -154,6 +170,7 @@ The workflow will then checkout the chosen tag from the `sponsors` repo, create
The chosen tag should end in `-private`
### 2. Manual Steps - Merge release PR
+
Once the first workflow runs, it will open one pull request from the `release/v{version}` branch to `main`.
Check the changelog on this branch, this will be the changelog that is used for the release notes.
@@ -164,18 +181,22 @@ Merge the pull request. **DO NOT SQUASH**
the `main` branch. This will ensure the change ends up in the release properly.
### 3. Tag Release
+
Once the pull request is merged, the `Public - Tag Release` workflow will automatically run.
The workflow will create a tag and release on the `HEAD` of `main`, using the release notes from `CHANGELOG.md` for the body of the release.
The workflow will detect the last released tag, and use the release notes from the `CHANGELOG.md` between the last release and the current release. The workflow will run `yarn build` and commit the `dist/` to `main-main`.
### Setup
+
Requires a secret in the repo `RELEASE_TOKEN` that has `repo` and `workflow` access.
## More Information
+
https://www.bc-security.org/using-github-actions-to-manage-ci-cd-for-empire/
## Contributing
+
To update the workflows if you don't have access to the `Starkiller-Sponsors` repo:
Merge to `main` in `Starkiller`, then we can cherry-pick the changes into `private-main`.
diff --git a/.github/workflows/lint-and-test.yml b/.github/workflows/lint-and-test.yml
index a58ad3a..d178841 100644
--- a/.github/workflows/lint-and-test.yml
+++ b/.github/workflows/lint-and-test.yml
@@ -3,7 +3,7 @@ name: Lint and Test
on:
pull_request:
paths-ignore:
- - '**.md'
+ - "**.md"
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
@@ -18,12 +18,13 @@ jobs:
- uses: actions/setup-node@v3
with:
node-version: 16
- cache: 'yarn'
+ cache: "yarn"
- name: Get app version
run: |
echo "APP_VERSION=$(npm pkg get version | sed 's/"//g')" >> $GITHUB_ENV
- name: Install modules
run: yarn
- name: Run ESLint
- if: ${{ !startsWith(env.APP_VERSION, '1') }}
run: yarn lint
+ - name: Run Prettier
+ run: yarn format --check
diff --git a/.github/workflows/prerelease-sponsor-kali-merge-private.yml b/.github/workflows/prerelease-sponsor-kali-merge-private.yml
index 5e8aec6..be5ac5b 100644
--- a/.github/workflows/prerelease-sponsor-kali-merge-private.yml
+++ b/.github/workflows/prerelease-sponsor-kali-merge-private.yml
@@ -11,12 +11,12 @@ on:
workflow_dispatch:
inputs:
mergeKali:
- description: 'Merge private-main branch into kali-main.'
+ description: "Merge private-main branch into kali-main."
type: boolean
default: true
required: true
mergeSponsors:
- description: 'Merge private-main branch into sponsors-main.'
+ description: "Merge private-main branch into sponsors-main."
type: boolean
default: true
required: true
@@ -32,15 +32,15 @@ jobs:
# Already filtered above to closed PRs on private-main.
if: ${{ github.repository == 'BC-Security/Starkiller-Sponsors' &&
(github.event_name == 'workflow_dispatch' ||
- (github.event.pull_request &&
- github.event.pull_request.merged == true &&
- contains(github.event.pull_request.labels.*.name, 'auto-merge-downstream'))) }}
+ (github.event.pull_request &&
+ github.event.pull_request.merged == true &&
+ contains(github.event.pull_request.labels.*.name, 'auto-merge-downstream'))) }}
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v3
with:
- submodules: 'recursive'
+ submodules: "recursive"
ref: private-main
fetch-depth: 0
token: ${{ secrets.RELEASE_TOKEN }}
diff --git a/.github/workflows/release-private-start.yml b/.github/workflows/release-private-start.yml
index 1c6e5c9..9195fcf 100644
--- a/.github/workflows/release-private-start.yml
+++ b/.github/workflows/release-private-start.yml
@@ -3,7 +3,7 @@ on:
workflow_dispatch:
inputs:
bumpType:
- description: 'Bump type to use for the release branch.'
+ description: "Bump type to use for the release branch."
type: choice
default: patch
options:
@@ -23,7 +23,7 @@ jobs:
uses: actions/checkout@v3
with:
ref: ${{ env.TARGET_BRANCH }}
- submodules: 'recursive'
+ submodules: "recursive"
fetch-depth: 0
token: ${{ secrets.RELEASE_TOKEN }}
- name: Initialize mandatory git config
@@ -41,7 +41,7 @@ jobs:
echo "APP_VERSION=$(npm pkg get version | sed 's/"//g')" >> $GITHUB_ENV
- name: Get release branch name
run: |
- echo "RELEASE_BRANCH=release/$APP_VERSION-private" >> $GITHUB_ENV
+ echo "RELEASE_BRANCH=release/$APP_VERSION-private" >> $GITHUB_ENV
- name: Create release branch
run: git checkout -b ${{ env.RELEASE_BRANCH }}
- name: Update Changelog
diff --git a/.github/workflows/release-public-start.yml b/.github/workflows/release-public-start.yml
index a924f76..c7a30c9 100644
--- a/.github/workflows/release-public-start.yml
+++ b/.github/workflows/release-public-start.yml
@@ -3,7 +3,7 @@ on:
workflow_dispatch:
inputs:
sponsorTag:
- description: 'The tag to merge into master and dev from the sponsors repo. Example: v4.5.2-private'
+ description: "The tag to merge into master and dev from the sponsors repo. Example: v4.5.2-private"
type: string
required: true
@@ -15,7 +15,7 @@ jobs:
- name: Check out sponsor repo
uses: actions/checkout@v3
with:
- repository: 'BC-Security/Starkiller-Sponsors'
+ repository: "BC-Security/Starkiller-Sponsors"
ref: ${{ inputs.sponsorTag }}
token: ${{ secrets.RELEASE_TOKEN }}
fetch-depth: 0
@@ -37,7 +37,7 @@ jobs:
echo "APP_VERSION=$(npm pkg get version | sed 's/"//g')" >> $GITHUB_ENV
- name: Get release branch name
run: |
- echo "RELEASE_BRANCH=release/$APP_VERSION" >> $GITHUB_ENV
+ echo "RELEASE_BRANCH=release/$APP_VERSION" >> $GITHUB_ENV
- name: Create release branch
run: |
git checkout -b ${{ env.RELEASE_BRANCH }}
diff --git a/.github/workflows/release-public-tag.yml b/.github/workflows/release-public-tag.yml
index 2d5936b..71f1687 100644
--- a/.github/workflows/release-public-tag.yml
+++ b/.github/workflows/release-public-tag.yml
@@ -28,7 +28,7 @@ jobs:
- uses: actions/setup-node@v3
with:
node-version: 16
- cache: 'yarn'
+ cache: "yarn"
- name: Set application version as variable
run: |
echo "APP_VERSION=$(npm pkg get version | sed 's/"//g')" >> $GITHUB_ENV
diff --git a/.github/workflows/release-sponsor-kali-start.yml b/.github/workflows/release-sponsor-kali-start.yml
index 0905907..35a9af2 100644
--- a/.github/workflows/release-sponsor-kali-start.yml
+++ b/.github/workflows/release-sponsor-kali-start.yml
@@ -41,7 +41,7 @@ jobs:
echo "commit=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
- name: Get release branch name
run: |
- echo "RELEASE_BRANCH=release/$APP_VERSION-sponsors" >> $GITHUB_ENV
+ echo "RELEASE_BRANCH=release/$APP_VERSION-sponsors" >> $GITHUB_ENV
- name: Create release branch
run: git checkout -b ${{ env.RELEASE_BRANCH }}
- name: Push new branch
diff --git a/.github/workflows/release-sponsor-kali-tag.yml b/.github/workflows/release-sponsor-kali-tag.yml
index 5bcdaa9..2410346 100644
--- a/.github/workflows/release-sponsor-kali-tag.yml
+++ b/.github/workflows/release-sponsor-kali-tag.yml
@@ -26,7 +26,7 @@ jobs:
- uses: actions/setup-node@v3
with:
node-version: 16
- cache: 'yarn'
+ cache: "yarn"
- name: Set application version as variable
run: |
echo "APP_VERSION=$(npm pkg get version | sed 's/"//g')" >> $GITHUB_ENV
@@ -62,7 +62,7 @@ jobs:
release_name: v${{ env.TAG_NAME }}
body: |
${{ steps.extract_release_notes.outputs.release_notes }}
-
+
### Sponsors Only
${{ steps.extract_release_notes_sponsors.outputs.release_notes }}
draft: false
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 9ec76dd..66ff299 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,7 +1,20 @@
repos:
+ - repo: https://github.com/pre-commit/pre-commit-hooks
+ rev: v4.4.0
+ hooks:
+ - id: trailing-whitespace
+ - id: check-json
+ - id: check-yaml
+ - id: check-merge-conflict
+ - id: end-of-file-fixer
+ - id: trailing-whitespace
- repo: local
hooks:
- id: yarn-lint
name: yarn-lint
entry: bash -c 'yarn lint'
language: system
+ - id: yarn-format
+ name: yarn-format
+ entry: bash -c 'yarn format'
+ language: system
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 0000000..de05607
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1 @@
+**/*.md
diff --git a/.prettierrc.json b/.prettierrc.json
new file mode 100644
index 0000000..0967ef4
--- /dev/null
+++ b/.prettierrc.json
@@ -0,0 +1 @@
+{}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e4131d7..a0529c9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,11 +8,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
- Add an Agent terminal to the Interact tab
+- Add Prettier for code formatting
## [2.5.3] - 2023-08-24
- Fix elevated process icon on agent page
-- Fix input and output downloads not working
+- Fix input and output downloads not working
## [2.5.2] - 2023-08-09
@@ -73,7 +74,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Add a script import button to the agent page
- Add a script command checkbox to the agent page
-- Modules with a 'file' type option now get a file selector/uploader instead of a text box
+- Modules with a 'file' type option now get a file selector/uploader instead of a text box
## [2.2.0] - 2023-03-31
@@ -212,7 +213,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [1.4.0] - 2020-10-12
-- Added real-time notifications new listeners and agents [#49](https://github.com/BC-SECURITY/Starkiller/pull/49)
+- Added real-time notifications new listeners and agents [#49](https://github.com/BC-SECURITY/Starkiller/pull/49)
## [1.3.2] - 2020-07-29
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 2ca7aa3..406fb61 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,28 +1,36 @@
# Contributing to Starkiller
+
We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's:
- * Reporting a bug
- * Discussing the current state of the code
- * Submitting a fix
- * Proposing new features
+
+- Reporting a bug
+- Discussing the current state of the code
+- Submitting a fix
+- Proposing new features
## Creating Github Issues
+
Please first review the existing Starkiller issues to see if the error was resolved with a fix in the development branch or if we chose not to fix the error for some reason.
The more information you provide in a Github issue the easier it will be for us to track down and fix the problem:
- * Please provide the version of Empire you are using.
- * Please provide the OS, and Starkiller version that you are using.
- * Please describe the expected behavior and the encountered error.
- * The more detail the better!
- * Include any actions taken just prior to the error.
- * Please post a screenshot of the error, a link to a Pastebin dump of the error, or embedded text of the error.
- * Any additional information.
+
+- Please provide the version of Empire you are using.
+- Please provide the OS, and Starkiller version that you are using.
+- Please describe the expected behavior and the encountered error.
+ - The more detail the better!
+ - Include any actions taken just prior to the error.
+ - Please post a screenshot of the error, a link to a Pastebin dump of the error, or embedded text of the error.
+ - Any additional information.
## Making a Pull Request
- 1. Create an issue describing the motivation for your changes
- * Pull Requests without associated Issues may still be accepted, if the motivation is obvious. However, this will help speed up code review if there's any uncertainty.
- 1. Fork the repo and create your branch from main.
- 1. Make sure your code lints.
- 1. Issue that pull request!
+
+1. Create an issue describing the motivation for your changes
+
+ - Pull Requests without associated Issues may still be accepted, if the motivation is obvious. However, this will help speed up code review if there's any uncertainty.
+
+1. Fork the repo and create your branch from main.
+1. Make sure your code lints.
+1. Issue that pull request!
## Use a Consistent Coding Style
+
We use Airbnb's and Vue's recommended ESLint configs. To make your life easier, consider installing an ESLint plugin in your editor of choice. You can also run `yarn lint`.
diff --git a/README.md b/README.md
index e93f384..36e83e7 100644
--- a/README.md
+++ b/README.md
@@ -21,13 +21,16 @@
# Starkiller
+
Starkiller is a Frontend for [Powershell Empire](https://github.com/BC-SECURITY/Empire/). It is a web application written in VueJS. If you'd like to contribute please follow the [Contribution guide](/CONTRIBUTING.md). If you'd like to request a feature or report a bug, please follow the [Issue template](/.github/ISSUE_TEMPLATE.md).
# Getting Started
+
As of Empire 5.0 and Starkiller 2.0, you no longer need to install Starkiller or build it from source.
It is prepackaged in Empire as a submodule and served via Empire's API.
## Sponsors
+
[](https://www.cybrary.it/)
@@ -37,33 +40,42 @@ It is prepackaged in Empire as a submodule and served via Empire's API.
# Sponsorship and extra features
+
[Sponsoring](https://github.com/sponsors/BC-SECURITY/) at the `Individual` level will give access to extra features.
At the moment, the extra Starkiller sponsorship features include:
- ## Dashboard
+## Dashboard
+
- ## Graph View
+## Graph View
+
- ## Interactive agent shell
+## Interactive agent shell
+
-
- ## Process Browser
+
+## Process Browser
+
- ## Modify Module Scripts
+## Modify Module Scripts
+
- ## Enable/Disable modules
+## Enable/Disable modules
+
- ## Proxy Management
+## Proxy Management
+
There is also a collection of Empire plugins available via sponsorship.
Thanks to our sponsors the following features which started as sponsor features have been moved to the public and kali builds.
+
- File browser
- Popout windows
- Chat widget
@@ -71,20 +83,25 @@ Thanks to our sponsors the following features which started as sponsor features
- Malleable profile management
## Build and run from source
+
Prerequisites:
-* [Node.js](http://nodejs.org/) 16+.
-* [Yarn](https://classic.yarnpkg.com/en/docs/install)
-Currently it has been tested using Yarn 1.22.
+
+- [Node.js](http://nodejs.org/) 16+.
+- [Yarn](https://classic.yarnpkg.com/en/docs/install)
+ Currently it has been tested using Yarn 1.22.
+
```
yarn
```
### Compile and hot-reload for development
+
```
yarn dev
```
### Compile and minify for production
+
```
yarn build
```
@@ -94,20 +111,20 @@ yarn build
**Note**: As of Empire 5.0 and Starkiller 2.0, this compatability table is less relevant. Starkiller is now packaged in Empire as a git submodule and does not need to be installed separately.
Starkiller’s new features occasionally depend on new functionality within Empire. Therefore, it is recommended that you follow this release table for syncing up your Starkiller and Empire versions. If you are using an older version of Empire, Starkiller will warn you when logging in, but will allow you to continue. If a there is a new minimum version of Empire required to get all the features out of Starkiller, we will do a minor version bump to Starkiller.
-| Starkiller Release | Minimum Empire Version | Notes |
+| Starkiller Release | Minimum Empire Version | Notes |
| ------------------ | ---------------------- | ------ |
-| 1.0.x | 3.1.1 | 3.1.1 is the first version of Empire to include all the user endpoints necessary for Starkiller to function |
-| 1.1.x | 3.1.5 | 3.1.5 updated the reporting endpoint to have the same result as running it in the CLI. Starkiller 1.1.x uses that reporting endpoint for the reporting tab |
-| 1.2.x | 3.2.0 | 3.2.0 added an endpoint for users that is needed for the UI updates introduced in Starkiller 1.2.0
-| 1.3.x | 3.3.0 | 3.3.0 categorized all of the modules in Empire with corresponding [MITRE techniques](https://attack.mitre.org/techniques/enterprise/)
-| 1.4.x, 1.5.x | 3.5.0 | 3.5.0 added real-time notifications for new listeners and agents
-| 1.6.x, 1.7.x | 3.7.0 | 1.6.0 was tested against Empire 3.7.0. There *shouldn't* be any breaking changes, but there were a lot of code changes.
-| 1.8.x | 4.0.0 |
-| 1.9.x, 1.10.x, 1.11.x | 4.1.0 | The updated agent screen requires new endpoints in order to update fields on the 'view' tab
-| 2.0.x, 2.1.x | 5.0.0 | Uses the new v2 api
-| 2.2.x, 2.3.x | 5.2.0 | Requires the new plugin task endpoints
-| 2.4.x | 5.5.0 | For sponsors, requires the checkin endpoints
-| 2.5.x | 5.6.0 | Requires the tags endpoints
+| 1.0.x | 3.1.1 | 3.1.1 is the first version of Empire to include all the user endpoints necessary for Starkiller to function |
+| 1.1.x | 3.1.5 | 3.1.5 updated the reporting endpoint to have the same result as running it in the CLI. Starkiller 1.1.x uses that reporting endpoint for the reporting tab |
+| 1.2.x | 3.2.0 | 3.2.0 added an endpoint for users that is needed for the UI updates introduced in Starkiller 1.2.0
+| 1.3.x | 3.3.0 | 3.3.0 categorized all of the modules in Empire with corresponding [MITRE techniques](https://attack.mitre.org/techniques/enterprise/)
+| 1.4.x, 1.5.x | 3.5.0 | 3.5.0 added real-time notifications for new listeners and agents
+| 1.6.x, 1.7.x | 3.7.0 | 1.6.0 was tested against Empire 3.7.0. There _shouldn't_ be any breaking changes, but there were a lot of code changes.
+| 1.8.x | 4.0.0 |
+| 1.9.x, 1.10.x, 1.11.x | 4.1.0 | The updated agent screen requires new endpoints in order to update fields on the 'view' tab
+| 2.0.x, 2.1.x | 5.0.0 | Uses the new v2 api
+| 2.2.x, 2.3.x | 5.2.0 | Requires the new plugin task endpoints
+| 2.4.x | 5.5.0 | For sponsors, requires the checkin endpoints
+| 2.5.x | 5.6.0 | Requires the tags endpoints
## Changelog
@@ -122,5 +139,4 @@ Detailed changes for each release are documented in the [changelog](./CHANGELOG.
[MIT](http://opensource.org/licenses/MIT)
-
Copyright (c) 2021 BC Security
diff --git a/index.html b/index.html
index 80b2ea3..832fb8a 100644
--- a/index.html
+++ b/index.html
@@ -1,19 +1,21 @@
-
+
-
-
-
-
+
+
+
+
Starkiller
-