PoshC2 is a Python-based post-exploitation command-and-control framework with multiple agent formats and cross-platform support. It is used as an offensive implant and operator framework for maintaining access, executing commands, and extending post-compromise activity on victim systems. It is publicly known as a dual-use framework and has been observed in real intrusions, including activity associated with APT33.
PoshC2 supports command-and-control over HTTP and HTTPS and provides operators with modules for host and domain discovery, credential access, privilege escalation, and persistence. Documented capabilities include keystroke logging; capturing credentials through spoofed Outlook authentication prompts; searching local and remote files for passwords; decrypting credentials stored in RDCMan configuration data; enumerating local and domain user account information; enumerating network adapter information; and executing tasks through WMI. It also includes multiple methods to bypass Windows User Account Control and has GetSystem-style functionality implemented through PowerShell to obtain SYSTEM-level execution.
On Windows, PoshC2 has been documented using PowerShell launchers, registry-based payload storage, Run key persistence, scheduled tasks, and WMI event subscription persistence. It can also load external offensive PowerShell tooling, expanding its credential theft and post-exploitation functionality. Operational reporting has shown PoshC2 delivered through malicious HTA and PowerShell chains, including employment-themed lure activity attributed to APT33, and it has also been deployed as a follow-on payload by other malware such as SystemBC. PoshC2 is most accurately characterized as a post-exploitation framework and backdoor used for interactive intrusion operations rather than a commodity self-propagating malware family.
Mallory pivots from this family to the IOCs, detections, and named campaigns that touch your stack, and pages you when something new lands.
3 CVEs Mallory has correlated with this family across public research and vendor advisories. Each row links to the full Mallory page for that vulnerability.
PoshC2 contains a module for exploiting SMB via EternalBlue.
PoshC2 contains modules for local privilege escalation exploits such as CVE-2016-9192 and CVE-2016-0099.
PoshC2 contains modules for local privilege escalation exploits such as CVE-2016-9192 and CVE-2016-0099.
1 distinct threat actor attributed by public researchers. Open in Mallory to see the full evidence chain and overlapping campaigns.
35 distinct techniques documented for this family, organized by ATT&CK tactic.
Persistence matrix 1 Technique Count Frameworks Scheduled Task/Job 7/10
This payload is then triggered by either: ... A Scheduled Task, also with the name IEUpdate
$ js_date = / \[ datetime \] ::ParseExact ... $ js_crypt = " System.Security.Cryptography " ... $ js_proxy = " $proxyurl = " ...
rule poshc2_apt_33_2019 ... $ hta_powershell = " 706f7765727368656c6c2e657865 " wide ascii
Persistence matrix 1 Technique Count Frameworks Scheduled Task/Job 7/10
This payload is then triggered by either: ... A Scheduled Task, also with the name IEUpdate
Each of these installs a PowerShell.exe one liner payload to the registry in the key at HKCU\Software\Microsoft\Windows\CurrentVersion\themes with a name Wallpaper777, Wallpaper555 or Wallpaper666
Persistence matrix 2 Technique Count Framework Windows Service 4/10
Persistence matrix 1 Technique Count Frameworks Scheduled Task/Job 7/10
This payload is then triggered by either: ... A Scheduled Task, also with the name IEUpdate
if we find a process that should not have this DLL loaded, particularly if it is an unmanaged code binary (so not .NET) then it is highly likely that this is a process that has been injected into by a PowerShell implant, PoshC2 or otherwise.
Both tools first attempt to use “named pipe impersonation” to achieve SYSTEM privileges. This involves creating a Windows Service to execute as NT AUTHORITY\SYSTEM and feeding data to it through a named pipe that is randomly created by the malicious payload.
Persistence matrix 2 Technique Count Framework Windows Service 4/10
Persistence matrix 2 Technique Count Framework WMI Event Subscription 4/10
This payload is then triggered by either: A registry key at HKCU\Software\Microsoft\Windows\CurrentVersion\run with the name IEUpdate ... A shortcut file placed at %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\IEUpdate.lnk
The content repeatedly describes malware and threat actors that 'bypass UAC,' 'perform UAC bypass,' or use specific Windows components such as fodhelper.exe, eventvwr.exe, sdclt.exe, CMSTPLUA COM interface, SilentCleanup, and registry hijacks to gain elevated privileges.
As part of the attacks, the threat actor packed the C# PoshC2 implants with a packer written in the Nim programming language.
if we find a process that should not have this DLL loaded, particularly if it is an unmanaged code binary (so not .NET) then it is highly likely that this is a process that has been injected into by a PowerShell implant, PoshC2 or otherwise.
Both tools first attempt to use “named pipe impersonation” to achieve SYSTEM privileges. This involves creating a Windows Service to execute as NT AUTHORITY\SYSTEM and feeding data to it through a named pipe that is randomly created by the malicious payload.
The PowerShell implant supports full PowerShell execution from any process (here netsh.exe) by loading System.Management.Automation.dll.
$ hta_unescape = " %64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65..." ... $ hta_hex = " 202f7720312049455820284e65772d4f626a656374204e65742e576562436c69656e74292e446f776e6c6f6164537472696e6728...
Some of the more common payloads that are dropped on targets are the PoshC2 executables and DLLs that can be run using rundll32.exe.
The content is a catalog of malware families and threat actors that 'can perform keylogging,' 'log keystrokes,' 'capture keystrokes,' or use 'keylogger' modules/tools.
AADInternals can gather unsecured credentials for Azure AD services, such as Azure AD Connect, from a local machine... Agent Tesla has the ability to extract credentials from configuration or support files... APT33 has used a variety of publicly available tools like LaZagne to gather credentials.
AdFind can extract subnet information from Active Directory; actors used ipconfig /all after exploiting a machine; numerous malware and groups used ipconfig, ifconfig, arp, route, netsh, nbtstat, NBTscan, and related APIs to gather IP, MAC, DNS, DHCP, gateway, proxy, domain, ARP cache, routing, and adapter details.
The content repeatedly describes malware and threat actors collecting host details such as hostname, OS version, architecture, CPU, memory, BIOS, language, and other machine characteristics; e.g., "Action RAT has the ability to collect the hostname, OS version, and OS architecture of an infected host."
The content is a catalog of malware families and threat actors that 'can perform keylogging,' 'log keystrokes,' 'capture keystrokes,' or use 'keylogger' modules/tools.
Agrius used a custom tool, sql.net4.exe, to query SQL databases and then identify and extract personally identifiable information... AppleSeed has automatically collected data from USB drives, keystrokes, and screen images before exfiltration... Ember Bear engages in mass collection from compromised systems during intrusions.
Hunting C2/Adversaries Infrastructure with Shodan and Censys ... My research Cobalt Strike C2 Metasploit/MSF Covenant C2 Deimos C2 Posh C2 Brute Ratel C4 Mythic C2 Sliver C2 ... Night Hawk C2 NimPlant C2 ShadowPad C2 Infrastructure Async Rat C2 Infrastructure Meterpreter C2 Infrastructure
The content is a long ATT&CK-style listing showing numerous malware families and threat groups that 'use HTTP,' 'use HTTPS,' 'HTTP POST requests,' 'HTTP GET requests,' or 'HTTP/S' for command and control communications.
An experienced operator will not expose their C2 server to the internet, but will instead use a proxy server with a valid certificate and filter firewall traffic to the C2 server that is not from that proxy
the flexibility of the protocol allows for traffic to be hidden and routed through legitimate websites using techniques such as Domain Fronting and reverse proxies.
20 indicators attributed across vendor reports, sandbox runs, and researcher write-ups. Full values are available in Mallory.
IPs, domains, and DNS infrastructure linked to this family.
File hashes (MD5, SHA-1, SHA-256) from samples and reports.
Other indicator types observed in public reporting.
75 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
Named as an example of a full command-and-control implant built with Python.
Mentioned as a post-exploitation framework installed by earlier malicious OneNote document campaigns.
Post-exploitation framework with modules for process injection.
The content references PoshC2 infrastructure as part of command-and-control hunting.
Match every observed IP, domain, and hash against your live telemetry.
Named campaigns wielding this family, with evidence pinned to each claim.
CVEs this family uses for access and lateral movement.
YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.
Every documented technique, ranked by evidence weight.
Reddit, Mastodon, and CTI community discussion around this family.