Exposed Opendir Reveals APT DONOT Cyber Espionage Toolkit Targeting Pakistan's Nuclear and Energy Sectors
Exposing a APT Donot multi-stage toolkit featuring Go-based reverse shells, Inveigh credential harvesting, internal network reconnaissance, and targeting indicators associated with Pakistan's nuclear, energy, and industrial control sectors.
- Published
- Reading time
- 13 min
- Analyst
- @volrant136
- Region
- South Asia / PAKISTAN
- Cyber Espionage
- APT
- SCADA
- Open Directory

Contents
An exposed Open Directory hosted at 193.29.104[.]84:8099 has revealed a collection of tools and scripts potentially associated with an intrusion targeting Pakistan's strategic sectors. The scripts contain hardcoded references to Pakistan's nuclear infrastructure, power sector, and industrial control systems (ICS), including PAEC, Chashma, KANUPP, SCADA, and Modbus.
Using VirusTotal and StrikeReady post, the investigation draws a connection to DoNot APT (APT-C-35), adding a significant dimension to the investigation.
This research examines the exposed toolkit, its development timeline, associated infrastructure, execution capabilities, and targeting indicators to assess the nature and possible objectives of the activity.
Key Findings
- Pakistan-focused reconnaissance: Recovered scripts contain references to
PAEC, Chashma, KANUPP, SCADA, Modbus, and other strategic-sector terminology. - Credential harvesting: Multiple
Inveighconfigurations demonstrate attempts to capture NetNTLM hashes through LLMNR, NBNS, and mDNS poisoning. - OGDCL impersonation: Some scripts modify domain-related environment variables to
impersonate OGDCL. - Internal reconnaissance and lateral movement: Scripts enumerate user profiles, search for potentially sensitive documents, map internal networks, and test credentials against administrative shares.
- Continued toolkit development: Changes observed between October 9 and October 14, 2026, indicate that the exposed collection evolved over several days.
Infrastructure Details
The IP address 193.29.104[.]84 is hosted on the network of M247 Europe SRL (AS9009). According to Hunt.io (opens in a new tab), the IP belongs to the 193.29.104.0/24 network and is geolocated to Saint-Denis, Île-de-France, France.

193.29.104[.]84.An examination of the exposed directory revealed 48 files totaling about 12 MB, with no subdirectories.

193.29.104[.]84:8099, displaying 48 files totaling approximately 12 MB of data.The interesting part was the reconnaissance scripts, which revealed clues about the actor’s targets through hardcoded paths and keyword searches.
Evolution of the Exposed Staging Infrastructure
The earliest identified files in the exposed collection date to October 9, 2026, with an initial batch of 34 files. The additional files appeared over the following days, including a plaintext credential, updated reverse shells, and modified Inveigh configurations.
The most notable changes are summarized below.

The October 10 upload of ad_pwd.txt suggests possible credential exposure, although its origin and operational use remain unconfirmed. The October 14 files reference OGDCL spoofing in the Inveigh configurations. It highlights continued development of the toolkit several days after the initial upload, indicating continued development of configurations for LLMNR/NBNS poisoning.
Targeting Indicators: Pakistan's Nuclear, Energy, and ICS Infrastructure
The analysis of the recovered batch scripts revealed references to Pakistan’s nuclear infrastructure, power grid, and industrial control systems.
contenthunt.bat searches user files for keywords such as PAEC, Chashma, KANUPP, SCADA, and Modbus, while hunt88.bat checks browser-related artifacts and other system locations for additional information. A third script, invgo2.bat, configures the environment to impersonate OGDCL before launching Inveigh.

Note: These findings suggest a focused interest in
Pakistan’s nuclear and energy sectors, although the scripts alone do not confirm the identity of the victim organization or the actor’s ultimate objective.
Inside the Attacker's Toolkit
Remote Access and Reverse-Shell Capabilities
The actor used multiple scripts to establish and maintain reverse-shell access. rev.ps1 and revcmd.ps1 connect to 179.43.145[.]232:61135, while rev106.ps1 connects to the staging server at 193.29.104[.]84:45600. The tcptest.ps1 and t.ps1 scripts check connectivity to these endpoints and the additional address 31.7.61[.]8:443. Batch files repeatedly relaunch payloads, with rv88b.bat downloading the executable again on each iteration.

Credential Harvesting with Inveigh
A substantial portion of the toolkit focuses on credential capture using Inveigh (opens in a new tab), a PowerShell tool that poisons LLMNR/NBNS/mDNS responses to capture NetNTLM credential hashes from hosts on the same network segment.
The actor went through at least ten iterations of Inveigh configurations across the operation. Early scripts (inv3.ps1 through inv10.ps1) tested different combinations of protocols, output directories, and verbosity levels.
inv12.ps1 represents the most sophisticated approach: it launches Inveigh inside a hidden child PowerShell process with all stdio redirected, making it invisible to any user watching the screen.

Inveigh.ps1 in a hidden, non-interactive process, bypassing the execution policy and redirecting standard output and error streams for controlled execution.It writes the child PID to C:\inv12pid.txt so the operator can kill it cleanly later.
inv8.ps1 and inv9.ps1 spoof environment variables before running Inveigh to make it appear as a workgroup machine:
1$env:USERDOMAIN = "WORKGROUP"
2$env:USERDNSDOMAIN = "workgroup.local"The later batch files (invgo2.bat, tinv2.bat, tinv3.bat) switched from WORKGROUP to spoofing OGDCL specifically, which is more convincing on a network where OGDCL machines are expected to be present.

invgo2.bat launches Inveigh with LLMNR, NBNS, mDNS, HTTP, and SMB enabled, redirects console output to C:\inv\console2.txt, and configures file-based logging.Host and Network Reconnaissance
recon88.bat runs four commands (arp -a, route print, net share, and nbtstat -S) and appends everything to C:\Windows\Temp\recon88.txt.
hunt88.bat and hunt88b.bat both focus entirely on the ELECTRICAL user account. hunt88b.bat walks the user's entire profile, collecting directory listings from Recent files, Desktop, Documents, Chrome user data, browser history, and network shortcuts. hunt88.bat adds keyword searches on top of that, specifically looking for nuclear and ICS-related content in those same locations.

hunt88.bat keyword-based searches and hunt88b.bat user-profile enumeration, highlighting collected locations and output files.contenthunt.bat searches every file in C:\Users\ELECTRICAL\Documents\ for the 15 keywords listed earlier and writes matching filenames to C:\Windows\Temp\contenthunt.txt. The script appears designed to identify potentially sensitive documents for subsequent collection.
Lateral Movement
lantest.bat cycles through 30 hosts on 192.168.6.0/24 and attempts to connect to C$ using three credential sets. All output goes to C:\Windows\Temp\lantest.txt.

lantest.bat scans selected LAN hosts and tests hardcoded credentials against administrative shares, logging successful access attempts.C2 Infrastructure and Executable Functionality
Seven executable files were identified, comprising five potentially malicious tools and two legitimate curl binaries. The five executables found in the opendir break into three categories.
rvb80_232.exe,rvb61135.exe, andrvb_new.exeare Go reverse shells compiled weeks apart, each one incrementally more hardened than the last.Beacon-trydnd1.exeis a custom HTTP C2 implant.rv88b.exeis a minimal loader wrapping a stock Metasploit x64 payload.curl_x64.exeandcurl_x86.exeare clean curl 7.40.0-DEV binaries and are not covered here.
After analysis with IDA Pro, I summarise the identified executable groups, their C2 infrastructure, and their primary functionality as shown below:

The Go-based reverse shells (rvb80_232.exe, rvb61135.exe, and rvb_new.exe) establish outbound connections to 179.43.145[.]232 (ports 80 and 61135) and 193.29.104[.]84 (port 45600), providing remote command execution through cmd.exe. After analysis, a progression in the attacker’s tooling, with symbol stripping introduced in the second sample and TLS encryption and a change in C2 infrastructure observed in the third, was found.

The Beacon-trydnd1.exe implant communicates with 179.43.145[.]232 through HTTP polling, retrieves commands from HTTP response headers, and supports process injection.
In contrast, rv88b.exe functions as a Metasploit x64 shellcode loader, executing a reverse shell payload that provides remote command execution.

The following table provides a consolidated comparison of all identified executables:
| Binary | Type | Compiler | C2 | Port | TLS | Stripped | Upload |
|---|---|---|---|---|---|---|---|
| rvb80_232.exe | Go reverse shell | Go 1.20.2 | 179.43.145[.]232 | 80 | No | No | Oct 09 |
| Beacon-trydnd1.exe | HTTP C2 implant | MinGW/GCC | 179.43.145[.]232 | (HTTP) | No | No | Oct 09 |
| rvb61135.exe | Go reverse shell | Go 1.20.14 | 179.43.145[.]232 | 61135 | No | Yes | Oct 11 |
| rvb_new.exe | Go reverse shell | Go 1.26.7 | 193.29.104[.]84 | 45600 | Yes | Yes | Oct 11 |
| rv88b.exe | Metasploit loader | C (x64) | (in shellcode) | (unknown) | N/A | Yes | Oct 14 |
Attribution Assessment: Indicators Linking the Activity to DoNot APT (APT-C-35)
The investigation identified a significant potential connection between the exposed infrastructure and activity associated with DoNot APT (also tracked as APT-C-35 and SectorE02).
The third C2 IP, 31.7.61[.]8 (port 443, used in tcptest.ps1), resolves to pakdw.orchidheaven.online in VirusTotal passive DNS (opens in a new tab) as of September 18, 2025.

The same domain was referenced in a StrikeReady Labs post (opens in a new tab) discussing an India-linked APT campaign, which also identified a malicious PowerPoint document named File Copy.ppt (SHA-256: bfaec98e7fdcf93c1bce3cc592f29e098e1facef0387cdccf8b0d7e5fa87c5ee).

The analysis of the mentioned file on VirusTotal is given below:

The file File Copy.ppt behavior maps directly onto documented DoNot macro techniques:
| Behavior | File Copy.ppt | DoNot documentation |
|---|---|---|
| VBA trigger | Auto_Open() on PPT open | workbook_open / document_open macros |
| Payload decode | Base64 decode at runtime | Base64 used in payload chains |
| Batch generation | Macro writes .bat to disk | pkhfg.bat, tbreah.bat released from macros |
| Scheduled task names | yfda, mxfd (random 4-letter) | schtasks-based persistence chains |
| Staging path | %PUBLIC%\Music\ | C:\Users\Public\Music\aco confirmed in QianXin Heavy Shadows report |
| Payload delivery | curl downloads twas.exe, tewsc.bat | URLDownloadToFile / HTTP delivery |
The %PUBLIC%\Music\ staging path is a specific DoNot fingerprint. The QianXin Heavy Shadows report (opens in a new tab) on recent DoNot techniques lists C:\Users\Public\Music\aco explicitly as a DoNot staging directory alongside C:\Users\Public\Videos\nota. That same report confirms DoNot's use of macro-released batch files running schtasks commands, matching the yfda/mxfd task creation in the PPT lure.
Pakistan nuclear and energy sector targeting is consistent with DoNot's documented focus on South Asian government and defense organizations, including prior Pakistani campaigns documented by Rewterz (opens in a new tab) (APT-C-35 targeting Pakistani official organizations) and Cyble (opens in a new tab) (DoNot targeting Pakistan's defense manufacturing sector).
These connections strongly pointed to APT DoNot Group.
Conclusion
The operation follows a straightforward playbook once initial access was achieved on the ELECTRICAL account.
First, environment checks. tp.bat verifies PowerShell execution and retrieves the username and PS version. tcptest.ps1 confirms which C2 endpoints are reachable. ptest.bat checks that C:\Windows\Temp and C:\loot are writable.
Second, payload staging. go.bat uses the bundled curl to download Inveigh and the initial Inveigh wrapper from the staging server into %USERPROFILE%\Wallet\Hunrd\. This directory is used as the persistent local toolkit location throughout the campaign.
Third, shells. Multiple reverse shell paths run in parallel loops: the PowerShell variants connecting to 179.43.145[.]232:61135 and the Go binary connecting to 179.43.145[.]232:80.
Fourth, recon. recon88.bat maps the network. hunt88.bat and hunt88b.bat catalog the ELECTRICAL user's files. contenthunt.bat searches for nuclear and ICS documents.
Fifth, credential harvesting. Inveigh runs on the local network segment, poisoning LLMNR/NBNS/mDNS queries and capturing NetNTLM hashes from other machines. The October 14 addition of OGDCL domain spoofing shows the actor refining this step to be more convincing.
Sixth, lateral movement. lantest.bat tries the harvested credentials against 30 hosts on 192.168.6.0/24.
The infrastructure correlation and similarities to publicly documented DoNot APT tradecraft provide a credible basis for assessing a potential APT-C-35 connection.
MITRE ATT&CK
| Technique | ID | File |
|---|---|---|
| PowerShell | T1059.001 | rev.ps1, revcmd.ps1, all inv*.ps1 |
| Web Protocols | T1071.001 | Beacon-trydnd1.exe, rvb80_232.exe |
| System Information Discovery | T1082 | tp.bat |
| Query Registry | T1012 | hunt88.bat (MountPoints2) |
| Peripheral Device Discovery | T1120 | hunt88.bat (USB mount points) |
| LLMNR/NBT-NS Poisoning | T1557.001 | All Inveigh scripts and wrappers |
| SMB/Windows Admin Shares | T1021.002 | lantest.bat |
| File and Directory Discovery | T1083 | hunt88b.bat, contenthunt.bat |
| Credentials in Files | T1552.001 | ad_pwd.txt |
| Ingress Tool Transfer | T1105 | go.bat, run115.bat (curl + certutil) |
| Process Injection | T1055 | Beacon-trydnd1.exe |
| Masquerading | T1036 | invgo2.bat, tinv2.bat, tinv3.bat (OGDCL spoof) |
| Data Staged: Local Data Staging | T1074.001 | C:\loot, C:\Windows\Temp*.txt |
Indicators of Compromise
Network
| Indicator | Port | Role |
|---|---|---|
193.29.104[.]84 | 8099 | Open directory / staging server |
193.29.104[.]84 | 45600 | Reverse shell listener (rev106.ps1) |
179.43.145[.]232 | 61135 | Primary C2 (PowerShell shells + rvb61135.exe) |
179.43.145[.]232 | 80 | Go reverse shell C2 (rvb80_232.exe) |
31.7.61[.]8 | 443 | Third C2 (tcptest.ps1) |
pakdw.orchidheaven[.]online | - | Attribution Link |
Host Artifacts
| Path | Description |
|---|---|
%USERPROFILE%\Wallet\Hunrd\ | Actor toolkit staging directory |
C:\loot | Data collection directory on victim |
C:\Windows\Temp\Inveigh.ps1 | Cached Inveigh script |
C:\Windows\Temp\rv88b.exe | Reverse shell binary (Oct 14 variant) |
C:\Users\Public\Videos\rvb61135.exe | Reverse shell binary (Oct 11 variant) |
C:\Windows\Temp\recon88.txt | Network recon output |
C:\Windows\Temp\hunt88.txt | Keyword search output |
C:\Windows\Temp\hunt88b.txt | File listing output |
C:\Windows\Temp\contenthunt.txt | Document keyword hits |
C:\Windows\Temp\lantest.txt | Lateral movement attempt log |
C:\inv\console.txt | Inveigh output |
C:\inv2\console.txt | Inveigh output (alternate path) |
C:\inveigh_console.txt | Inveigh output (alternate path) |
C:\inv12pid.txt | PID of hidden Inveigh process |
USERDOMAIN=OGDCL | Domain spoof in Inveigh wrappers |
File Hashes (SHA-256)
| Filename | SHA-256 | First Seen |
|---|---|---|
| Beacon-trydnd1.exe | 393bc7084ac943861135a222c32f720df4e4fbb73ac0cfb2a6cf4ab67282f7d2 | 2026-10-09 |
| Inveigh.ps1 | cc7dd1d68dc3cc41f385afd000a516145cee2284b2526ee79dfd5e72278e2a23 | 2026-10-09 |
| Inveigh_pub.ps1 | cc7dd1d68dc3cc41f385afd000a516145cee2284b2526ee79dfd5e72278e2a23 | 2026-10-09 |
| ad_pwd.txt | 8126be8d793c4b1c2f377e056a19c351bbf90c3ddc1b180b041e0a073256cebc | 2026-10-10 |
| contenthunt.bat | 2bec79043f55175f632fc8760c53a722357eec52fc3b37181237287f2b55d184 | 2026-10-09 |
| curl_x64.exe | 9c500cfe5fec24ea0cd06e18b1034dc3809233954976d3a29937d4719d139d27 | 2026-10-09 |
| curl_x86.exe | 78dbe1fbbc7e5f51fa385be08bb679251e46b43be690fbc49c412d9d4f647a10 | 2026-10-09 |
| go.bat | 23817da7a93a1ebae204f86438842e0a9a4e72ba25fad2a992ef03ce23b916e5 | 2026-10-09 |
| go2.bat | 90bc7e727088ac3f54b5741e950e183ed33042612d9300c351956c453f58ed5a | 2026-10-09 |
| hunrdloop.bat | e5f58614d9fef5609e02dcc3a7b03610a5e566e55ca2dcbbc0f21e99420e3b58 | 2026-10-14 |
| hunt88.bat | 0c2e135c9d782af2c15031628d408e5585d1d63c4a059c5b92c7a340e2c7dc4b | 2026-10-09 |
| hunt88b.bat | 8fdafa606326b1d53c4ffff9414050064b0318087e6154af059ad9720c5233fb | 2026-10-09 |
| inv10.ps1 | 96c962abe22d2ab3f74698070ad9210ffab2c684be5be5e817ee9886db7fbd6b | 2026-10-09 |
| inv12.ps1 | 40b9dfd4beaf3b9f3922584e80ef77dc2274e707f27031104ac22a7d74d12778 | 2026-10-09 |
| inv13.ps1 | 8e9cfd427efc7df647e4cd0f3cff6b51f8ec0a9b41d6de073b8d77a55a2883bb | 2026-10-09 |
| inv3.ps1 | 701387d51eb1daef68a39b1964c05a8133295f540286690dee482ecd62fcf2ce | 2026-10-09 |
| inv4.ps1 | db56d38f075746d92f37da5445b486af5f720b934ba41733e087ba9d540cdc08 | 2026-10-09 |
| inv6.ps1 | 8e9cfd427efc7df647e4cd0f3cff6b51f8ec0a9b41d6de073b8d77a55a2883bb | 2026-10-09 |
| inv7.ps1 | d591126dc7d844cc01dc500a498b48a1387e528a6ed7dd7d8fba27f2cf72a251 | 2026-10-09 |
| inv8.ps1 | a5f78bf5056c43d03cbdd30039a6be51158701ec92abe8888b38a3e622442d42 | 2026-10-09 |
| inv9.ps1 | f00976def17340f329a4f1b443a344ebf7326965481895f9269553240f3f0f07 | 2026-10-09 |
| invdbg.bat | 5bc32f94ab1ddb6e71fab3d0d4ecc39b88e8048e1116b322589bfaaa6453ac60 | 2026-10-09 |
| inveigh.bat | 8b7cc7fa0c1d587f49b356f598f9c64ac67b346c1f28aac7ceeeb44c22417358 | 2026-10-09 |
| invgo.bat | 59a65879e97a3110d6c17b5837901b1d55f273a76974b5785f3840a8bcbf49b8 | 2026-10-14 |
| invgo2.bat | ed264ed0a89ae2050a1fc90b6990469a18dba642eeacc3ff421dbd9ebda77863 | 2026-10-14 |
| invrun.bat | b9c84474f87a0ee06bfee8967b1e89e2016ff70fde26b695496c505ada16d26a | 2026-10-14 |
| invrun.ps1 | 114c1b82ddf8632a09932e6522ea3fa65ab082accc9a62b3d69d74be39c00cdb | 2026-10-09 |
| invtest.bat | 0175c1b2c3fb7400e2aaa78a60fcc24741d0cfbddff06a7adb3e895ae578e369 | 2026-10-09 |
| invtry.bat | ac5994d0c962815e5837de7e8a4a5bd903c7f937298d0f0e864b791f2c4f7fd3 | 2026-10-09 |
| lantest.bat | 0f3b433672ca747273c03572c296e32715e49ff8049a124304752740144ff6fb | 2026-10-09 |
| ptest.bat | 6061c4214407f6ad89825cacb7db5c518dc99b1b7306d45bd4ead8ef8a48bc7a | 2026-10-09 |
| recon88.bat | c04761d9d1491e7cc6fdde4893a8c189a55a831f9417edb9dbddbc1ca705d7a7 | 2026-10-09 |
| rev.ps1 | 1c9706602a5edec07943ef8f1a6077f7a82186e5870db82cf70ad33fb9f62f61 | 2026-10-09 |
| rev106.ps1 | bd6735f902dbf4483aa557cd1f535c984e530b3ec7ba8d638cd6234c77ec1222 | 2026-10-11 |
| revcmd.ps1 | dbbd28a151e0ded943dfcd89ad8ccdcc82b9624420cfc8026341fd438eee6eeb | 2026-10-09 |
| revloop.bat | f69b79d19182843048bb97877429a6f8729d902cb3eec9c9ff0efc1e007bb466 | 2026-10-09 |
| run115.bat | 3a28d424ef15812f47817de93dc01b1e973ee0b7a06c6af099c79a04acf827fd | 2026-10-11 |
| rv88b.bat | 608c6ef36e3bc504750b18df8aa4f5b18be97276cc81dd9c82afccbf9f9fbc66 | 2026-10-14 |
| rv88b.exe | a9c3d5b4a8e9458b12305b1eb7df4c2087d0a0697b904cddcd22282ae613b228 | 2026-10-14 |
| rvb61135.exe | 40b3fd6b7f355d9186840337d3fbea7a130cb60d556c71bfac242fbadad76bcf | 2026-10-11 |
| rvb80_232.exe | 7b3570b9c01b40a840d16ce5639988607b86bb4550b781a384a9ed9907d83df2 | 2026-10-09 |
| rvb_new.exe | 00ea396ca1d9ac288701449748a28d30a2d180dfd3c2a8e3ea2d76b6232b949e | 2026-10-11 |
| rvbloop.bat | 14ea9d7f141d9dfbd857bfc12eed4609d7258e9a6035ccf002ad9d82940d2e74 | 2026-10-09 |
| t.ps1 | 09ef5d350ee8521fa7b123752a0475efa364623ad5b37cbf76cd0e2d987b8ad2 | 2026-10-11 |
| tcptest.ps1 | 501128d49fe306cead27cefc69060aafdfaf68c355a58a7f3b53753843d71705 | 2026-10-09 |
| tinv2.bat | 22d38a4d2026c0628c369f4c0915104b3117db84ee03f8ff20863a67718e4711 | 2026-10-14 |
| tinv3.bat | 71779722c204a8847076813b1cccf6c4fad2c6fc2c684e5e74e31a487872a073 | 2026-10-14 |
| tp.bat | 88bb72a9a27268ecf6f81b671f7bd6d66202370bf212d9948c9185bba3bc80a9 | 2026-10-09 |
Published by @volrant136
Related research
- Threat Research

From JBRJ to JUCEC: Exposed Infrastructure Reveals a Broad Brazilian Government Intrusion Campaign
Hunt.io Attack Capture identified three exposed directories on a Malaysian VPS containing tooling and evidence linked to multiple Brazilian public-sector targets. The recovered material reveals a confirmed compromise of Brazil's Jardim Botânico do Rio de Janeiro, an extensive intrusion toolkit targeting Ceará's state Board of Trade, credential and session harvesting, persistence mechanisms, and a staged Linux kernel privilege-escalation exploit.
34 minutes to read - Threat Research

One Host, Six Operations: How Two Open Directories Exposed a Multi-Target Campaign
Two open directories on a single Singapore host exposed the working files behind six separate operations. The recovered data shows a mix of LLM gateway fraud, government and military reconnaissance, credential spraying, SQL injection attempts, proxy infrastructure, and a confirmed compromise of a Mexican web application.
20 minutes to read - Threat Research

Nigerian and Kenyan Government Portals Targeted by Suspected Chinese-Speaking Operator in Multi-Stage Credential Harvesting Campaign
An exposed server uncovered a collection of scripts, credentials, session artifacts, and exploitation tooling targeting government portals across several countries. This investigation traces the infrastructure from DeHashed searches and WordPress testing to Java deserialization payloads and a Telegram-controlled automation framework.
17 minutes to read