Windows File Creation: Known Offensive PowerShell Script Dropper Filenames

Alerts on creation of known offensive PowerShell/PowerShell module filenames on Windows.

FreeUnreviewedSigmahighv1
title: "Windows File Creation: Known Offensive PowerShell Script Dropper Filenames"
id: d7565295-887f-4c9e-bc3a-fe59a791f332
related:
  - id: 41025fd7-0466-4650-a813-574aaacbe7f4
    type: similar
  - id: f331aa1f-8c53-4fc3-b083-cc159bc971cb
    type: derived
status: test
description: This rule flags Windows file creation events where the target filename matches a large set of known offensive PowerShell script names or PowerShell modules. Attackers commonly drop these scripts to enable exploitation, credential theft, persistence, and other post-compromise actions under PowerShell. The detection relies on file event telemetry that captures the created file path or name, including suffix and substring matches for the script and module filenames.
references:
  - https://github.com/PowerShellMafia/PowerSploit
  - https://github.com/NetSPI/PowerUpSQL
  - https://github.com/CsEnox/EventViewer-UACBypass
  - https://web.archive.org/web/20210511204621/https://github.com/AlsidOfficial/WSUSpendu
  - https://github.com/nettitude/Invoke-PowerThIEf
  - https://github.com/S3cur3Th1sSh1t/WinPwn
  - https://github.com/S3cur3Th1sSh1t/PowerSharpPack/tree/master/PowerSharpBinaries
  - https://github.com/BC-SECURITY/Invoke-ZeroLogon/blob/111d17c7fec486d9bb23387e2e828b09a26075e4/Invoke-ZeroLogon.ps1
  - https://github.com/xorrior/RandomPS-Scripts/blob/848c919bfce4e2d67b626cbcf4404341cfe3d3b6/Get-DXWebcamVideo.ps1
  - https://github.com/rvrsh3ll/Misc-Powershell-Scripts/blob/6f23bb41f9675d7e2d32bacccff75e931ae00554/OfficeMemScraper.ps1
  - https://github.com/dafthack/DomainPasswordSpray/blob/b13d64a5834694aa73fd2aea9911a83027c465a7/DomainPasswordSpray.ps1
  - https://unit42.paloaltonetworks.com/threat-assessment-black-basta-ransomware/
  - https://research.nccgroup.com/2022/06/06/shining-the-light-on-black-basta/
  - https://github.com/HarmJ0y/DAMP
  - https://github.com/samratashok/nishang
  - https://github.com/DarkCoderSc/PowerRunAsSystem/
  - https://github.com/besimorhino/powercat
  - https://github.com/Kevin-Robertson/Powermad
  - https://github.com/adrecon/ADRecon
  - https://github.com/adrecon/AzureADRecon
  - https://github.com/sadshade/veeam-creds/blob/6010eaf31ba41011b58d6af3950cffbf6f5cea32/Veeam-Get-Creds.ps1
  - https://github.com/The-Viper-One/Invoke-PowerDPAPI/
  - https://github.com/Arno0x/DNSExfiltrator/
  - https://github.com/SigmaHQ/sigma/blob/master/rules/windows/file/file_event/file_event_win_powershell_exploit_scripts.yml
author: Markus Neis, Nasreddine Bencherchali (Nextron Systems), Mustafa Kaan Demir, Georg Lauenstein, Huntrule Team
date: 2018-04-07
modified: 2025-12-10
tags:
  - attack.execution
  - attack.t1059.001
logsource:
  category: file_event
  product: windows
detection:
  selection_generic:
    TargetFilename|endswith:
      - \Add-ConstrainedDelegationBackdoor.ps1
      - \Add-Exfiltration.ps1
      - \Add-Persistence.ps1
      - \Add-RegBackdoor.ps1
      - \Add-RemoteRegBackdoor.ps1
      - \Add-ScrnSaveBackdoor.ps1
      - \ADRecon.ps1
      - \AzureADRecon.ps1
      - \BadSuccessor.ps1
      - \Check-VM.ps1
      - \ConvertTo-ROT13.ps1
      - \Copy-VSS.ps1
      - \Create-MultipleSessions.ps1
      - \DNS_TXT_Pwnage.ps1
      - \dnscat2.ps1
      - \Do-Exfiltration.ps1
      - \DomainPasswordSpray.ps1
      - \Download_Execute.ps1
      - \Download-Execute-PS.ps1
      - \Enable-DuplicateToken.ps1
      - \Enabled-DuplicateToken.ps1
      - \Execute-Command-MSSQL.ps1
      - \Execute-DNSTXT-Code.ps1
      - \Execute-OnTime.ps1
      - \ExetoText.ps1
      - \Exploit-Jboss.ps1
      - \Find-AVSignature.ps1
      - \Find-Fruit.ps1
      - \Find-GPOLocation.ps1
      - \Find-TrustedDocuments.ps1
      - \FireBuster.ps1
      - \FireListener.ps1
      - \Get-ApplicationHost.ps1
      - \Get-ChromeDump.ps1
      - \Get-ClipboardContents.ps1
      - \Get-ComputerDetail.ps1
      - \Get-FoxDump.ps1
      - \Get-GPPAutologon.ps1
      - \Get-GPPPassword.ps1
      - \Get-IndexedItem.ps1
      - \Get-Keystrokes.ps1
      - \Get-LSASecret.ps1
      - \Get-MicrophoneAudio.ps1
      - \Get-PassHashes.ps1
      - \Get-PassHints.ps1
      - \Get-RegAlwaysInstallElevated.ps1
      - \Get-RegAutoLogon.ps1
      - \Get-RickAstley.ps1
      - \Get-Screenshot.ps1
      - \Get-SecurityPackages.ps1
      - \Get-ServiceFilePermission.ps1
      - \Get-ServicePermission.ps1
      - \Get-ServiceUnquoted.ps1
      - \Get-SiteListPassword.ps1
      - \Get-System.ps1
      - \Get-TimedScreenshot.ps1
      - \Get-UnattendedInstallFile.ps1
      - \Get-Unconstrained.ps1
      - \Get-USBKeystrokes.ps1
      - \Get-VaultCredential.ps1
      - \Get-VulnAutoRun.ps1
      - \Get-VulnSchTask.ps1
      - \Get-WebConfig.ps1
      - \Get-WebCredentials.ps1
      - \Get-WLAN-Keys.ps1
      - \Gupt-Backdoor.ps1
      - \HTTP-Backdoor.ps1
      - \HTTP-Login.ps1
      - \Install-ServiceBinary.ps1
      - \Install-SSP.ps1
      - \Invoke-ACLScanner.ps1
      - \Invoke-ADSBackdoor.ps1
      - \Invoke-AmsiBypass.ps1
      - \Invoke-ARPScan.ps1
      - \Invoke-BackdoorLNK.ps1
      - \Invoke-BadPotato.ps1
      - \Invoke-BetterSafetyKatz.ps1
      - \Invoke-BruteForce.ps1
      - \Invoke-BypassUAC.ps1
      - \Invoke-Carbuncle.ps1
      - \Invoke-Certify.ps1
      - \Invoke-ConPtyShell.ps1
      - \Invoke-CredentialInjection.ps1
      - \Invoke-CredentialsPhish.ps1
      - \Invoke-DAFT.ps1
      - \Invoke-DCSync.ps1
      - \Invoke-Decode.ps1
      - \Invoke-DinvokeKatz.ps1
      - \Invoke-DllInjection.ps1
      - \Invoke-DNSExfiltrator.ps1
      - \Invoke-DNSUpdate.ps1
      - \Invoke-DowngradeAccount.ps1
      - \Invoke-EgressCheck.ps1
      - \Invoke-Encode.ps1
      - \Invoke-EventViewer.ps1
      - \Invoke-Eyewitness.ps1
      - \Invoke-FakeLogonScreen.ps1
      - \Invoke-Farmer.ps1
      - \Invoke-Get-RBCD-Threaded.ps1
      - \Invoke-Gopher.ps1
      - \Invoke-Grouper2.ps1
      - \Invoke-Grouper3.ps1
      - \Invoke-HandleKatz.ps1
      - \Invoke-Interceptor.ps1
      - \Invoke-Internalmonologue.ps1
      - \Invoke-Inveigh.ps1
      - \Invoke-InveighRelay.ps1
      - \Invoke-JSRatRegsvr.ps1
      - \Invoke-JSRatRundll.ps1
      - \Invoke-KrbRelay.ps1
      - \Invoke-KrbRelayUp.ps1
      - \Invoke-LdapSignCheck.ps1
      - \Invoke-Lockless.ps1
      - \Invoke-MalSCCM.ps1
      - \Invoke-Mimikatz.ps1
      - \Invoke-MimikatzWDigestDowngrade.ps1
      - \Invoke-Mimikittenz.ps1
      - \Invoke-MITM6.ps1
      - \Invoke-NanoDump.ps1
      - \Invoke-NetRipper.ps1
      - \Invoke-NetworkRelay.ps1
      - \Invoke-NinjaCopy.ps1
      - \Invoke-OxidResolver.ps1
      - \Invoke-P0wnedshell.ps1
      - \Invoke-P0wnedshellx86.ps1
      - \Invoke-Paranoia.ps1
      - \Invoke-PortScan.ps1
      - \Invoke-PoshRatHttp.ps1
      - \Invoke-PoshRatHttps.ps1
      - \Invoke-PostExfil.ps1
      - \Invoke-PowerDump.ps1
      - \Invoke-PowerDPAPI.ps1
      - \Invoke-PowerShellIcmp.ps1
      - \Invoke-PowerShellTCP.ps1
      - \Invoke-PowerShellTcpOneLine.ps1
      - \Invoke-PowerShellTcpOneLineBind.ps1
      - \Invoke-PowerShellUdp.ps1
      - \Invoke-PowerShellUdpOneLine.ps1
      - \Invoke-PowerShellWMI.ps1
      - \Invoke-PowerThIEf.ps1
      - \Invoke-PPLDump.ps1
      - \Invoke-Prasadhak.ps1
      - \Invoke-PsExec.ps1
      - \Invoke-PsGcat.ps1
      - \Invoke-PsGcatAgent.ps1
      - \Invoke-PSInject.ps1
      - \Invoke-PsUaCme.ps1
      - \Invoke-ReflectivePEInjection.ps1
      - \Invoke-ReverseDNSLookup.ps1
      - \Invoke-Rubeus.ps1
      - \Invoke-RunAs.ps1
      - \Invoke-SafetyKatz.ps1
      - \Invoke-SauronEye.ps1
      - \Invoke-SCShell.ps1
      - \Invoke-Seatbelt.ps1
      - \Invoke-ServiceAbuse.ps1
      - \Invoke-SessionGopher.ps1
      - \Invoke-ShellCode.ps1
      - \Invoke-SMBScanner.ps1
      - \Invoke-Snaffler.ps1
      - \Invoke-Spoolsample.ps1
      - \Invoke-SSHCommand.ps1
      - \Invoke-SSIDExfil.ps1
      - \Invoke-StandIn.ps1
      - \Invoke-StickyNotesExtract.ps1
      - \Invoke-Tater.ps1
      - \Invoke-Thunderfox.ps1
      - \Invoke-ThunderStruck.ps1
      - \Invoke-TokenManipulation.ps1
      - \Invoke-Tokenvator.ps1
      - \Invoke-TotalExec.ps1
      - \Invoke-UrbanBishop.ps1
      - \Invoke-UserHunter.ps1
      - \Invoke-VoiceTroll.ps1
      - \Invoke-Whisker.ps1
      - \Invoke-WinEnum.ps1
      - \Invoke-winPEAS.ps1
      - \Invoke-WireTap.ps1
      - \Invoke-WmiCommand.ps1
      - \Invoke-WScriptBypassUAC.ps1
      - \Invoke-Zerologon.ps1
      - \Keylogger.ps1
      - \MailRaider.ps1
      - \New-HoneyHash.ps1
      - \OfficeMemScraper.ps1
      - \Offline_Winpwn.ps1
      - \Out-CHM.ps1
      - \Out-DnsTxt.ps1
      - \Out-Excel.ps1
      - \Out-HTA.ps1
      - \Out-Java.ps1
      - \Out-JS.ps1
      - \Out-Minidump.ps1
      - \Out-RundllCommand.ps1
      - \Out-SCF.ps1
      - \Out-SCT.ps1
      - \Out-Shortcut.ps1
      - \Out-WebQuery.ps1
      - \Out-Word.ps1
      - \Parse_Keys.ps1
      - \Port-Scan.ps1
      - \PowerBreach.ps1
      - \powercat.ps1
      - \Powermad.ps1
      - \PowerRunAsSystem.psm1
      - \PowerSharpPack.ps1
      - \PowerUp.ps1
      - \PowerUpSQL.ps1
      - \PowerView.ps1
      - \PSAsyncShell.ps1
      - \RemoteHashRetrieval.ps1
      - \Remove-Persistence.ps1
      - \Remove-PoshRat.ps1
      - \Remove-Update.ps1
      - \Run-EXEonRemote.ps1
      - \Schtasks-Backdoor.ps1
      - \Set-DCShadowPermissions.ps1
      - \Set-MacAttribute.ps1
      - \Set-RemotePSRemoting.ps1
      - \Set-RemoteWMI.ps1
      - \Set-Wallpaper.ps1
      - \Show-TargetScreen.ps1
      - \Speak.ps1
      - \Start-CaptureServer.ps1
      - \Start-WebcamRecorder.ps1
      - \StringToBase64.ps1
      - \TexttoExe.ps1
      - \Veeam-Get-Creds.ps1
      - \VolumeShadowCopyTools.ps1
      - \WinPwn.ps1
      - \WSUSpendu.ps1
  selection_invoke_sharp:
    TargetFilename|contains: Invoke-Sharp
    TargetFilename|endswith: .ps1
  condition: 1 of selection_*
falsepositives:
  - Unknown
level: high
license: DRL-1.1

What it detects

This rule flags Windows file creation events where the target filename matches a large set of known offensive PowerShell script names or PowerShell modules. Attackers commonly drop these scripts to enable exploitation, credential theft, persistence, and other post-compromise actions under PowerShell. The detection relies on file event telemetry that captures the created file path or name, including suffix and substring matches for the script and module filenames.

Known false positives

  • Unknown

Detection content is published as a reviewed draft. Tune thresholds and exclusions against your own telemetry before enabling this rule for alerting.