Posts tagged: #reverse-shell
A plain-English explanation of how reverse shells work, why they beat bind shells through firewalls, and how a reverse shell generator saves you from copy-paste mistakes.
The common bash reverse shell one-liners explained line by line, why they need bash (not sh), and how to fall back when /dev/tcp is missing.
How the python reverse shell one-liner works with socket and pty, why the python/python3 split breaks payloads, and a version-agnostic fallback.
How the netcat reverse shell works, why most modern nc builds dropped the -e flag, and the mkfifo and ncat alternatives that replace it.
How a PHP reverse shell works on a compromised web app, the fsockopen and proc_open variants, and what to do when exec is disabled.
How reverse shells work on Windows targets, the PowerShell TCPClient one-liner versus dropping nc.exe, and how to get an interactive console.
A quick-reference reverse shell cheat sheet — bash, python, php, powershell and netcat one-liners, the listener to catch them, and the TTY upgrade — with links to the full guide for each.
How to generate a reverse shell with msfvenom, the difference between staged and stageless payloads, and why your nc listener catches one but not the other.
How a socat reverse shell gives you a fully interactive PTY out of the box, plus the encrypted OPENSSL variant — when socat is available on the target.
The difference between a bind shell and a reverse shell, why reverse shells win through firewalls and NAT, and the cases where a bind shell is still the right call.
How a Local File Inclusion becomes code execution and then a reverse shell — via log poisoning, PHP session files, and php:// wrappers — in authorized web testing.
The difference between staged and stageless reverse shell payloads, why it changes which listener you need, and how to choose between them.
How outbound firewall rules decide whether a reverse shell connects, how to test egress before you fire, and why 443 and 80 are the default ports.
A practical workflow for generating reverse shell snippets in authorized labs, with sane listener setup, network checks, and failure triage.
How a ruby reverse shell works with the socket library, the common one-liners, and when Ruby is the interpreter you can count on.
How the perl reverse shell works with the Socket module, the classic one-liner, and why Perl is the fallback on legacy Unix systems.
Reverse shells usually fail because of routing, egress filtering, listeners, quoting, or missing runtimes. Here is how to debug them cleanly.
Reverse shell detection needs process, network, and context. Single-rule matching misses quiet callbacks and floods teams with false positives.
The difference between a webshell and a reverse shell, why testers often use both, and how each one looks to a defender.
How to pick a listener for authorized reverse shell testing, from netcat to ncat and socat, without overbuilding the lab.
How a Node.js reverse shell works by piping a spawned shell through a TCP socket, the one-liner, and when Node is the interpreter you can rely on.
How a Java reverse shell works via Runtime.exec wrapping a bash payload, the pure-socket alternative, and why it shows up in JSP and deserialization bugs.
Reverse shell upgrades fix PTY, signals, line editing, and job control. Here is what matters in authorized testing.
How a gawk reverse shell uses the /inet/tcp special file, the one-liner, and why it only works with GNU awk — a true last-resort payload.
PowerShell reverse shell testing comes with execution policy, logging, AMSI, quoting, and noisy process telemetry.
When you have SSH access, a reverse SSH tunnel (ssh -R) gives a stable, encrypted, fully interactive session — and a way to pivot — that beats a fragile netcat shell.
How a Groovy reverse shell works on the JVM, the one used against the Jenkins script console, and where else Groovy execution shows up.
Container reverse shell testing fails when operators forget network namespaces, minimal images, missing tools, and Kubernetes policy.
How reverse shells work on macOS targets — which interpreters ship, why the default shell is zsh, and the SIP/TCC realities of authorized Mac testing.
How PowerShell -EncodedCommand works, why testers base64-encode reverse shell payloads to dodge quoting, and the UTF-16LE encoding mistake that breaks it.
Payload choice should follow target runtime, shell availability, egress path, quoting context, and evidence needs.
A repeatable reverse shell workflow for exams and CTFs: listener first, enumerate interpreters, pick the payload, catch on 443, upgrade the TTY, and note it for the report.