Changeset 1040048
- Timestamp:
- 12/07/2014 10:47:41 PM (11 years ago)
- Location:
- gauntlet-security
- Files:
-
- 2 added
- 30 edited
- 1 copied
-
assets/screenshot-1.png (modified) (previous)
-
assets/screenshot-2.png (modified) (previous)
-
assets/screenshot-3.png (modified) (previous)
-
assets/screenshot-4.png (modified) (previous)
-
tags/1.2.0 (copied) (copied from gauntlet-security/trunk)
-
tags/1.2.0/README.txt (modified) (4 diffs)
-
tags/1.2.0/admin/assets/css/admin.css (modified) (1 diff)
-
tags/1.2.0/admin/assets/js/admin.js (modified) (1 diff)
-
tags/1.2.0/admin/includes/classes/gus_AdminUsername.php (modified) (2 diffs)
-
tags/1.2.0/admin/includes/classes/gus_BmuhtMit.php (modified) (2 diffs)
-
tags/1.2.0/admin/includes/classes/gus_ExecutableUploads.php (modified) (1 diff)
-
tags/1.2.0/admin/includes/classes/gus_NickNames.php (modified) (1 diff)
-
tags/1.2.0/admin/includes/classes/gus_PhpAllowUrl.php (modified) (1 diff)
-
tags/1.2.0/admin/includes/classes/gus_PhpFunctions.php (modified) (1 diff)
-
tags/1.2.0/admin/includes/classes/gus_StrayFiles.php (added)
-
tags/1.2.0/admin/includes/classes/gus_TestBase.php (modified) (1 diff)
-
tags/1.2.0/admin/includes/classes/gus_TestRunner.php (modified) (1 diff)
-
tags/1.2.0/admin/includes/classes/gus_UserNames.php (modified) (2 diffs)
-
tags/1.2.0/gauntlet-security.php (modified) (1 diff)
-
trunk/README.txt (modified) (4 diffs)
-
trunk/admin/assets/css/admin.css (modified) (1 diff)
-
trunk/admin/assets/js/admin.js (modified) (1 diff)
-
trunk/admin/includes/classes/gus_AdminUsername.php (modified) (2 diffs)
-
trunk/admin/includes/classes/gus_BmuhtMit.php (modified) (2 diffs)
-
trunk/admin/includes/classes/gus_ExecutableUploads.php (modified) (1 diff)
-
trunk/admin/includes/classes/gus_NickNames.php (modified) (1 diff)
-
trunk/admin/includes/classes/gus_PhpAllowUrl.php (modified) (1 diff)
-
trunk/admin/includes/classes/gus_PhpFunctions.php (modified) (1 diff)
-
trunk/admin/includes/classes/gus_StrayFiles.php (added)
-
trunk/admin/includes/classes/gus_TestBase.php (modified) (1 diff)
-
trunk/admin/includes/classes/gus_TestRunner.php (modified) (1 diff)
-
trunk/admin/includes/classes/gus_UserNames.php (modified) (2 diffs)
-
trunk/gauntlet-security.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
gauntlet-security/tags/1.2.0/README.txt
r1014551 r1040048 4 4 Tags: security, secure, vulnerability, exploit, hacks, audit, scanner, virus, gauntlet, checklist, protection 5 5 Requires at least: 3.4 6 Tested up to: 4.0 7 Stable tag: 1. 1.26 Tested up to: 4.0.1 7 Stable tag: 1.2.0 8 8 License: GPLv3 9 9 License URI: http://www.gnu.org/licenses/gpl-3.0.html … … 23 23 * Prevent code execution in the uploads directory 24 24 * Block files in the includes directory 25 * Prevent access to any stray files which could be useful to attackers 25 26 * Rename or move the content directory 26 * Make sure your server is not vulnerable to the Shellshock Bash bug27 27 * Disable dangerous PHP functions 28 28 * Disable allow_url_include and allow_url_fopen PHP flags … … 32 32 * Turn off the display of PHP errors 33 33 * Turn off file editing in the control panel 34 * Set security keys in theWP-Config file34 * Set security keys in WP-Config file 35 35 * Don't advertise the WordPress version you are running 36 36 * Turn off self-registration … … 96 96 2. All checks include a detailed explanation and instructions on how to fix the issue. 97 97 3. Not all issues need to be fixed. Less important tests are included for the paranoid. 98 4. The plugin check will raise red flags if plugins aren't being maintained or haven't been updated 98 99 99 100 == Changelog == 101 102 = 1.2.0 = 103 * New test: Prevent access to stray non-Wordpress files which could be useful to attackers 104 * Remove test: Shellshock test (not an ongoing concern) 105 * Enhancement: User enumeration test checks users with posts 106 * Enhancement: Increase reliabilty if site is using a self-signed TLS certificate 107 * Enhancement: Added common usernames (thanks to Viktor Szépe & Simon Fredsted) 108 * Enhancement: Allowance for overriding requirements check 100 109 101 110 = 1.1.2 = -
gauntlet-security/tags/1.2.0/admin/assets/css/admin.css
r1014551 r1040048 318 318 color:#DB2C64; 319 319 } 320 .critical h2, table .critical td{ 321 color:red; 320 .critical h2, 321 table .critical td *, 322 table .critical td{ 323 color:red !important; 322 324 font-weight:bold; 323 325 } -
gauntlet-security/tags/1.2.0/admin/assets/js/admin.js
r1014551 r1040048 18 18 */ 19 19 var tests = [ 20 ['gus_FilePermissions', 'slow'],21 ['gus_DirectoryIndexing', 2],22 ['gus_ExecutableUploads', 2],23 ['gus_SecureIncludes', 2],24 ['gus_Shellshock', 'slow'],25 ['gus_WpContentLocation', 2],26 ['gus_PhpFunctions', 2],27 ['gus_PhpAllowUrl', 2],28 ['gus_DbPassword', 2],29 ['gus_WpTable', 2],30 ['gus_WpVersion', 2],31 ['gus_PhpDisplayErrors', 2],32 ['gus_FileEditing', 2],33 ['gus_KeysAndSalts', 2],34 ['gus_WpGenerator', 2],35 ['gus_AnyoneCanRegister', 2],36 ['gus_SslAdmin', 2],37 ['gus_PluginAudit', 'slow'],38 ['gus_UnusedThemes', 2],39 ['gus_BmuhtMit', 'slow'],40 ['gus_AdminUsername', 2],41 ['gus_CommonPasswords', 'slow'],42 ['gus_UserIdOne', 'slow'],43 ['gus_AdminCount', 'slow'],44 ['gus_NickNames', 'slow'],45 ['gus_UserNames', 'slow'] 20 ['gus_FilePermissions', 'slow'], 21 ['gus_DirectoryIndexing', 2], 22 ['gus_ExecutableUploads', 2], 23 ['gus_SecureIncludes', 2], 24 ['gus_StrayFiles', 'slow'], 25 ['gus_WpContentLocation', 2], 26 ['gus_PhpFunctions', 2], 27 ['gus_PhpAllowUrl', 2], 28 ['gus_DbPassword', 2], 29 ['gus_WpTable', 2], 30 ['gus_WpVersion', 2], 31 ['gus_PhpDisplayErrors', 2], 32 ['gus_FileEditing', 2], 33 ['gus_KeysAndSalts', 2], 34 ['gus_WpGenerator', 2], 35 ['gus_AnyoneCanRegister', 2], 36 ['gus_SslAdmin', 2], 37 ['gus_PluginAudit', 'slow'], 38 ['gus_UnusedThemes', 2], 39 ['gus_BmuhtMit', 'slow'], 40 ['gus_AdminUsername', 2], 41 ['gus_CommonPasswords', 'slow'], 42 ['gus_UserIdOne', 'slow'], 43 ['gus_AdminCount', 'slow'], 44 ['gus_NickNames', 'slow'], 45 ['gus_UserNames', 'slow'], 46 46 ]; 47 47 var finished_tests = 0; -
gauntlet-security/tags/1.2.0/admin/includes/classes/gus_AdminUsername.php
r988766 r1040048 8 8 9 9 private $bad_names = array( 10 'adm', 10 11 'admin', 12 'admin1', 11 13 'administrator', 14 'backup', 15 'demo', 16 'editor', 17 'login', 18 'moderator', 19 'office', 20 'support', 12 21 'test', 13 'support', 14 'adm', 22 'tester', 23 'user', 24 'user2', 25 'username', 15 26 ); 16 27 private $bad_domain = ''; … … 146 157 return 'Intermediate'; 147 158 } 159 160 protected function references() 161 { 162 return <<<EOD 163 164 <a href='http://simonfredsted.com/1260'>Simon Fredsted: 300,000 login attempts and 5 observations</a><br> 165 <a href='https://github.com/szepeviktor/wordpress-plugin-construction/blob/master/wordpress-fail2ban/block-bad-requests/wp-login-bad-request.inc.php'>Viktor Szépe: Block Bad Requests plugin</a><br> 166 167 EOD; 168 } 169 148 170 } -
gauntlet-security/tags/1.2.0/admin/includes/classes/gus_BmuhtMit.php
r998103 r1040048 191 191 192 192 <p>The latest version is available here: 193 <a href='{$this->latest_url}' target='_blank'>{$this->latest_url}</a></p> 193 <a href='{$this->latest_url}' target='_blank'>{$this->latest_url}</a> 194 but keep in mind that as of September 2014, it's no longer being maintained. 195 </p> 194 196 195 197 EOD; … … 200 202 return 'Advanced'; 201 203 } 204 205 protected function references() 206 { 207 return <<<EOD 208 209 <a href='http://www.binarymoon.co.uk/2014/09/timthumb-end-life/'>Binary Moon: TimThumb is No Longer Supported or Maintained</a><br> 210 211 EOD; 212 } 202 213 } -
gauntlet-security/tags/1.2.0/admin/includes/classes/gus_ExecutableUploads.php
r998103 r1040048 25 25 */ 26 26 $full_url = $upload_dir['baseurl'] . '/' . $test_string . '.php'; 27 $response = wp_remote_request( $full_url ); 27 $args = (is_ssl()) ? array('sslverify' => false) : array() ; 28 $response = wp_remote_request( $full_url, $args ); 28 29 29 30 if( is_array($response) && isset($response['response']['code']) ) -
gauntlet-security/tags/1.2.0/admin/includes/classes/gus_NickNames.php
r988766 r1040048 93 93 return <<<EOD 94 94 95 Change a user's display name by byediting their "Display name publicly as" setting.95 Change a user's display name by editing their "Display name publicly as" setting. 96 96 97 97 EOD; -
gauntlet-security/tags/1.2.0/admin/includes/classes/gus_PhpAllowUrl.php
r998103 r1040048 129 129 $code = <<<EOD 130 130 131 allow_url_include = 'off'132 allow_url_fopen = 'off'131 allow_url_include = off 132 allow_url_fopen = off 133 133 134 134 EOD; -
gauntlet-security/tags/1.2.0/admin/includes/classes/gus_PhpFunctions.php
r998103 r1040048 9 9 private $dangerous = array( 10 10 'exec', 11 'passthru',12 11 'shell_exec', 13 12 'system', 13 'passthru', 14 'pcntl_exec', 14 15 'proc_open', 15 'pcntl_exec',16 16 ); 17 17 -
gauntlet-security/tags/1.2.0/admin/includes/classes/gus_TestBase.php
r1014551 r1040048 366 366 } 367 367 368 protected function url_from_path($path) 369 { 370 return site_url() . '/' . str_replace(ABSPATH, '', $path); 371 } 368 372 369 373 protected function start_timer() -
gauntlet-security/tags/1.2.0/admin/includes/classes/gus_TestRunner.php
r1014551 r1040048 15 15 $this->tests[] = array('gus_ExecutableUploads', 'Files'); 16 16 $this->tests[] = array('gus_SecureIncludes', 'Files'); 17 $this->tests[] = array('gus_S hellshock', 'Files');17 $this->tests[] = array('gus_StrayFiles', 'Files'); 18 18 $this->tests[] = array('gus_WpContentLocation', 'Files'); 19 19 -
gauntlet-security/tags/1.2.0/admin/includes/classes/gus_UserNames.php
r998103 r1040048 9 9 { 10 10 $users = get_users(); 11 $first_user_id = $users[0]->ID; 11 foreach($users as $u) 12 { 13 if(count_user_posts($u->ID) > 0) 14 { 15 $test_user_id = $u->ID; 16 } 17 } 18 19 if( ! isset($test_user_id) ) 20 { 21 $current_user = wp_get_current_user(); 22 $test_user_id = $current_user->ID; 23 } 12 24 13 25 /* 14 26 Can usernames be easily enumerated? (like with WPScan) 15 27 */ 16 $url = site_url() . '/?author=' . $ first_user_id;17 $args = array(); 28 $url = site_url() . '/?author=' . $test_user_id; 29 $args = (is_ssl()) ? array('sslverify' => false) : array() ; 18 30 $response = wp_remote_head( $url, $args ); 31 19 32 if( 20 33 ! is_object($response) && … … 33 46 if($response['response']['code'] == 301) 34 47 { 35 $this->example_redirected_url = get_author_posts_url( $ first_user_id );48 $this->example_redirected_url = get_author_posts_url( $test_user_id ); 36 49 } 37 50 } -
gauntlet-security/tags/1.2.0/gauntlet-security.php
r1014551 r1040048 189 189 $pass_reqs = false; 190 190 } 191 192 // Force the plugin to be enabled. GUS_FORCE_ENABLE can be set in wp-config.php 193 if ( defined( 'GUS_FORCE_ENABLE' ) && GUS_FORCE_ENABLE ) 194 { 195 $pass_reqs = true; 196 } 191 197 192 198 return array( -
gauntlet-security/trunk/README.txt
r1014551 r1040048 4 4 Tags: security, secure, vulnerability, exploit, hacks, audit, scanner, virus, gauntlet, checklist, protection 5 5 Requires at least: 3.4 6 Tested up to: 4.0 7 Stable tag: 1. 1.26 Tested up to: 4.0.1 7 Stable tag: 1.2.0 8 8 License: GPLv3 9 9 License URI: http://www.gnu.org/licenses/gpl-3.0.html … … 23 23 * Prevent code execution in the uploads directory 24 24 * Block files in the includes directory 25 * Prevent access to any stray files which could be useful to attackers 25 26 * Rename or move the content directory 26 * Make sure your server is not vulnerable to the Shellshock Bash bug27 27 * Disable dangerous PHP functions 28 28 * Disable allow_url_include and allow_url_fopen PHP flags … … 32 32 * Turn off the display of PHP errors 33 33 * Turn off file editing in the control panel 34 * Set security keys in theWP-Config file34 * Set security keys in WP-Config file 35 35 * Don't advertise the WordPress version you are running 36 36 * Turn off self-registration … … 96 96 2. All checks include a detailed explanation and instructions on how to fix the issue. 97 97 3. Not all issues need to be fixed. Less important tests are included for the paranoid. 98 4. The plugin check will raise red flags if plugins aren't being maintained or haven't been updated 98 99 99 100 == Changelog == 101 102 = 1.2.0 = 103 * New test: Prevent access to stray non-Wordpress files which could be useful to attackers 104 * Remove test: Shellshock test (not an ongoing concern) 105 * Enhancement: User enumeration test checks users with posts 106 * Enhancement: Increase reliabilty if site is using a self-signed TLS certificate 107 * Enhancement: Added common usernames (thanks to Viktor Szépe & Simon Fredsted) 108 * Enhancement: Allowance for overriding requirements check 100 109 101 110 = 1.1.2 = -
gauntlet-security/trunk/admin/assets/css/admin.css
r1014551 r1040048 318 318 color:#DB2C64; 319 319 } 320 .critical h2, table .critical td{ 321 color:red; 320 .critical h2, 321 table .critical td *, 322 table .critical td{ 323 color:red !important; 322 324 font-weight:bold; 323 325 } -
gauntlet-security/trunk/admin/assets/js/admin.js
r1014551 r1040048 18 18 */ 19 19 var tests = [ 20 ['gus_FilePermissions', 'slow'],21 ['gus_DirectoryIndexing', 2],22 ['gus_ExecutableUploads', 2],23 ['gus_SecureIncludes', 2],24 ['gus_Shellshock', 'slow'],25 ['gus_WpContentLocation', 2],26 ['gus_PhpFunctions', 2],27 ['gus_PhpAllowUrl', 2],28 ['gus_DbPassword', 2],29 ['gus_WpTable', 2],30 ['gus_WpVersion', 2],31 ['gus_PhpDisplayErrors', 2],32 ['gus_FileEditing', 2],33 ['gus_KeysAndSalts', 2],34 ['gus_WpGenerator', 2],35 ['gus_AnyoneCanRegister', 2],36 ['gus_SslAdmin', 2],37 ['gus_PluginAudit', 'slow'],38 ['gus_UnusedThemes', 2],39 ['gus_BmuhtMit', 'slow'],40 ['gus_AdminUsername', 2],41 ['gus_CommonPasswords', 'slow'],42 ['gus_UserIdOne', 'slow'],43 ['gus_AdminCount', 'slow'],44 ['gus_NickNames', 'slow'],45 ['gus_UserNames', 'slow'] 20 ['gus_FilePermissions', 'slow'], 21 ['gus_DirectoryIndexing', 2], 22 ['gus_ExecutableUploads', 2], 23 ['gus_SecureIncludes', 2], 24 ['gus_StrayFiles', 'slow'], 25 ['gus_WpContentLocation', 2], 26 ['gus_PhpFunctions', 2], 27 ['gus_PhpAllowUrl', 2], 28 ['gus_DbPassword', 2], 29 ['gus_WpTable', 2], 30 ['gus_WpVersion', 2], 31 ['gus_PhpDisplayErrors', 2], 32 ['gus_FileEditing', 2], 33 ['gus_KeysAndSalts', 2], 34 ['gus_WpGenerator', 2], 35 ['gus_AnyoneCanRegister', 2], 36 ['gus_SslAdmin', 2], 37 ['gus_PluginAudit', 'slow'], 38 ['gus_UnusedThemes', 2], 39 ['gus_BmuhtMit', 'slow'], 40 ['gus_AdminUsername', 2], 41 ['gus_CommonPasswords', 'slow'], 42 ['gus_UserIdOne', 'slow'], 43 ['gus_AdminCount', 'slow'], 44 ['gus_NickNames', 'slow'], 45 ['gus_UserNames', 'slow'], 46 46 ]; 47 47 var finished_tests = 0; -
gauntlet-security/trunk/admin/includes/classes/gus_AdminUsername.php
r988766 r1040048 8 8 9 9 private $bad_names = array( 10 'adm', 10 11 'admin', 12 'admin1', 11 13 'administrator', 14 'backup', 15 'demo', 16 'editor', 17 'login', 18 'moderator', 19 'office', 20 'support', 12 21 'test', 13 'support', 14 'adm', 22 'tester', 23 'user', 24 'user2', 25 'username', 15 26 ); 16 27 private $bad_domain = ''; … … 146 157 return 'Intermediate'; 147 158 } 159 160 protected function references() 161 { 162 return <<<EOD 163 164 <a href='http://simonfredsted.com/1260'>Simon Fredsted: 300,000 login attempts and 5 observations</a><br> 165 <a href='https://github.com/szepeviktor/wordpress-plugin-construction/blob/master/wordpress-fail2ban/block-bad-requests/wp-login-bad-request.inc.php'>Viktor Szépe: Block Bad Requests plugin</a><br> 166 167 EOD; 168 } 169 148 170 } -
gauntlet-security/trunk/admin/includes/classes/gus_BmuhtMit.php
r998103 r1040048 191 191 192 192 <p>The latest version is available here: 193 <a href='{$this->latest_url}' target='_blank'>{$this->latest_url}</a></p> 193 <a href='{$this->latest_url}' target='_blank'>{$this->latest_url}</a> 194 but keep in mind that as of September 2014, it's no longer being maintained. 195 </p> 194 196 195 197 EOD; … … 200 202 return 'Advanced'; 201 203 } 204 205 protected function references() 206 { 207 return <<<EOD 208 209 <a href='http://www.binarymoon.co.uk/2014/09/timthumb-end-life/'>Binary Moon: TimThumb is No Longer Supported or Maintained</a><br> 210 211 EOD; 212 } 202 213 } -
gauntlet-security/trunk/admin/includes/classes/gus_ExecutableUploads.php
r998103 r1040048 25 25 */ 26 26 $full_url = $upload_dir['baseurl'] . '/' . $test_string . '.php'; 27 $response = wp_remote_request( $full_url ); 27 $args = (is_ssl()) ? array('sslverify' => false) : array() ; 28 $response = wp_remote_request( $full_url, $args ); 28 29 29 30 if( is_array($response) && isset($response['response']['code']) ) -
gauntlet-security/trunk/admin/includes/classes/gus_NickNames.php
r988766 r1040048 93 93 return <<<EOD 94 94 95 Change a user's display name by byediting their "Display name publicly as" setting.95 Change a user's display name by editing their "Display name publicly as" setting. 96 96 97 97 EOD; -
gauntlet-security/trunk/admin/includes/classes/gus_PhpAllowUrl.php
r998103 r1040048 129 129 $code = <<<EOD 130 130 131 allow_url_include = 'off'132 allow_url_fopen = 'off'131 allow_url_include = off 132 allow_url_fopen = off 133 133 134 134 EOD; -
gauntlet-security/trunk/admin/includes/classes/gus_PhpFunctions.php
r998103 r1040048 9 9 private $dangerous = array( 10 10 'exec', 11 'passthru',12 11 'shell_exec', 13 12 'system', 13 'passthru', 14 'pcntl_exec', 14 15 'proc_open', 15 'pcntl_exec',16 16 ); 17 17 -
gauntlet-security/trunk/admin/includes/classes/gus_TestBase.php
r1014551 r1040048 366 366 } 367 367 368 protected function url_from_path($path) 369 { 370 return site_url() . '/' . str_replace(ABSPATH, '', $path); 371 } 368 372 369 373 protected function start_timer() -
gauntlet-security/trunk/admin/includes/classes/gus_TestRunner.php
r1014551 r1040048 15 15 $this->tests[] = array('gus_ExecutableUploads', 'Files'); 16 16 $this->tests[] = array('gus_SecureIncludes', 'Files'); 17 $this->tests[] = array('gus_S hellshock', 'Files');17 $this->tests[] = array('gus_StrayFiles', 'Files'); 18 18 $this->tests[] = array('gus_WpContentLocation', 'Files'); 19 19 -
gauntlet-security/trunk/admin/includes/classes/gus_UserNames.php
r998103 r1040048 9 9 { 10 10 $users = get_users(); 11 $first_user_id = $users[0]->ID; 11 foreach($users as $u) 12 { 13 if(count_user_posts($u->ID) > 0) 14 { 15 $test_user_id = $u->ID; 16 } 17 } 18 19 if( ! isset($test_user_id) ) 20 { 21 $current_user = wp_get_current_user(); 22 $test_user_id = $current_user->ID; 23 } 12 24 13 25 /* 14 26 Can usernames be easily enumerated? (like with WPScan) 15 27 */ 16 $url = site_url() . '/?author=' . $ first_user_id;17 $args = array(); 28 $url = site_url() . '/?author=' . $test_user_id; 29 $args = (is_ssl()) ? array('sslverify' => false) : array() ; 18 30 $response = wp_remote_head( $url, $args ); 31 19 32 if( 20 33 ! is_object($response) && … … 33 46 if($response['response']['code'] == 301) 34 47 { 35 $this->example_redirected_url = get_author_posts_url( $ first_user_id );48 $this->example_redirected_url = get_author_posts_url( $test_user_id ); 36 49 } 37 50 } -
gauntlet-security/trunk/gauntlet-security.php
r1014551 r1040048 189 189 $pass_reqs = false; 190 190 } 191 192 // Force the plugin to be enabled. GUS_FORCE_ENABLE can be set in wp-config.php 193 if ( defined( 'GUS_FORCE_ENABLE' ) && GUS_FORCE_ENABLE ) 194 { 195 $pass_reqs = true; 196 } 191 197 192 198 return array(
Note: See TracChangeset
for help on using the changeset viewer.