Skip to content

Commit 62f2cd9

Browse files
vinnybodclaude
andcommitted
Merge public/main into release/6.5.0
Resolve merge conflicts: - CHANGELOG.md: keep full 6.5.0 release notes, incorporate main's backfilled Starkiller entries - docs/modules/module-development/README.md: keep MITRE ATT&CK Fields section from release - empire/server/config.yaml: use Starkiller v3.4.0 from release, keep public plugin registry from main Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2 parents a11b1bf + b8fb1c9 commit 62f2cd9

File tree

6 files changed

+99
-3
lines changed

6 files changed

+99
-3
lines changed

CHANGELOG.md

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9797
- Fixed PSRansom module `name` field incorrectly set to `Invoke-Script` instead of `PSRansom`
9898

9999
## [6.4.1] - 2026-02-15
100+
- Fixed the `docs/quickstart/installation/README.md` file to specify a previously missing reference to Ubuntu
101+
- Updated Starkiller to v3.3.0
100102

101103
### Added
102104

@@ -118,6 +120,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
118120

119121
## [6.4.0] - 2026-01-18
120122

123+
121124
### Added
122125

123126
- Added Debian 13 support
@@ -129,6 +132,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
129132
- Added local ticket support to Invoke-PSRemoting module
130133
- Added an endpoint to stop background jobs on agents
131134
- Added foreground C# tasking support to IronPython agent
135+
- Added Get-ClipboardHistory PowerShell module to enumerate Windows clipboard history (Windows 10/11) via WinRT APIs
132136

133137
### Changed
134138

@@ -142,6 +146,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
142146
- Fixed results not coming back properly for powershell agents on C# background tasks
143147

144148
## [6.3.0] - 2025-12-11
149+
- Updated Starkiller to v3.2.0
145150

146151
### Added
147152

@@ -189,6 +194,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
189194

190195
## [6.2.0] - 2025-09-02
191196

197+
- Updated Starkiller to v3.1.0
192198
- Added clean and reset options to the server
193199
- Added other agent language support to fodhelper
194200
- Added go support to spawn and spawnas
@@ -201,10 +207,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
201207
- Allow 'X-Empire-Token' as an alternative header to 'Authorization'
202208
- Remove abandoned passlib library and use bcrypt directly
203209

204-
## [6.1.4] - 2025-08-16
205-
206210
## [6.1.3] - 2025-07-11
207211

212+
- Updated Starkiller to v3.0.1
208213
- Fixed PowerShell agent having base64 encoded Cookie name for HTTP listener
209214

210215
## [6.1.2] - 2025-05-21
@@ -258,6 +263,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
258263
- Fixed issue generating Sharpire exes
259264

260265
## [6.0.0] - 2025-03-25
266+
- Updated Starkiller to v3.0.0
261267

262268
### Highlights
263269

@@ -406,6 +412,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
406412

407413
## [5.11.5] - 2024-09-22
408414

415+
- Updated Starkiller to v2.8.2
409416
- Fixed various Python 3.12 SyntaxWarning
410417

411418
## [5.11.4] - 2024-09-04
@@ -497,8 +504,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
497504
- Removed BypassUACCommand due to compatibility with only Covenant (@Cx01N)
498505

499506
## [5.10.2] - 2024-05-05
507+
- Updated Starkiller to v2.8.1
500508

501509
## [5.10.1] - 2024-04-26
510+
- Updated Starkiller to v2.8.0
502511

503512
### Added
504513

@@ -539,6 +548,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
539548
- Fixed module generation error in ComputerDetails (@Cx01N)
540549

541550
## [5.9.5] - 2024-02-22
551+
- Updated Starkiller to v2.7.3
542552

543553
## [5.9.4] - 2024-02-17
544554

@@ -559,6 +569,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
559569
- Fixed skywalker exploit (again) and added tests (@Cx01N)
560570

561571
## [5.9.2] - 2024-01-31
572+
- Updated Starkiller to v2.7.2
562573

563574
### Fixed
564575

@@ -643,6 +654,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
643654
- Fixed the publishing of docker images to go to the correct DockerHub coordinate (@Vinnybod)
644655

645656
## [5.8.1] - 2023-11-30
657+
- Updated Starkiller to v2.7.1
646658

647659
### Added
648660

@@ -717,6 +729,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
717729

718730
## [5.7.3] - 2023-10-17
719731

732+
- Updated Starkiller to v2.6.1
720733
- Fixed global obfuscation not working on modules (@Cx01N)
721734
- Added bypass module in PowerShell to run bypasses after agent is staged (@Cx01N)
722735
- Fixed IronPython and Python stagers not getting obfuscation applied (@Cx01N)
@@ -749,6 +762,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
749762

750763
## [5.6.3] - 2023-08-27
751764

765+
- Updated Starkiller to v2.5.3
752766
- Added Advanced Reporting Plugin and dependencies (@Cx01N)
753767
- Pin linters in the workflow
754768
- Catch error when starting up database that was seeded by an older version of Empire (@Vinnybod)
@@ -780,9 +794,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
780794
- Fix changelog link in README (@theguly)
781795

782796
## [5.5.4] - 2023-07-20
797+
- Updated Starkiller to v2.4.3
783798

784799
## [5.5.3] - 2023-07-20
785800

801+
- Updated Starkiller to v2.4.2
786802
- Updated restip message to show IP address on server (@Cx01N)
787803
- Fixed onedrive taskings for powershell (@Cx01N)
788804
- Update pyyaml to 6.0.1 to avoid build issue from cython (@Vinnybod)
@@ -832,6 +848,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
832848

833849
## [5.4.2] - 2023-06-07
834850

851+
- Updated Starkiller to v2.3.2
835852
- Fixed python modules not running properly (Cx01N)
836853
- Updated python multi_socks to run with Python 3 (Cx01N)
837854

@@ -855,6 +872,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
855872

856873
## [5.2.2] - 2023-04-30
857874

875+
- Updated Starkiller to v2.2.0
858876
- Dependency upgrades (@Vinnybod)
859877

860878
## [5.2.1] - 2023-04-30
@@ -880,6 +898,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
880898

881899
## [5.1.2] - 2023-03-29
882900

901+
- Updated Starkiller to v2.1.1
883902
- Removed thread from IronPython agent (@Hubbl3)
884903
- Fixed foreign listener issue with cookies (@Hubbl3)
885904
- Fixed error message handling for port forward pivot (@Cx01N)
@@ -912,6 +931,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
912931

913932
## [5.0.3] - 2023-02-20
914933

934+
- Updated Starkiller to v2.0.5
915935
- Fix Invoke-Kerberoast with etype 17 or 18 (@AdrianVollmer)
916936
- Add 3.11 support, bump Dockerfile to 3.11, bump Debian install to 3.8.16 (@Cx01N)
917937
- Update the GitHub actions to remove usages of deprecated ::set-output function (@Vinnybod)

docs/modules/module-development/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ Every module should include proper MITRE ATT&CK metadata. The fields are:
4444

4545
Refer to the [MITRE ATT&CK Enterprise Matrix](https://attack.mitre.org/matrices/enterprise/) for valid tactic, technique, and software IDs.
4646

47+
4748
## Special Options
4849

4950
Empire reserves certain option names that receive special handling during module execution. These are filtered out of the parameters passed to the module's script and instead control how the task is dispatched or processed.

docs/quickstart/server.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ The Server configuration is managed via [empire/server/config.yaml](https://gith
44

55
Once launched, Empire checks for user write permissions on paths specified in `config.yaml`. If the current user does not have write permissions on these paths, `~/.empire` will be set as fallback parent directory and the configuration file will be updated as well. If `empire-priv.key` and `empire-chain.pem` are not found in \~/.local/share/empire directory, self-signed certs will be generated.
66

7+
78
## User Config Overrides
89

910
To customize settings without modifying `config.yaml`, create a `config.user.yaml` file in the same directory as the base config (e.g. `~/.config/empire/config.user.yaml`). This file only needs to contain the settings you want to override — everything else falls through to the base config.

empire/server/config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ submodules:
5555
plugin_marketplace:
5656
registries:
5757
- name: BC-SECURITY
58-
git_url: git@github.com:BC-SECURITY/Empire-Plugin-Registry-Sponsors.git
58+
git_url: https://github.com/BC-SECURITY/Empire-Plugin-Registry.git
5959
ref: main
6060
file: registry.yaml
6161
directories:
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
function Get-ClipboardHistory {
2+
3+
$ErrorActionPreference = 'Stop'
4+
5+
function Fail($msg) { throw $msg }
6+
7+
Add-Type -AssemblyName System.Runtime.WindowsRuntime
8+
9+
$asTaskGeneric = ([System.WindowsRuntimeSystemExtensions].GetMethods() |
10+
Where-Object {
11+
$_.Name -eq 'AsTask' -and
12+
$_.GetParameters().Count -eq 1 -and
13+
$_.GetParameters()[0].ParameterType.Name -eq 'IAsyncOperation`1'
14+
})[0]
15+
16+
function Await($WinRtTask, $ResultType) {
17+
$asTask = $asTaskGeneric.MakeGenericMethod($ResultType)
18+
$netTask = $asTask.Invoke($null, @($WinRtTask))
19+
$null = $netTask.Wait(-1)
20+
$netTask.Result
21+
}
22+
23+
$null = [Windows.ApplicationModel.DataTransfer.Clipboard, Windows.ApplicationModel.DataTransfer, ContentType=WindowsRuntime]
24+
25+
$result = Await (
26+
[Windows.ApplicationModel.DataTransfer.Clipboard]::GetHistoryItemsAsync()
27+
) ([Windows.ApplicationModel.DataTransfer.ClipboardHistoryItemsResult])
28+
29+
if ($result.Status -ne [Windows.ApplicationModel.DataTransfer.ClipboardHistoryItemsResultStatus]::Success) {
30+
Fail "ClipboardHistory is not accessible, it might not be enabled. Status: $($result.Status)"
31+
}
32+
33+
try {
34+
35+
$textOps = $result.Items.Content.GetTextAsync()
36+
37+
$out = New-Object System.Collections.Generic.List[string]
38+
for ($i = 0; $i -lt $textOps.Count; $i++) {
39+
$txt = Await ($textOps[$i]) ([string])
40+
if ($txt) { $out.Add("---`n$txt") }
41+
}
42+
43+
Write-Output $out
44+
45+
} catch {
46+
Fail "Clipboard is empty."
47+
}
48+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Invoke-ClipboardHistory
2+
authors:
3+
- name: ''
4+
handle: '@e1k'
5+
link: ''
6+
description: |
7+
Retrieves Windows clipboard history via WinRT APIs and returns the text items
8+
currently stored in history. Useful for quickly enumerating recently copied
9+
data on hosts where clipboard history is enabled (Windows 10+) using
10+
PowerShell 5+.
11+
software: ''
12+
tactics: [TA0009]
13+
techniques: [T1115]
14+
background: false
15+
output_extension:
16+
needs_admin: false
17+
opsec_safe: true
18+
language: powershell
19+
min_language_version: '5'
20+
comments:
21+
- Requires Windows 10/11 with Clipboard History enabled
22+
- Leverages WinRT ClipboardHistory API; returns text entries only
23+
- No network communication; local enumeration of clipboard history
24+
- Script adapted from Raymond Chen (https://devblogs.microsoft.com/oldnewthing/20230303-00/?p=107894)
25+
script_path: collection/Get-ClipboardHistory.ps1
26+
script_end: Get-ClipboardHistory {{ PARAMS }}

0 commit comments

Comments
 (0)