Empire Module Library

Empire Module Library logo

If you are looking for a list of Empire modules, this library might be just for you.

On this page you will find a complete list of all Empire modules that are available in the latest version of Empire 4 (BC Security fork), one of the most popular post-exploitation frameworks.

Introduction

The BC Security Empire 4, which is a successor of the discontinued PowerShell Empire project, is one of the top open source post-exploitation frameworks available to red teams and penetration testers today for conducting variety of security assessments.

Once supporting only Windows systems, today’s modern version of Empire can be used on OS X and Linux based targets as well, thanks to the modern Python 3.x language support.

Empire Modules and Plugins

Empire offers plenty of additional functionality in forms of modules and plugins. In the current version (4.1.3) there are nearly 400 modules which are written in one of these languages:

  • PowerShell
  • Python
  • C#

This page contains a library of all of these modules, in a form of table which you can easily search through and filter out based on what you are looking for.

Each module has a separate entry, with a detailed description, list of options and example usage providing details on how to use the module.

Filtering Examples

For searching through the table below, you can use the Search functionality on top of the table and for instance search for the following module categories:

  • Enumeration – Modules for general recon and information gathering
  • Situation – Situational awareness modules (scanners, detailed recon etc.)
  • Active directory – Enumeration of Active Directory (groups, users, computers etc.)
  • Privesc or privilege – Privilege escalation modules and scanners for local vulnerabilities
  • Credentials – Dumping credentials, password hashes, impersonation, tokens, tickets etc.
  • Persistence – Maintaining access to the system (install a backdoor etc.)
  • Lateral – Lateral movement, invoking commands on remote systems
  • Code execution – Executing code on the system using various methods
  • Collection – Dumping browser data, packet capturing (sniffing), keylogging, screen capturing etc.
  • Management – Modules for managing the system and performing various useful tasks
  • Exploit – Modules for various known vulnerabilities (ZeroLogon, PrintNightmare, EternalBlue etc.)

You can also filter the modules based on a tool name or a technology that you are looking for. For instance: mimikatz, rubeus, inveigh, mimipenguin, rdp, ssh, keylogger, seatbelt, portscan, sharpsploit, ghostpack, wdigest, registry, winpeas.

Surely you’ve got the idea. Alright, here’s the promised Empire module library..

Empire Module Library

Empire ModuleModule Description
csharp/SharpSploit.PrivilegeEscalation/PrivExchangePerforms the PrivExchange attack by sending a push notification to EWS.
csharp/GhostPack/RubeusUse a rubeus command.
csharp/GhostPack/SharpDPAPIUse a SharpDPAPI command.
csharp/GhostPack/SharpUpUse a SharpUp command.
csharp/GhostPack/SharpDumpUse a SharpDump command.
csharp/GhostPack/SeatbeltUse a Seatbelt command.
csharp/GhostPack/SharpWMIUse a SharpWMI command.
csharp/DotNetCore/ListDirectoryGet a listing of the current directory.
csharp/DotNetCore/AssemblyExecute a dotnet Assembly EntryPoint.
csharp/DotNetCore/ShellCmdExecute a Shell command using "cmd.exe /c".
csharp/DotNetCore/ShellExecute a Shell command.
csharp/DotNetCore/WhoAmIGets the username of the currently used/impersonated token.
csharp/DotNetCore/ChangeDirectoryChange the current directory.
csharp/DotNetCore/ReadTextFileRead a text file on disk.
csharp/DotNetCore/CreateDirectoryCreates all directories and subdirectories in the specified path unless they already exist.
csharp/DotNetCore/DeleteDelete a file or directory.
csharp/DotNetCore/CopyCopy a file from one location to another.
csharp/DotNetCore/ProcessListGet a list of currently running processes.
csharp/DotNetCore/DownloadDownload a file.
csharp/DotNetCore/UploadUpload a file.
csharp/SharpSploit.LateralMovement/WMIGruntExecute a Grunt Launcher on a remote system using Win32_Process Create, optionally with alternate credentials.
csharp/SharpSploit.LateralMovement/WMICommandExecute a process on a remote system using Win32_Process Create, optionally with alternate credentials.
csharp/SharpSploit.LateralMovement/PowerShellRemotingGruntExecute a Grunt Launcher on a remote system using PowerShell Remoting, optionally with alternate credentials.
csharp/SharpSploit.LateralMovement/PowerShellRemotingCommandExecute a PowerShell command on a remote system using PowerShell Remoting, optionally with alternate credentials.
csharp/SharpSploit.LateralMovement/DCOMGruntExecute a Grunt Launcher on a remote system using various DCOM methods.
csharp/SharpSploit.LateralMovement/DCOMCommandExecute a process on a remote system using various DCOM methods.
csharp/SharpSploit.Persistence/PersistStartupInstalls a payload into the current users startup folder.
csharp/SharpSploit.Persistence/PersistCOMHijackHijacks a CLSID key to execute a payload for persistence.
csharp/SharpSploit.Persistence/PersistWMICreates a WMI Event, Consumer and Binding to execute a payload.
csharp/SharpSploit.Persistence/PersistAutorunInstalls an autorun value in HKCU or HKLM to execute a payload.
csharp/SharpSploit.Evasion/BypassAmsiBypasses AMSI by patching the AmsiScanBuffer function.
csharp/SharpSploit.Enumeration/GetNetSessionGets a list of `SessionInfo`s from specified remote computer(s).
csharp/SharpSploit.Enumeration/GetNetLoggedOnUserGets a list of `LoggedOnUser`s from specified remote computer(s).
csharp/SharpSploit.Enumeration/GetNetLocalGroupMemberGets a list of `LocalGroupMember`s from specified remote computer(s).
csharp/SharpSploit.Enumeration/GetNetLocalGroupGets a list of `LocalGroup`s from specified remote computer(s).
csharp/SharpSploit.Enumeration/GetDomainGroupGets a list of specified (or all) group `DomainObject`s in the current Domain.
csharp/SharpSploit.Enumeration/GetDomainUserGets a list of specified (or all) user `DomainObject`s in the current Domain.
csharp/SharpSploit.Enumeration/GetDomainComputerGets a list of specified (or all) computer `DomainObject`s in the current Domain.
csharp/SharpSploit.Enumeration/KeyloggerMonitor the keystrokes for a specified period of time.
csharp/SharpSploit.Enumeration/KerberoastPerform a "Kerberoast" attack that retrieves crackable service tickets for Domain User's w/ an SPN set.
csharp/SharpSploit.Enumeration/PortScanPerform a TCP port scan.
csharp/SharpSploit.Enumeration/ListDirectoryGet a listing of the current directory.
csharp/SharpSploit.Enumeration/ProcessListGet a list of currently running processes.
csharp/SharpSploit.Enumeration/SetRegistryKeySets a value into the registry.
csharp/SharpSploit.Enumeration/GetRegistryKeyGets a value stored in registry.
csharp/SharpSploit.Enumeration/SetRemoteRegistryKeySets a value into the registry on a remote system.
csharp/SharpSploit.Enumeration/GetRemoteRegistryKeyGets a value stored in registry on a remote system.
csharp/Sharpsploit.Credentials/MakeTokenMakes a new token with a specified username and password, and impersonates it to conduct future actions as the specified user.
csharp/Sharpsploit.Credentials/GetSystemImpersonate the SYSTEM user. Equates to ImpersonateUser("NT AUTHORITY\SYSTEM").
csharp/Sharpsploit.Credentials/ImpersonateProcessImpersonate the token of the specified process. Used to execute subsequent commands as the user associated with the token of the specified process.
csharp/Sharpsploit.Credentials/ImpersonateUserFind a process owned by the specified user and impersonate the token. Used to execute subsequent commands as the specified user.
csharp/Sharpsploit.Credentials/BypassUACGruntBypasses UAC through token duplication and executes a Grunt Launcher with high integrity.
csharp/Sharpsploit.Credentials/BypassUACCommandBypasses UAC through token duplication and executes a command with high integrity.
csharp/Sharpsploit.Credentials/RevertToSelfEnds the impersonation of any token, reverting back to the initial token associated with the current process. Useful in conjuction with functions ...
csharp/Sharpsploit.Credentials/LogonPasswordsExecute the 'privilege::debug sekurlsa::logonPasswords' Mimikatz command.
csharp/Sharpsploit.Credentials/LsaSecretsExecute the 'privilege::debug lsadump::secrets' Mimikatz command.
csharp/Sharpsploit.Credentials/LsaCacheExecute the 'privilege::debug lsadump::cache' Mimikatz command.
csharp/Sharpsploit.Credentials/SamDumpExecute the 'privilege::debug lsadump::sam' Mimikatz command.
csharp/Sharpsploit.Credentials/WdigestExecute the 'sekurlsa::wdigest' Mimikatz command.
csharp/Sharpsploit.Credentials/DCSyncExecute the 'lsadump::dcsync Mimikatz command.
csharp/Sharpsploit.Credentials/MimikatzExecute a mimikatz command.
csharp/Sharpsploit.Credentials/SafetyKatzUse SafetyKatz.
csharp/SharpSC/SharpSCUse a SharpSC command.
python/code_execution/powershell_executionExecutes Powershell code from a Python code.
python/trollsploit/osx/change_backgroundChange the login message for the user.
python/trollsploit/osx/sayPerforms text to speech using "say".
python/trollsploit/osx/thunderstruckOpen Safari in the background and play Thunderstruck.
python/trollsploit/osx/login_messageChange the login message for the user.
python/management/multi/kerberos_injectGenerates a kerberos keytab and injects it into the current runspace.
python/management/multi/spawnSpawns a new Empire agent.
python/management/multi/socksSpawn an AROX relay to extend a SOCKS proxy through your agent.
python/management/osx/shellcodeinject64Inject shellcode into a x64 bit process.
python/management/osx/screen_sharingEnables ScreenSharing to allow you to connect to the host via VNC.
python/situational_awareness/network/find_fruitSearches for low-hanging web applications.
python/situational_awareness/network/gethostbynameUses Python's socket.gethostbyname("example.com") function to resolve host names on a remote agent.
python/situational_awareness/network/port_scanSimple Port Scanner.
python/situational_awareness/network/smb_mountThis module will attempt mount an smb share and execute a command on it.
python/situational_awareness/network/http_rest_apiInteracts with a HTTP REST API and returns the results back to the screen.
python/situational_awareness/network/active_directory/dscl_get_groupsThis module will use the current user context to query active directory for a list of Groups.
python/situational_awareness/network/active_directory/get_groupsThis module will list all groups in active directory.
python/situational_awareness/network/active_directory/get_computersThis module will list all computer objects from active directory.
python/situational_awareness/network/active_directory/get_userinformationThis module will return the user profile specified.
python/situational_awareness/network/active_directory/get_fileserversThis module will list file servers.
python/situational_awareness/network/active_directory/get_usersThis module list users found in Active Directory.
python/situational_awareness/network/active_directory/dscl_get_groupmembersThis module will use the current user context to query active directory for a list of users in a group.
python/situational_awareness/network/active_directory/get_groupmembersThis module will return a list of group members.
python/situational_awareness/network/active_directory/get_ousThis module will list all OUs from active directory.
python/situational_awareness/network/active_directory/dscl_get_usersThis module will use the current user context to query active directory for a list of users.
python/situational_awareness/network/active_directory/get_groupmembershipsThis module check what groups a user is member of.
python/situational_awareness/network/active_directory/get_domaincontrollersThis module will list all domain controllers from active directory.
python/situational_awareness/network/dcos/marathon_api_delete_appDelete a Marathon App using Marathon's REST API.
python/situational_awareness/network/dcos/marathon_api_create_start_appCreate and Start a Marathon App using Marathon's REST API.
python/situational_awareness/network/dcos/chronos_api_delete_jobDelete a Chronos job using the HTTP API service for the Chronos Framework.
python/situational_awareness/network/dcos/etcd_crawlerPull keys and values from an etcd configuration store.
python/situational_awareness/network/dcos/chronos_api_add_jobAdd a Chronos job using the HTTP API service for the Chronos Framework.
python/situational_awareness/network/dcos/chronos_api_start_jobStart a Chronos job using the HTTP API service for the Chronos Framework.
python/situational_awareness/host/multi/WorldWriteableFileSearchThis module can be used to identify world writeable files.
python/situational_awareness/host/multi/SuidGuidSearchThis module can be used to identify suid or guid bit set on files.
python/situational_awareness/host/osx/situational_awarenessThis module will enumerate the basic items needed for OP.
python/situational_awareness/host/osx/HijackScannerThis module can be used to identify applications vulnerable to dylib hijacking on a target system. This has been modified from the original to remove ...
python/privesc/linux/linux_priv_checkerThis script is intended to be executed locally ona Linux box to enumerate basic system info, and search for commonprivilege escalation vectors with ...
python/privesc/linux/unix_privesc_checkThis script is intended to be executed locally ona Linux box to enumerate basic system info, and search for commonprivilege escalation vectors with a ...
python/privesc/multi/bashdoorCreates an alias in the .bash_profile to cause the sudo command to execute a stager and pass through the origional command back to sudo.
python/privesc/multi/sudo_spawnSpawns a new Empire agent using sudo.
python/privesc/osx/piggybackSpawns a new Empire agent using an existing sudo session. This works up until El Capitan.
python/privesc/osx/dyld_print_to_fileThis modules takes advantage of the environment variable DYLD_PRINT_TO_FILE in order to escalate privileges on all versions Mac OS X YosemiteWARNING: ...
python/privesc/windows/get_gpppasswordsThis module will attempt to pull group policy preference passwords from SYSVOL.
python/collection/linux/snifferThis module will sniff all interfaces on the target, and write in pcap format.
python/collection/linux/hashdumpExtracts the /etc/passwd and /etc/shadow, unshadowing the result.
python/collection/linux/xkeyloggerX userland keylogger based on pupy.
python/collection/linux/pillage_userPillages the current user for their bash_history, ssh known hosts, recent folders, etc.
python/collection/linux/mimipenguinPort of huntergregal mimipenguin. Harvest's current user's cleartext credentials.
python/collection/linux/keyloggerLogs keystrokes to the specified file. Ruby based and heavily adapted from MSF's osx/capture/keylog_recorder. Kill the resulting PID when keylogging ...
python/collection/osx/osx_mic_recordRecords audio through the MacOS webcam mic by leveraging the Apple AVFoundation API.
python/collection/osx/snifferThis module will do a full network stack capture.
python/collection/osx/imessage_dumpThis module will enumerate the entire chat and IMessage SQL Database.
python/collection/osx/kerberosdumpThis module will dump ccache kerberostickets to the specified directory.
python/collection/osx/keychaindump_chainbreakerA keychain dump module that allows for decryption via known password.
python/collection/osx/promptLaunches a specified application with an prompt for credentials with osascript.
python/collection/osx/hashdumpExtracts found user hashes out of /var/db/dslocal/nodes/Default/users/*.plist.
python/collection/osx/keychaindump_decryptUses Apple Security utility to dump the contents of the keychain. WARNING: Will prompt user for access to each key.On Newer versions of Sierra and ...
python/collection/osx/browser_dumpThis module will dump browser history from Safari and Chrome.
python/collection/osx/pillage_userPillages the current user for their keychain, bash_history, ssh known hosts, recent folders, etc. For logon.keychain, use ...
python/collection/osx/webcamTakes a picture of a person through OSX's webcam with an ImageSnap binary.
python/collection/osx/screenshotTakes a screenshot of an OSX desktop using screencapture and returns the data.
python/collection/osx/keychaindumpSearches for keychain candidates and attempts to decrypt the user's keychain.
python/collection/osx/search_emailSearches for Mail .emlx messages, optionally only returning messages with the specified SearchTerm.
python/collection/osx/screensaver_alleyoopLaunches a screensaver with a prompt for credentials with osascript. This locks the user out until the password can unlock the user keychain. This ...
python/collection/osx/native_screenshot_mssTakes a screenshot of an OSX desktop using the Python mss module. The python-mss module utilizes ctypes and the CoreFoundation library.
python/collection/osx/clipboardThis module will write log output of clipboard to stdout (or disk).
python/collection/osx/keyloggerLogs keystrokes to the specified file. Ruby based and heavily adapted from MSF's osx/capture/keylog_recorder. Kill the resulting PID when keylogging ...
python/collection/osx/native_screenshotTakes a screenshot of an OSX desktop using the Python Quartz libraries and returns the data.
python/exploit/web/jboss_jmxExploit JBoss java serialization flaw. Requires upload of ysoserial payload.
python/persistence/multi/crontabThis module establishes persistence via crontab.
python/persistence/multi/desktopfileInstalls an Empire launcher script in ~/.config/autostart on Linux versions with GUI.
python/persistence/osx/mailInstalls a mail rule that will execute an AppleScript stager when a trigger word is present in the Subject of an incoming mail.
python/persistence/osx/LaunchAgentInstalls an Empire Launch Agent.
python/persistence/osx/loginhookInstalls Empire agent via LoginHook.
python/persistence/osx/CreateHijackerConfigures and Empire dylib for use in a Dylib hijack, given the path to a legitimate dylib of a vulnerable application. The architecture of the ...
python/persistence/osx/LaunchAgentUserLandPersistenceInstalls an Empire launchAgent.
python/persistence/osx/RemoveLaunchAgentRemove an Empire Launch Daemon.
python/lateral_movement/multi/ssh_launcherThis module will send an launcher via ssh.
python/lateral_movement/multi/ssh_commandThis module will send a command via ssh.
powershell/code_execution/invoke_metasploitpayloadSpawns a new, hidden PowerShell window that downloadsand executes a Metasploit payload. This relies on the exploit/multi/scripts/web_delivery ...
powershell/code_execution/invoke_ntsdUse NT Symbolic Debugger to execute Empire launcher code.
powershell/code_execution/invoke_shellcodemsilExecute shellcode within the context of the running PowerShell process without making any Win32 function calls. Warning: This script has no way to ...
powershell/code_execution/invoke_assemblyLoads the specified assembly into memory and invokes the main method. The Main method and class containing Main must both be PUBLIC for ...
powershell/code_execution/invoke_reflectivepeinjectionUses PowerSploit's Invoke-ReflectivePEInjection to reflectively load a DLL/EXE in to the PowerShell process or reflectively load a DLL in to a remote ...
powershell/code_execution/invoke_ironpythonExecutes IronPython code using the embedded IPY engine.
powershell/code_execution/invoke_clearscriptExecutes JScript (or VBScript) using the embedded ClearScript engine.
powershell/code_execution/invoke_dllinjectionUses PowerSploit's Invoke-DLLInjection to inject a Dll into the process ID of your choosing.
powershell/code_execution/invoke_ironpython3Executes IronPython3 code using the embedded IPY engine.
powershell/code_execution/invoke_shellcodeUses PowerSploit's Invoke--Shellcode to inject shellcode into the process ID of your choosing or within the context of the running PowerShell ...
powershell/code_execution/invoke_ssharpExecutes SSharp from an embedded compiler within PowerShell. Compilation does not call csc.exe.
powershell/code_execution/invoke_boolangExecutes Boo code from an embedded compiler.
powershell/trollsploit/rick_asciiSpawns a a new powershell.exe process that runs Lee Holmes' ASCII Rick Roll.
powershell/trollsploit/get_schwiftyPlay's a hidden version of Rick and Morty Get Schwifty video while maxing out a computer's volume.
powershell/trollsploit/wlmdrDisplays a balloon reminder in the taskbar.
powershell/trollsploit/rick_astleyRuns @SadProcessor's beeping rickroll.
powershell/trollsploit/wallpaperUploads a .jpg image to the target and sets it as the desktop wallpaper.
powershell/trollsploit/messageDisplays a specified message to the user.
powershell/trollsploit/voicetrollReads text aloud via synthesized voice on target.
powershell/trollsploit/process_killerKills any process starting with a particular name.
powershell/trollsploit/thunderstruckPlay's a hidden version of AC/DC's Thunderstruck video while maxing out a computer's volume.
powershell/exploitation/exploit_eternalbluePort of MS17_010 Metasploit module to powershell. Exploits targeted system and executes specified shellcode. Windows 7 and 2008 R2 supported. ...
powershell/exploitation/exploit_jenkinsRun command on unauthenticated Jenkins Script consoles.
powershell/exploitation/invoke_spoolsampleRuns SpoolSample C# binary through reflection.
powershell/exploitation/exploit_jbossExploit vulnerable JBoss Services.
powershell/credentials/rubeusRubeus is a C# toolset for raw Kerberos interaction and abuses.
powershell/credentials/vault_credentialRuns PowerSploit's Get-VaultCredential to display Windows vault credential objects including cleartext web credentials.
powershell/credentials/invoke_kerberoastRequests kerberos tickets for all users with a non-null service principal name (SPN) and extracts them into a format ready for John or Hashcat.
powershell/credentials/DomainPasswordSprayDomainPasswordSpray is a tool written in PowerShell to perform a password spray attack against users of a domain.
powershell/credentials/sessiongopherExtract saved sessions & passwords for WinSCP, PuTTY, SuperPuTTY, FileZilla, RDP, .ppk files, .rdp files, .sdtid files.
powershell/credentials/invoke_internal_monologueUses the Internal Monologue attack to force easily-decryptable Net-NTLMv1.
powershell/credentials/powerdumpDumps hashes from the local system using an updated version of Posh-SecMod's Invoke-PowerDump.
powershell/credentials/enum_cred_storeDumps plaintext credentials from the Windows Credential Manager for the current interactive user.
powershell/credentials/invoke_ntlmextractExtract local NTLM password hashes from the registry.
powershell/credentials/get_lapspasswordsDumps user readable LAPS passwords using kfosaaen's Get-LAPSPasswords.
powershell/credentials/sharpsecdump.Net port of the remote SAM + LSA Secrets dumping functionality of impacket's secretsdump.py. By default runs in the context of the current user.
powershell/credentials/credential_injectionRuns PowerSploit's Invoke-CredentialInjection to create logons with clear-text credentials without triggering a suspicious Event ID 4648 (Explicit ...
powershell/credentials/tokensRuns PowerSploit's Invoke-TokenManipulation to enumerate Logon Tokens available and uses them to create new processes. Similar to Incognito's ...
powershell/credentials/mimikatz/pthRuns PowerSploit's Invoke-Mimikatz function to execute sekurlsa::pth to create a new process. with a specific user's hash. Use credentials/tokens to ...
powershell/credentials/mimikatz/silver_ticketRuns PowerSploit's Invoke-Mimikatz function to generate a silver ticket for a server/service and inject it into memory.
powershell/credentials/mimikatz/cacheRuns PowerSploit's Invoke-Mimikatz function to extract MSCache(v2) hashes.
powershell/credentials/mimikatz/commandRuns PowerSploit's Invoke-Mimikatz function with a custom command. Note: Not all functions require admin, but many do.
powershell/credentials/mimikatz/terminal_serverRuns PowerSploit's Invoke-Mimikatz function to extract plaintext RDP credentials from memory.
powershell/credentials/mimikatz/extract_ticketsRuns PowerSploit's Invoke-Mimikatz function to extract kerberos tickets from memory in base64-encoded form.
powershell/credentials/mimikatz/keysRuns PowerSploit's Invoke-Mimikatz function to extract all keys to the local directory.
powershell/credentials/mimikatz/samRuns PowerSploit's Invoke-Mimikatz function to extract hashes from the Security Account Managers (SAM) database.
powershell/credentials/mimikatz/trust_keysRuns PowerSploit's Invoke-Mimikatz function to extract domain trust keys from a domain controller.
powershell/credentials/mimikatz/purgeRuns PowerSploit's Invoke-Mimikatz function to purge all current kerberos tickets from memory.
powershell/credentials/mimikatz/logonpasswordsRuns PowerSploit's Invoke-Mimikatz function to extract plaintext credentials from memory.
powershell/credentials/mimikatz/certsRuns PowerSploit's Invoke-Mimikatz function to extract all certificates to the local directory.
powershell/credentials/mimikatz/dcsyncRuns PowerSploit's Invoke-Mimikatz function to extract a given account password through Mimikatz's lsadump::dcsync module. This doesn't need code ...
powershell/credentials/mimikatz/lsadumpRuns PowerSploit's Invoke-Mimikatz function to extract a particular user hash from memory. Useful on domain controllers.
powershell/credentials/mimikatz/mimitokensRuns PowerSploit's Invoke-Mimikatz function to list or enumerate tokens.
powershell/credentials/mimikatz/golden_ticketRuns PowerSploit's Invoke-Mimikatz function to generate a golden ticket and inject it into memory.
powershell/credentials/mimikatz/dcsync_hashdumpRuns PowerSploit's Invoke-Mimikatz function to collect all domain hashes using Mimikatz'slsadump::dcsync module. This doesn't need code execution on ...
powershell/recon/get_sql_server_login_default_pwBased on the instance name, test if SQL Server is configured with default passwords.
powershell/recon/http_loginTests credentials against Basic Authentication.
powershell/recon/find_fruitSearches a network range for potentially vulnerable web services.
powershell/recon/fetch_brute_localThis module will logon to a member server using the agents account or a provided account, fetch the local accounts and perform a network based brute ...
powershell/management/timestompExecutes time-stomp like functionality by invoking Set-MacAttribute.
powershell/management/spawnasSpawn an agent with the specified logon credentials.
powershell/management/zipfolderZips up a target folder for later exfiltration.
powershell/management/switch_listenerOverwrites the listener controller logic with the agent with the logic from generate_comms() for the specified listener.
powershell/management/start-processasuserExecutes a command using a specified set of credentials.
powershell/management/invoke_scriptRun a custom script. Useful for mass-taskings or script autoruns.
powershell/management/invoke_sharpchiselChisel is a fast TCP tunnel, transported over HTTP, secured via SSH. Written in Go (golang). Chisel is mainly useful for passing through firewalls, ...
powershell/management/get_domain_sidReturns the SID for the current or specified domain.
powershell/management/enable_multi_rdp[!] WARNING: Experimental! Runs PowerSploit's Invoke-Mimikatz function to patch the Windows terminal service to allow multiple users to establish ...
powershell/management/enable_rdpEnables RDP on the remote machine and adds a firewall exception.
powershell/management/reflective_injectUtilizes Powershell to to inject a Stephen Fewer formed ReflectivePick which executes PS codefrom memory in a remote process.
powershell/management/shinjectInjects a PIC shellcode payload into a target process, via Invoke-Shellcode.
powershell/management/lockLocks the workstation's display.
powershell/management/sid_to_userConverts a specified domain sid to a user.
powershell/management/psinjectUtilizes Powershell to to inject a Stephen Fewer formed ReflectivePick which executes PS codefrom memory in a remote process. ProcID or ProcName must ...
powershell/management/spawnSpawns a new agent in a new powershell.exe process.
powershell/management/phant0mKills Event Log Service Threads.
powershell/management/disable_rdpDisables RDP on the remote machine.
powershell/management/user_to_sidConverts a specified domain\user to a domain sid.
powershell/management/wdigest_downgradeSets wdigest on the machine to explicitly use logon credentials. Counters kb2871997.
powershell/management/runasRunas knockoff. Will bypass GPO path restrictions.
powershell/management/downgrade_accountSet reversible encryption on a given domain account and then force the password to be set on next user login.
powershell/management/vncInvoke-Vnc executes a VNC agent in-memory and initiates a reverse connection, or binds to a specified port. Password authentication is supported.
powershell/management/powercatPowercat is a powershell function. First you need to load the function before you can execute it.You can put one of the below commands into your ...
powershell/management/logoffLogs the current user (or all users) off the machine.
powershell/management/invoke_socksproxyThe reverse proxy creates a TCP tunnel by initiating outbound SSL connections that can go through the system's proxy. The tunnel can then be used as ...
powershell/management/restartRestarts the specified machine.
powershell/management/honeyhashInject artificial credentials into LSASS.
powershell/management/mailraider/get_subfoldersReturns a list of all the folders in the specified top level folder.
powershell/management/mailraider/mail_searchSearches the given Outlook folder for items (Emails, Contacts, Tasks, Notes, etc. *Depending on the folder*) and returns any matches found.
powershell/management/mailraider/send_mailSends emails using a custom or default template to specified target email addresses.
powershell/management/mailraider/view_emailSelects the specified folder and then outputs the email item at the specified index.
powershell/management/mailraider/search_galReturns any exchange users that match the specified search criteria. Searchable fields are FirstName, LastName, JobTitle, Email-Address, and ...
powershell/management/mailraider/get_emailitemsReturns all of the items for the specified folder.
powershell/management/mailraider/disable_securityThis function checks for the ObjectModelGuard, PromptOOMSend, and AdminSecurityMode registry keys for Outlook security. This function must be run in ...
powershell/situational_awareness/network/arpscanPerforms an ARP scan against a given range of IPv4 IP Addresses.
powershell/situational_awareness/network/bloodhound3Execute BloodHound data collection (ingestor for version 3).
powershell/situational_awareness/network/reverse_dnsPerforms a DNS Reverse Lookup of a given IPv4 IP Range.
powershell/situational_awareness/network/get_sql_server_infoReturns basic server and user information from target SQL Servers.
powershell/situational_awareness/network/smbscannerTests usernames/password combination across a number of machines.
powershell/situational_awareness/network/bloodhoundExecute BloodHound data collection.
powershell/situational_awareness/network/get_kerberos_service_ticketRetrieves IP addresses and usernames using event ID 4769 this can allow identification of a users machine. Can only run on a domain controller.
powershell/situational_awareness/network/portscanDoes a simple port scan using regular sockets, based (pretty) loosely on nmap.
powershell/situational_awareness/network/get_sql_instance_domainReturns a list of SQL Server instances discovered by querying a domain controller for systems with registered MSSQL service principal names. The ...
powershell/situational_awareness/network/smbloginValidates username & password combination(s) across a host or group of hosts using the SMB protocol.
powershell/situational_awareness/network/smbautobruteRuns an SMB brute against a list of usernames/passwords. Will check the DCs to interrogate the bad password count of the users and will keep bruting ...
powershell/situational_awareness/network/get_spnDisplays Service Principal Names (SPN) for domain accounts based on SPN service name, domain account, or domain group via LDAP queries.
powershell/situational_awareness/network/powermad/get_adidns_zoneQuery ADIDNS zones in the specified domain. Part of Powermad.
powershell/situational_awareness/network/powermad/get_adidns_permissionQuery a DACL of an ADIDNS node or zone in the specified domain. Part of Powermad.
powershell/situational_awareness/network/powerview/get_cached_rdpconnectionUses remote registry functionality to query all entries for the Windows Remote Desktop Connection Client" on a machine. Part of PowerView.
powershell/situational_awareness/network/powerview/find_foreign_userEnumerates users who are in groups outside of their principal domain. Part of PowerView.
powershell/situational_awareness/network/powerview/find_gpo_computer_adminTakes a computer (or GPO) object and determines what users/groups have administrative access over it. Part of PowerView.
powershell/situational_awareness/network/powerview/get_subnetGets a list of all current subnets in a domain. Part of PowerView.
powershell/situational_awareness/network/powerview/get_ouGets a list of all current OUs in a domain. Part of PowerView.
powershell/situational_awareness/network/powerview/get_subnet_rangesPulls hostnames from AD, performs a Reverse DNS lookup, and parses the output into ranges.
powershell/situational_awareness/network/powerview/get_gpo_computerTakes a GPO GUID and returns the computers the GPO is applied to. (Note: This function was removed in PowerView. This now uses a combination of two ...
powershell/situational_awareness/network/powerview/get_forestReturn information about a given forest, including the root domain and SID. Part of PowerView.
powershell/situational_awareness/network/powerview/get_domain_controllerReturns the domain controllers for the current domain or the specified domain. Part of PowerView.
powershell/situational_awareness/network/powerview/user_hunterFinds which machines users of a specified group are logged into. Part of PowerView.
powershell/situational_awareness/network/powerview/find_localadmin_accessFinds machines on the local domain where the current user has local administrator access. Part of PowerView.
powershell/situational_awareness/network/powerview/find_foreign_groupEnumerates all the members of a given domain's groups and finds users that are not in the queried domain. Part of PowerView.
powershell/situational_awareness/network/powerview/get_groupGets a list of all current groups in a domain, or all the groups a given user/group object belongs to. Part of PowerView.
powershell/situational_awareness/network/powerview/get_sessionExecute the NetSessionEnum Win32API call to query a given host for active sessions on the host. Part of PowerView.
powershell/situational_awareness/network/powerview/get_computerQueries the domain for current computer objects. Part of PowerView.
powershell/situational_awareness/network/powerview/set_ad_objectTakes a SID, name, or SamAccountName to query for a specified domain object, and then sets a specified "PropertyName" to a specified "PropertyValue". ...
powershell/situational_awareness/network/powerview/get_domain_policyReturns the default domain or DC policy for a given domain or domain controller. Part of PowerView.
powershell/situational_awareness/network/powerview/get_gpoGets a list of all current GPOs in a domain. Part of PowerView.
powershell/situational_awareness/network/powerview/get_domain_trustReturn all domain trusts for the current domain or a specified domain. Part of PowerView.
powershell/situational_awareness/network/powerview/get_forest_domainReturn all domains for a given forest. Part of PowerView.
powershell/situational_awareness/network/powerview/map_domain_trustMaps all reachable domain trusts with .CSV output. Part of PowerView.
powershell/situational_awareness/network/powerview/get_fileserverReturns a list of all file servers extracted from user homedirectory, scriptpath, and profilepath fields. Part of PowerView.
powershell/situational_awareness/network/powerview/process_hunterQuery the process lists of remote machines, searching for processes with a specific name or owned by a specific user. Part of PowerView.
powershell/situational_awareness/network/powerview/get_siteGets a list of all current sites in a domain. Part of PowerView.
powershell/situational_awareness/network/powerview/get_rdp_sessionQuery a given RDP remote service for active sessions and originating IPs (replacement for qwinsta). Note: needs admin rights on the remote server ...
powershell/situational_awareness/network/powerview/get_object_aclReturns the ACLs associated with a specific active directory object. Part of PowerView. WARNING: specify a specific object, otherwise a huge amount ...
powershell/situational_awareness/network/powerview/get_localgroupReturns a list of all current users in a specified local group on a local or remote machine. Part of PowerView.
powershell/situational_awareness/network/powerview/share_finderFinds shares on machines in the domain. Part of PowerView.
powershell/situational_awareness/network/powerview/get_group_memberReturns the members of a given group, with the option to "Recurse" to find all effective group members. Part of PowerView.
powershell/situational_awareness/network/powerview/get_loggedonExecute the NetWkstaUserEnum Win32API call to query a given host for actively logged on users. Part of PowerView.
powershell/situational_awareness/network/powerview/get_userQuery information for a given user or users in the specified domain. Part of PowerView.
powershell/situational_awareness/network/powerview/find_gpo_locationTakes a user/group name and optional domain, and determines the computers in the domain the user/group has local admin (or RDP) rights to. Part of ...
powershell/situational_awareness/network/powerview/get_dfs_shareReturns a list of all fault-tolerant distributed file systems for a given domain. Part of PowerView.
powershell/situational_awareness/network/powerview/find_managed_security_groupThis function retrieves all security groups in the domain and identifies ones that have a manager set. It also determines whether the manager has the ...
powershell/situational_awareness/host/hostreconInvoke-HostRecon runs a number of checks on a system to help provide situational awareness to a penetration tester during the reconnaissance phase It ...
powershell/situational_awareness/host/winenumCollects revelant information about a host and the current user context.
powershell/situational_awareness/host/applockerstatusThis script is used to query the current AppLocker policy on the target and check the status of a user-defined executable or all executables in a ...
powershell/situational_awareness/host/get_uaclevelEnumerates UAC level.
powershell/situational_awareness/host/dnsserverEnumerates the DNS Servers used by a system.
powershell/situational_awareness/host/antivirusproductGet antivirus product information.
powershell/situational_awareness/host/get_pathaclEnumerates the ACL for a given file path.
powershell/situational_awareness/host/get_proxyEnumerates the proxy server and WPAD conents for the current user. Part of PowerView.
powershell/situational_awareness/host/findtrusteddocumentsThis module will enumerate the appropriate registry keys to determine what, if any, trusted documents exist on the host. It will also enumerate ...
powershell/situational_awareness/host/monitortcpconnectionsMonitors hosts for TCP connections to a specified domain name or IPv4 address. Useful for session hijacking and finding users interacting with ...
powershell/situational_awareness/host/seatbeltSeatbelt is a C# project that performs a number of security oriented host-survey "safety checks" relevant from both offensive and defensive security ...
powershell/situational_awareness/host/paranoiaContinuously check running processes for the presence of suspicious users, members of groups, process names, and for any processes running off of USB ...
powershell/situational_awareness/host/computerdetailsEnumerates useful information on the system. By default, all checks are run.
powershell/privesc/bypassuacRuns a BypassUAC attack to escape from a medium integrity process to a high integrity process. This attack was originally discovered by Leo Davidson. ...
powershell/privesc/bypassuac_envBypasses UAC (even with Always Notify level set) by by performing an registry modification of the "windir" value in "Environment" based on James ...
powershell/privesc/bypassuac_tokenmanipulationBypass UAC module based on the script released by Matt Nelson @enigma0x3 at Derbycon 2017.
powershell/privesc/winPEASWinPEAS is a script that search for possible paths to escalate privileges on Windows hosts.
powershell/privesc/sweetpotatoAbuses default privileges given to Local Service accounts to spawn a process as SYSTEM. Tested on Server 2019 and Windows 10 1909 (Build 18363.1316). ...
powershell/privesc/taterTater is a PowerShell implementation of the Hot Potato Windows Privilege Escalation exploit from @breenmachine and @foxglovesec.
powershell/privesc/ms16-135Spawns a new Listener as SYSTEM by leveraging the MS16-135 local exploit. This exploit is for x64 only and only works on unlocked session. Note: the ...
powershell/privesc/askLeverages Start-Process' -Verb runAs option inside a YES-Required loop to prompt the user for a high integrity context before running the agent code. ...
powershell/privesc/bypassuac_wscriptDrops wscript.exe and a custom manifest into C:\Windows\ and then proceeds to execute VBScript using the wscript executablewith the new manifest. The ...
powershell/privesc/mcafee_sitelistRetrieves the plaintext passwords for found McAfee's SiteList.xml files.
powershell/privesc/privesccheckFind Windows local privilege escalation vulnerabilities.
powershell/privesc/sherlockFind Windows local privilege escalation vulnerabilities.
powershell/privesc/ms16-032Spawns a new Listener as SYSTEM by leveraging the MS16-032 local exploit. Note: ~1/6 times the exploit won't work, may need to retry.
powershell/privesc/bypassuac_eventvwrBypasses UAC by performing an image hijack on the .msc file extension and starting eventvwr.exe. No files are dropped to disk, making this opsec safe.
powershell/privesc/zerologonCVE-2020-1472 or ZeroLogon exploits a flaw in the Netlogon protocol to allow anyone on the network to reset the domain administrators hash and ...
powershell/privesc/printdemonThis is an Empire launcher PoC using PrintDemon, the CVE-2020-1048 is a privilege escalation vulnerability that allows a persistent threat through ...
powershell/privesc/getsystemGets SYSTEM privileges with one of two methods.
powershell/privesc/gppRetrieves the plaintext password and other information for accounts pushed through Group Policy Preferences.
powershell/privesc/bypassuac_sdctlbypassBypasses UAC by performing an registry modification for sdclt (based onhttps://enigma0x3.net/2017/03/17/fileless-uac-bypass-using-sdclt-exe/).
powershell/privesc/watsonWatson is a .NET tool designed to enumerate missing KBs and suggest exploits for Privilege Escalation vulnerabilities.
powershell/privesc/bypassuac_fodhelperBypasses UAC by performing an registry modification for FodHelper (based onhttps://winscripting.blog/2017/05/12/first-entry-welcome-and-uac-bypass/).
powershell/privesc/printnightmareExploits CVE-2021-1675 (PrintNightmare) locally to add a new local administrator user with a known password. Optionally, this can be used to execute ...
powershell/privesc/powerup/service_exe_useraddBacks up a service's binary and replaces the original with a binary that creates/adds a local administrator.
powershell/privesc/powerup/write_dllhijackerWrites out a hijackable .dll to the specified path along with a stager.bat that's called by the .dll. wlbsctrl.dll works well for Windows 7. The ...
powershell/privesc/powerup/service_stagerModifies a target service to execute an Empire stager.
powershell/privesc/powerup/service_exe_restoreRestore a backed up service binary.
powershell/privesc/powerup/service_exe_stagerBacks up a service's binary and replaces the original with a binary that launches a stager.bat.
powershell/privesc/powerup/find_dllhijackFinds generic .DLL hijacking opportunities.
powershell/privesc/powerup/service_useraddModifies a target service to create a local user and add it to the local administrators.
powershell/privesc/powerup/allchecksRuns all current checks for Windows privesc vectors.
powershell/collection/get_sql_queryExecutes a query on target SQL servers.
powershell/collection/SharpLoginPromptThis Program creates a login prompt to gather username and password of the current user. This project allows red team to phish username and password ...
powershell/collection/file_finderFinds sensitive files on the domain.
powershell/collection/get_indexed_itemGets files which have been indexed by Windows desktop search.
powershell/collection/ninjacopyCopies a file from an NTFS partitioned volume by reading the raw volume and parsing the NTFS structures.
powershell/collection/clipboard_monitorMonitors the clipboard on a specified interval for changes to copied text.
powershell/collection/FoxDumpThis module will dump any saved passwords from Firefox to the console. This should work for any versionof Firefox above version 32. This will only be ...
powershell/collection/promptPrompts the current user to enter their credentials in a forms box and returns the results.
powershell/collection/minidumpGenerates a full-memory dump of a process. Note: To dump another user's process, you must be running from an elevated prompt (e.g to dump lsass).
powershell/collection/netripperInjects NetRipper into targeted processes, which uses API hooking in order to intercept network traffic and encryption related functions from a low ...
powershell/collection/SauronEyeSauronEye is a search tool built to aid red teams in finding files containing specific keywords.
powershell/collection/toastedSpawns a native toast notification that, if clicked, prompts the current user to enter their credentials into a native looking prompt. Notification ...
powershell/collection/screenshotTakes a screenshot of the current desktop and returns the output as a .PNG.
powershell/collection/find_interesting_fileFinds sensitive files on the domain.
powershell/collection/inveighInveigh is a Windows PowerShell LLMNR/mDNS/NBNS spoofer/man-in-the-middle tool. Note that this module exposes only a subset of Inveigh's parameters. ...
powershell/collection/browser_dataSearch through browser history or bookmarks.
powershell/collection/WireTapWireTap is a .NET 4.0 project to consolidate several functions used to interact with a user's hardware, including: Screenshots (Display + WebCam ...
powershell/collection/WebcamRecorderThis module uses the DirectX.Capture and DShowNET .NET assemblies to capture video from a webcam.
powershell/collection/ChromeDumpThis module will decrypt passwords saved in chrome and display them in the console.
powershell/collection/USBKeyloggerLogs USB keys pressed using Event Tracing for Windows (ETW).
powershell/collection/get_sql_column_sample_dataReturns column information from target SQL Servers. Supports search by keywords, sampling data, and validating credit card numbers.
powershell/collection/keyloggerLogs keys pressed, time and the active window (when changed) to the keystrokes.txt file. This file is located in the agents downloads directory ...
powershell/collection/get-winupdatesThis module will list the Microsoft update history, including pending updates, of the machine.
powershell/collection/packet_captureStarts a packet capture on a host using netsh.
powershell/collection/SharpChromiumThis module will retrieve cookies, history, saved logins from Google Chrome, Microsoft Edge, and Microsoft Edge Beta.
powershell/collection/vaults/remove_keepass_config_triggerThis module removes all triggers from all KeePass configs found by Find-KeePassConfig.
powershell/collection/vaults/add_keepass_config_triggerThis module adds a KeePass exfiltration trigger to all KeePass configs found by Find-KeePassConfig.
powershell/collection/vaults/keethiefThis module retrieves database mastey key information for unlocked KeePass database.
powershell/collection/vaults/find_keepass_configThis module finds and parses any KeePass.config.xml (2.X) and KeePass.ini (1.X) files.
powershell/collection/vaults/get_keepass_config_triggerThis module extracts out the trigger specifications from a KeePass 2.X configuration XML file.
powershell/persistence/userland/schtasksPersist a stager (or script) using schtasks. This has a moderate detection/removal rating.
powershell/persistence/userland/registryPersist a stager (or script) via the HKCU:SOFTWARE\Microsoft\Windows\CurrentVersion\Run registry key. This has an easy detection/removal rating.
powershell/persistence/userland/backdoor_lnkBackdoor a specified .LNK file with a version that launches the original binary and then an Empire stager.
powershell/persistence/powerbreach/deaduserBackup backdoor for a backdoor user.
powershell/persistence/powerbreach/eventlogStarts the event-loop backdoor.
powershell/persistence/powerbreach/resolverStarts the Resolver Backdoor.
powershell/persistence/misc/debuggerSets the debugger for a specified target binary to be cmd.exe, another binary of your choice, or a listern stager. This can be launched from the ...
powershell/persistence/misc/disable_machine_acct_changeDisables the machine account for the target system from changing its password automatically.
powershell/persistence/misc/get_sspsEnumerates all loaded security packages (SSPs).
powershell/persistence/misc/add_sid_historyRuns PowerSploit's Invoke-Mimikatz function to execute misc::addsid to add sid history for a user. ONLY APPLICABLE ON DOMAIN CONTROLLERS!.
powershell/persistence/misc/add_netuserAdds a domain user or a local user to the current (or remote) machine, if permissions allow,.
powershell/persistence/misc/install_sspInstalls a security support provider (SSP) dll.
powershell/persistence/misc/memsspRuns PowerSploit's Invoke-Mimikatz function to execute misc::memssp to log all authentication events to C:\Windows\System32\mimisla.log.
powershell/persistence/misc/skeleton_keyRuns PowerSploit's Invoke-Mimikatz function to execute misc::skeleton to implant a skeleton key w/ password 'mimikatz'. ONLY APPLICABLE ON DOMAIN ...
powershell/persistence/elevated/wmi_updaterPersist a stager (or script) using a permanent WMI subscription. This has a difficult detection/removal rating.
powershell/persistence/elevated/schtasksPersist a stager (or script) using schtasks running as SYSTEM. This has a moderate detection/removal rating.
powershell/persistence/elevated/registryPersist a stager (or script) via the HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Run registry key. This has an easy detection/removal rating.
powershell/persistence/elevated/wmiPersist a stager (or script) using a permanent WMI subscription. This has a difficult detection/removal rating.
powershell/persistence/elevated/rid_hijackRuns Invoke-RIDHijacking. Allows setting desired privileges to an existent account by modifying the Relative Identifier value copy used to create the ...
powershell/exfiltration/exfil_dropboxUpload a file to dropbox.
powershell/exfiltration/egresscheckThis module will generate traffic on a provided range of ports and supports both TCP and UDP. Useful to identify direct egress channels.
powershell/lateral_movement/invoke_sqloscmdExecutes a command or stager on remote hosts using xp_cmdshell.
powershell/lateral_movement/invoke_psremotingExecutes a stager on remote hosts using PSRemoting.
powershell/lateral_movement/invoke_executemsbuildThis module utilizes WMI and MSBuild to compile and execute an xml file containing an Empire launcher.
powershell/lateral_movement/invoke_dcomExecute a stager or command on remote hosts using DCOM.
powershell/lateral_movement/invoke_portfwdForward a port with no admin rights required.
powershell/lateral_movement/invoke_psexecExecutes a stager on remote hosts using PsExec type functionality.
powershell/lateral_movement/jenkins_script_consoleExploit unauthenticated Jenkins Script consoles.
powershell/lateral_movement/new_gpo_immediate_taskBuilds an 'Immediate' schtask to push out through a specified GPO.
powershell/lateral_movement/invoke_smbexecExecutes a stager on remote hosts using SMBExec.ps1. This module requires a username and NTLM hash.
powershell/lateral_movement/invoke_wmiExecutes a stager on remote hosts using WMI.
powershell/lateral_movement/inveigh_relayInveigh's SMB relay function. This module can be used to relay incoming HTTP/Proxy NTLMv1/NTLMv2 authentication requests to an SMB target. If the ...
powershell/lateral_movement/invoke_wmi_debuggerUses WMI to set the debugger for a target binary on a remote machine to be cmd.exe or a stager.
powershell/lateral_movement/invoke_sshcommandExecutes a command on a remote host via SSH.
external/generate_agentGenerates an agent code instance for a specified listener, pre-staged, and register the agent in the database. This allows the agent to begin ...

If you find this useful and you would like more content like this, please subscribe to my mailing list and follow InfosecMatter on Twitter and Facebook to keep up with the latest developments. You can also buy me a coffee.

Leave a Comment

Your email address will not be published. Required fields are marked *