Integrate reviewed native probes and recovery commands

This commit is contained in:
Shirofune-Security committed 2026-09-21 22:25:37 +09:00
commit d0973a832d
35 files changed
+2239 -4

No files matched your search

+46
View File
@@ -0,0 +1,46 @@
name: Native offline CAPI2 chain probe
on:
push:
branches: ['**']
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
capi2-probe:
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
os: [windows-2022, windows-2025]
engine: [powershell, pwsh]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Portable and public guards in Windows PowerShell 5.1
if: matrix.engine == 'powershell'
shell: powershell
run: |
./tests/Capi2Probe.Tests.ps1
./tests/Capi2Probe.Cli.Tests.ps1
- name: Genuine public CAPI2 probe in Windows PowerShell 5.1
if: matrix.engine == 'powershell'
shell: powershell
run: ./tests/Capi2Probe.Windows.Tests.ps1 -AllowDisposableChannelWrite
- name: Portable and public guards in PowerShell 7
if: matrix.engine == 'pwsh'
shell: pwsh
run: |
./tests/Capi2Probe.Tests.ps1
./tests/Capi2Probe.Cli.Tests.ps1
- name: Genuine public CAPI2 probe in PowerShell 7
if: matrix.engine == 'pwsh'
shell: pwsh
run: ./tests/Capi2Probe.Windows.Tests.ps1 -AllowDisposableChannelWrite
- name: Retain native XML, generated public certificates and cleanup evidence
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: capi2-probe-${{ matrix.os }}-${{ matrix.engine }}
path: ${{ runner.temp }}/wela-capi2-native-*/
retention-days: 7
+47
View File
@@ -0,0 +1,47 @@
name: Guarded event-log size and mode recovery
on:
push:
branches: ['**']
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
eventlog-recovery:
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
os: [windows-2022, windows-2025]
engine: [powershell, pwsh]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Fixtures and public guards in Windows PowerShell5.1
if: matrix.engine == 'powershell'
shell: powershell
run: |
./tests/EventLogRecovery.Tests.ps1
./tests/EventLogRecovery.Cli.Tests.ps1
- name: Native channel restoration in Windows PowerShell5.1
if: matrix.engine == 'powershell'
shell: powershell
run: ./tests/EventLogRecovery.Windows.Tests.ps1 -AllowDisposableChannelWrite
- name: Fixtures and public guards in PowerShell7
if: matrix.engine == 'pwsh'
shell: pwsh
run: |
./tests/EventLogRecovery.Tests.ps1
./tests/EventLogRecovery.Cli.Tests.ps1
- name: Native channel restoration in PowerShell7
if: matrix.engine == 'pwsh'
shell: pwsh
run: ./tests/EventLogRecovery.Windows.Tests.ps1 -AllowDisposableChannelWrite
- name: Retain owned fixture evidence
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
with:
name: eventlog-recovery-${{ matrix.os }}-${{ matrix.engine }}
path: ${{ runner.temp }}/wela-event-recovery-*/
if-no-files-found: warn
retention-days: 7
@@ -0,0 +1,53 @@
name: Guarded firewall logging recovery
on:
push:
paths: ['WELA.ps1', 'scripts/FirewallLogging*', 'scripts/Configuration.ps1', 'scripts/AuditRecovery.ps1', 'scripts/WefArrival.ps1', 'scripts/WecUpdate.ps1', 'scripts/ChannelRead*', 'tests/FirewallLoggingRecovery*', '.github/workflows/firewall-logging-recovery.yml']
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
firewall-recovery:
strategy:
fail-fast: false
matrix:
os: [windows-2022, windows-2025]
engine: [powershell, pwsh]
runs-on: ${{ matrix.os }}
timeout-minutes: 25
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Focused and public CLI fixtures (powershell)
if: matrix.engine == 'powershell'
shell: powershell
run: |
./tests/FirewallLoggingRecovery.Tests.ps1
./tests/FirewallLoggingRecovery.Cli.Tests.ps1
- name: Disposable native configuration and recovery (powershell)
if: matrix.engine == 'powershell'
shell: powershell
run: ./tests/FirewallLoggingRecovery.Windows.Tests.ps1 -AllowDisposableLoggingWrite
- name: Focused and public CLI fixtures (pwsh)
if: matrix.engine == 'pwsh'
shell: pwsh
run: |
./tests/FirewallLoggingRecovery.Tests.ps1
./tests/FirewallLoggingRecovery.Cli.Tests.ps1
- name: Disposable native configuration and recovery (pwsh)
if: matrix.engine == 'pwsh'
shell: pwsh
run: ./tests/FirewallLoggingRecovery.Windows.Tests.ps1 -AllowDisposableLoggingWrite
- name: Retain native configuration and cleanup evidence
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
with:
name: firewall-recovery-${{ matrix.os }}-${{ matrix.engine }}
path: |
${{ runner.temp }}/wela-firewall-recovery-*/*.json
${{ runner.temp }}/wela-firewall-recovery-*/cli-*.txt
${{ runner.temp }}/wela-firewall-recovery-*/configure-backup/
${{ runner.temp }}/wela-firewall-recovery-*/plan/
${{ runner.temp }}/wela-firewall-recovery-*/restore/
${{ runner.temp }}/wela-firewall-recovery-*/again/
if-no-files-found: warn
retention-days: 7
+1 -1
View File
@@ -41,7 +41,7 @@ jobs:
Copy-Item -Recurse -Path ./scripts -Destination release-binaries/
Copy-Item -Recurse -Path ./modules -Destination release-binaries/
New-Item -ItemType Directory -Path release-binaries/docs -Force | Out-Null
Copy-Item -Path ./docs/gpo-audit-packages.md, ./docs/gpo-package-deployment.md, ./docs/gpo-creation.md, ./docs/wmi-probe.md, ./docs/failed-logon-probe.md, ./docs/smb-runtime-activation.md, ./docs/smb-auditing.md, ./docs/wec-state.md, ./docs/wec-update.md, ./docs/wec-runtime.md, ./docs/wef-deployment.md, ./docs/native-channel-access.md, ./docs/eventlog-settings.md, ./docs/channel-read.md, ./docs/native-rule-eligibility.md, ./docs/native-validation.md, ./docs/wef-arrival.md, ./docs/ipsec-prerequisites.md, ./docs/wec-ingress.md -Destination release-binaries/docs/
Copy-Item -Path ./docs/gpo-audit-packages.md, ./docs/gpo-package-deployment.md, ./docs/gpo-creation.md, ./docs/wmi-probe.md, ./docs/firewall-logging.md, ./docs/firewall-logging-recovery.md, ./docs/ipsec-prerequisites.md, ./docs/wec-state.md, ./docs/wec-update.md, ./docs/wec-runtime.md, ./docs/wef-deployment.md, ./docs/native-channel-access.md, ./docs/eventlog-settings.md, ./docs/channel-read.md, ./docs/native-rule-eligibility.md, ./docs/native-validation.md, ./docs/wef-arrival.md, ./docs/smb-runtime-activation.md, ./docs/smb-auditing.md, ./docs/wec-ingress.md, ./docs/capi2-probe.md, ./docs/powershell-transcription.md, ./docs/transcription-recovery.md, ./docs/eventlog-recovery.md, ./docs/failed-logon-probe.md -Destination release-binaries/docs/
- name: Set Artifact Name
if: contains(matrix.info.os, 'windows') == true
@@ -0,0 +1,47 @@
name: Native transcription policy recovery
on:
push:
branches: ['**']
paths:
- 'WELA.ps1'
- 'scripts/TranscriptionRecovery.ps1'
- 'scripts/PowerShellTranscription.ps1'
- 'scripts/AuditRecovery.ps1'
- 'tests/TranscriptionRecovery*'
- '.github/workflows/transcription-recovery.yml'
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
transcription-recovery:
strategy:
fail-fast: false
matrix:
os: [windows-2022, windows-2025]
engine: [powershell, pwsh]
runs-on: ${{ matrix.os }}
timeout-minutes: 20
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Focused and native public CLI recovery in Windows PowerShell 5.1
if: matrix.engine == 'powershell'
shell: powershell
run: |
./tests/TranscriptionRecovery.Tests.ps1
./tests/TranscriptionRecovery.Cli.Tests.ps1
./tests/TranscriptionRecovery.Windows.Tests.ps1 -AllowDisposablePolicyWrite
- name: Focused and native public CLI recovery in PowerShell 7
if: matrix.engine == 'pwsh'
shell: pwsh
run: |
./tests/TranscriptionRecovery.Tests.ps1
./tests/TranscriptionRecovery.Cli.Tests.ps1
./tests/TranscriptionRecovery.Windows.Tests.ps1 -AllowDisposablePolicyWrite
- name: Retain native policy and cleanup evidence
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: transcription-recovery-${{ matrix.os }}-${{ matrix.engine }}
path: ${{ runner.temp }}/wela-transcription-recovery-*/
if-no-files-found: error