Exposed Files Reveal PaperCut Exploitation, a Second RCE Path and Attacker Tooling

· Original article ↗

Summary

Researchers analyzed exposed attacker directories tied to a PaperCut campaign, uncovering a second XML-RPC RCE path, credential theft and persistent SOCKS5 pivots. Actor files documented 1,005 hosts across 45+ countries and 45 live pivots.

Key points

  • Three exposed directories on 45.142.193[.]132 contained exploit code, AI-agent instructions, operational logs and post-exploitation artifacts.
  • The tooling showed a second RCE path through PaperCut XML-RPC configuration calls when API access controls were weak, separate from the Tapestry vulnerability chain.
  • Post-exploitation tools collected Windows LSA secrets and service credentials, pivoted into internal networks, and packaged compromised hosts for reuse.
  • Linux scripts used chisel and cron to maintain reverse SOCKS5 access through compromised systems.
  • Recovered actor files listed 1,005 reconnaissance targets across at least 45 countries, 46 Active Directory domains and 45 targets with live reverse SOCKS5 pivots.
  • The researchers recommend patching PaperCut, restricting management and XML-RPC access, investigating for compromise, and hunting for the described persistence and behavioral indicators.

Article Details

Attack Vectors
  • Exploitation of internet-facing print-management servers through an unauthenticated Tapestry access bypass chained with unsafe JDBC driver loading.
  • An alternative XML-RPC configuration-write path, documented in the operator's tests, enabled code execution when API network and authentication controls were weak. This path did not depend on the Tapestry bypass.
  • Version-specific execution used H2 INIT with inline Groovy on 26.x targets or Apache Derby export functionality to write attacker-controlled class files on earlier versions.
  • Post-exploitation collectors recovered Windows machine-account secrets and searched application configuration and logs for database, LDAP, keystore, and service-account credentials.
  • Compromised servers became internal-network pivots through Java bridges and reverse SOCKS5 tunnels. Linux deployments maintained tunnel access through cron and a process-monitoring script.
  • Automated follow-on activity created local administrator accounts, modified existing administrator access and security policies, enumerated internal systems, and packaged credentials and reusable access configurations.
Defensive Notes
  • Upgrade affected installations to 26.0.5, 25.0.13, 24.1.10, or later. Investigate previously exposed, unpatched systems rather than treating patching alone as sufficient.
  • Remove unnecessary Internet exposure from administrative interfaces and restrict servers' access to internal network resources.
  • Disable /rpc/api/xmlrpc if unnecessary; otherwise enforce explicit API authentication and network allowlists instead of relying on the administrator-password fallback.
  • Review user-lookup.* configuration changes, unexpected class files in the installation, and transient output files under custom/web/. The web-output variant deleted its output after 30 seconds.
  • Hunt for /var/tmp/.rs_live46_v5, unfamiliar watch.sh scripts, periodic and @reboot cron entries, process-monitoring commands, and unusual long-lived outbound TLS connections.
  • After confirmed compromise, investigate Windows SECURITY and SYSTEM hive collection and rotate credentials accessible to the service account, including application and directory-service secrets.
  • Investigate unauthorized account creation, privilege changes, abnormal domain enumeration, and suspicious authentication originating from compromised servers.
  • Apply outbound traffic restrictions and behavioral detection alongside static indicators. The researchers found that generic TLS fingerprints and the shared certificate issuer did not reliably identify other operator infrastructure.

Indicators of compromise

TypeIndicatorContext
IPV445[.]142[.]193[.]132Primary attacker orchestration host exposing exploit tooling and post-exploitation artifacts on ports 8000, 18080, and 18081; also received reverse tunnels on port 18443.
IPV445[.]158[.]196[.]75Identified in the article's IOC table as the operator's secondary build and execution VPS, reached over SSH.
MD5528cd4e69ecfa5191adbcf6ef28667bfHash of lsa_read.exe, the Rust LSA secret reader recovered from the operator's tooling.
MD5a6437ac3d6798090a218520985d36a3fHash of collect_custom.exe, the recovered collector for LSA-related data and host/domain information.
MD5ce870a91e8d27e8f663f0687abc60b04Hash of save_hives.exe, the recovered registry hive dumper used to export SECURITY and SYSTEM hives.
MD5fc92dfafa7aa741c5f2b9cbcf75d1d19Hash of lsa_collect_small.exe, identified as a Rust LSA bootkey collector in the operator's exposed files.

MITRE ATT&CK

T1003.004 · LSA SecretsRecovered collectors read LSA secret material, while decrypt_machine_hash.py processed boot-key and encrypted machine-account data to recover the machine account's NT hash.T1005 · Data from Local SystemThe post-exploitation pipeline collected registry hives, local configuration files, logs, host information, and service credentials.T1018 · Remote System DiscoveryThe Metasploit resource script enumerated Active Directory computer objects and domain controllers after establishing access.T1053.003 · Cronstage.sh installed periodic and @reboot cron entries to maintain the chisel/watch.sh deployment.T1059.004 · Unix ShellThe Groovy payload launched commands through /bin/sh -c, while stage.sh and watch.sh deployed and maintained the Linux tunnel.T1070.004 · File Deletionlive_rce_web.py wrote command output beneath PaperCut's custom/web directory and deleted the temporary output file after 30 seconds.T1082 · System Information Discoverycollect_custom.exe retrieved the active computer name, TCP/IP configuration, and selected Windows control-set information.T1090.001 · Internal ProxyJava bridges, SOCKS5 servers, and victim-specific proxy configurations provided access to internal resources through compromised PaperCut servers.T1105 · Ingress Tool Transferstage.sh downloaded chisel and watch.sh from the attacker-controlled server on port 18081 onto compromised Linux systems.T1136.001 · Local AccountThe recovered Metasploit resource script created a local administrator account on compromised hosts.T1190 · Exploit Public-Facing ApplicationThe operator exploited exposed PaperCut NG/MF instances through the Tapestry vulnerability chain; its notes also documented a separately tested XML-RPC execution path under weak API controls.T1552.001 · Credentials In Filesparse_service_credentials.py searched configuration files and log dumps for PaperCut database credentials, LDAP bind passwords, keystore passwords, and service-account secrets.T1571 · Non-Standard Portwatch.sh connected the chisel client to the orchestration host on port 18443; recovered Metasploit logs also identified a handler on port 8001.T1572 · Protocol TunnelingThe Linux deployment maintained a chisel reverse SOCKS5 tunnel carrying internal-network traffic back to the operator.T1595.002 · Vulnerability Scanningtapestry_direct_probe.py tested a read-only configuration key, and papercut_checker scanned batches of PaperCut hosts to distinguish vulnerable, patched, and blocked systems.

CVE

Vendors

Products

Tools

admin_bridge.pyThe port 8000 directory contains a coordinated access and pivot framework centered on admin_bridge.py. The script builds and delivers a Java bridge through the PaperCut execution path, after which the bridge executesChiselA Linux persistence mechanism used chisel and cron to maintain reverse SOCKS5 access through compromised hosts, providing the operator with reusable access to internal networks.Codexanalysis describes a likely Russian-speaking actor running hundreds of AI agents through the OpenAI Codex harness with a DeepSeek model, alongside public offensive tooling. GreyNoise and Blackpoint Cyberdecrypt_machine_hash.pybetween the collection binaries and the offline processing stage is further demonstrated by decrypt_machine_hash.py. The script parses the structured fields produced by the collectors, including BOOTKEY_,live_reverse_socks5.pyWe searched our open-directory data for the reverse SOCKS deployment script the operator used, live_reverse_socks5.py, which is specific to this tooling rather than generic. Every result came back onMetasploit Frameworkvulnerability triage results, credential-collection tooling, reverse SOCKS infrastructure, Metasploit logs, and packaged victim environments. The files also revealed a second XML-RPC-based attack path thatMeterpreterused by the automation. It loads exploit/multi/http/papercut_ng_external_user_lookup_rce with a Java Meterpreter payload, establishes a session, creates a local administrator account, resets the built-inpapercut_checkerOn 31 August, the actor ran its Go-based checker, papercut_checker, against a batch of African PaperCut instances using ten concurrent workers. It found 15 vulnerable, 4 patched, and 2 blocked by a WAF out of 40 targetsparse_service_credentials.pycredential-collection output and derives the Windows machine-account NT hash.Another script, parse_service_credentials.py, scans configuration files and log dumps for PaperCut database credentials, LDAP bindPentAGIThe PentAGI certificate issuer and the server's generic TLS fingerprints are shared too widely to tie other hosts to this operator, so detection should rely on the behavioral indicators rather than infrastructure

Countries

AustraliaAustralia 23 7 30BelgiumLocal admin, hash recovered Belgium 2BrazilBrazil 23 8 31CanadaLocal admin, hash recovered Canada 1Chiletargets were spread across South Africa, Spain, Sweden, Saudi Arabia, Puerto Rico, Malaysia, Ireland, Chile, Switzerland, and Canada.FranceDomain admin achieved France 2GermanyGermany 27 2 29Irelandremaining targets were spread across South Africa, Spain, Sweden, Saudi Arabia, Puerto Rico, Malaysia, Ireland, Chile, Switzerland, and Canada.ItalyItaly 17 7 24MalaysiaTaiwan. The remaining targets were spread across South Africa, Spain, Sweden, Saudi Arabia, Puerto Rico, Malaysia, Ireland, Chile, Switzerland, and Canada.Netherlandsin the 45.142.193.0/24 range, under AS213388 (IIC RAIL LIMITED), with Amsterdam, North Holland, Netherlands as the listed geolocation. The network information also references Limited Network LTD.PortugalDomain admin achieved Portugal 5Puerto Ricothe US and Taiwan. The remaining targets were spread across South Africa, Spain, Sweden, Saudi Arabia, Puerto Rico, Malaysia, Ireland, Chile, Switzerland, and Canada.Saudi ArabiaLocal admin, hash recovered Saudi Arabia 1SingaporeSingapore 44 1 45South AfricaSouth Africa 18 0 18SpainLocal admin, hash recovered Spain 2SwedenSweden 18 2 20Switzerlandwere spread across South Africa, Spain, Sweden, Saudi Arabia, Puerto Rico, Malaysia, Ireland, Chile, Switzerland, and Canada.TaiwanLocal admin, no hash recovered Taiwan 2United KingdomDomain admin achieved United Kingdom 3United StatesDomain admin achieved United States 1

Industries

Related Articles