Plugin Directory

Changeset 1040048


Ignore:
Timestamp:
12/07/2014 10:47:41 PM (11 years ago)
Author:
cbergen
Message:

tagging v1.2.0

Location:
gauntlet-security
Files:
2 added
30 edited
1 copied

Legend:

Unmodified
Added
Removed
  • gauntlet-security/tags/1.2.0/README.txt

    r1014551 r1040048  
    44Tags: security, secure, vulnerability, exploit, hacks, audit, scanner, virus, gauntlet, checklist, protection
    55Requires at least: 3.4
    6 Tested up to: 4.0
    7 Stable tag: 1.1.2
     6Tested up to: 4.0.1
     7Stable tag: 1.2.0
    88License: GPLv3
    99License URI: http://www.gnu.org/licenses/gpl-3.0.html
     
    2323* Prevent code execution in the uploads directory
    2424* Block files in the includes directory
     25* Prevent access to any stray files which could be useful to attackers
    2526* Rename or move the content directory
    26 * Make sure your server is not vulnerable to the Shellshock Bash bug
    2727* Disable dangerous PHP functions
    2828* Disable allow_url_include and allow_url_fopen PHP flags
     
    3232* Turn off the display of PHP errors
    3333* Turn off file editing in the control panel
    34 * Set security keys in the WP-Config file
     34* Set security keys in WP-Config file
    3535* Don't advertise the WordPress version you are running
    3636* Turn off self-registration
     
    96962. All checks include a detailed explanation and instructions on how to fix the issue.
    97973. Not all issues need to be fixed. Less important tests are included for the paranoid.
     984. The plugin check will raise red flags if plugins aren't being maintained or haven't been updated
    9899
    99100== 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
    100109
    101110= 1.1.2 =
  • gauntlet-security/tags/1.2.0/admin/assets/css/admin.css

    r1014551 r1040048  
    318318    color:#DB2C64;
    319319}
    320 .critical h2, table .critical td{
    321     color:red;
     320.critical h2,
     321table .critical td *,
     322table .critical td{
     323    color:red !important;
    322324    font-weight:bold;
    323325}
  • gauntlet-security/tags/1.2.0/admin/assets/js/admin.js

    r1014551 r1040048  
    1818            */
    1919            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'],
    4646            ];
    4747            var finished_tests = 0;
  • gauntlet-security/tags/1.2.0/admin/includes/classes/gus_AdminUsername.php

    r988766 r1040048  
    88
    99    private $bad_names = array(
     10        'adm',
    1011        'admin',
     12        'admin1',
    1113        'administrator',
     14        'backup',
     15        'demo',
     16        'editor',
     17        'login',
     18        'moderator',
     19        'office',
     20        'support',
    1221        'test',
    13         'support',
    14         'adm',
     22        'tester',
     23        'user',
     24        'user2',
     25        'username',
    1526    );
    1627    private $bad_domain = '';
     
    146157        return 'Intermediate';
    147158    }
     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
     167EOD;
     168    }
     169
    148170}
  • gauntlet-security/tags/1.2.0/admin/includes/classes/gus_BmuhtMit.php

    r998103 r1040048  
    191191       
    192192        <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>
    194196       
    195197EOD;
     
    200202        return 'Advanced';
    201203    }   
     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
     211EOD;
     212    }
    202213}
  • gauntlet-security/tags/1.2.0/admin/includes/classes/gus_ExecutableUploads.php

    r998103 r1040048  
    2525        */
    2626        $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 );
    2829
    2930        if( is_array($response) && isset($response['response']['code']) )
  • gauntlet-security/tags/1.2.0/admin/includes/classes/gus_NickNames.php

    r988766 r1040048  
    9393        return <<<EOD
    9494           
    95         Change a user's display name by by editing their "Display name publicly as" setting.
     95        Change a user's display name by editing their "Display name publicly as" setting.
    9696
    9797EOD;
  • gauntlet-security/tags/1.2.0/admin/includes/classes/gus_PhpAllowUrl.php

    r998103 r1040048  
    129129        $code = <<<EOD
    130130
    131 allow_url_include = 'off'
    132 allow_url_fopen = 'off'
     131allow_url_include = off
     132allow_url_fopen = off
    133133
    134134EOD;
  • gauntlet-security/tags/1.2.0/admin/includes/classes/gus_PhpFunctions.php

    r998103 r1040048  
    99    private $dangerous = array(
    1010        'exec',
    11         'passthru',
    1211        'shell_exec',
    1312        'system',
     13        'passthru',
     14        'pcntl_exec',
    1415        'proc_open',
    15         'pcntl_exec',
    1616    );
    1717
  • gauntlet-security/tags/1.2.0/admin/includes/classes/gus_TestBase.php

    r1014551 r1040048  
    366366    }
    367367   
     368    protected function url_from_path($path)
     369    {
     370        return site_url() . '/' . str_replace(ABSPATH, '', $path);
     371    }
    368372   
    369373    protected function start_timer()
  • gauntlet-security/tags/1.2.0/admin/includes/classes/gus_TestRunner.php

    r1014551 r1040048  
    1515        $this->tests[] = array('gus_ExecutableUploads', 'Files');
    1616        $this->tests[] = array('gus_SecureIncludes', 'Files');
    17         $this->tests[] = array('gus_Shellshock', 'Files');
     17        $this->tests[] = array('gus_StrayFiles', 'Files');
    1818        $this->tests[] = array('gus_WpContentLocation', 'Files');
    1919                               
  • gauntlet-security/tags/1.2.0/admin/includes/classes/gus_UserNames.php

    r998103 r1040048  
    99    {
    1010        $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        }
    1224           
    1325        /*
    1426            Can usernames be easily enumerated? (like with WPScan)
    1527        */
    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() ;
    1830        $response = wp_remote_head( $url, $args );
     31
    1932        if(
    2033            ! is_object($response) &&
     
    3346            if($response['response']['code'] == 301)
    3447            {
    35                 $this->example_redirected_url = get_author_posts_url( $first_user_id );
     48                $this->example_redirected_url = get_author_posts_url( $test_user_id );
    3649            }
    3750        }
  • gauntlet-security/tags/1.2.0/gauntlet-security.php

    r1014551 r1040048  
    189189                $pass_reqs = false;
    190190            }
     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            }
    191197
    192198            return array(
  • gauntlet-security/trunk/README.txt

    r1014551 r1040048  
    44Tags: security, secure, vulnerability, exploit, hacks, audit, scanner, virus, gauntlet, checklist, protection
    55Requires at least: 3.4
    6 Tested up to: 4.0
    7 Stable tag: 1.1.2
     6Tested up to: 4.0.1
     7Stable tag: 1.2.0
    88License: GPLv3
    99License URI: http://www.gnu.org/licenses/gpl-3.0.html
     
    2323* Prevent code execution in the uploads directory
    2424* Block files in the includes directory
     25* Prevent access to any stray files which could be useful to attackers
    2526* Rename or move the content directory
    26 * Make sure your server is not vulnerable to the Shellshock Bash bug
    2727* Disable dangerous PHP functions
    2828* Disable allow_url_include and allow_url_fopen PHP flags
     
    3232* Turn off the display of PHP errors
    3333* Turn off file editing in the control panel
    34 * Set security keys in the WP-Config file
     34* Set security keys in WP-Config file
    3535* Don't advertise the WordPress version you are running
    3636* Turn off self-registration
     
    96962. All checks include a detailed explanation and instructions on how to fix the issue.
    97973. Not all issues need to be fixed. Less important tests are included for the paranoid.
     984. The plugin check will raise red flags if plugins aren't being maintained or haven't been updated
    9899
    99100== 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
    100109
    101110= 1.1.2 =
  • gauntlet-security/trunk/admin/assets/css/admin.css

    r1014551 r1040048  
    318318    color:#DB2C64;
    319319}
    320 .critical h2, table .critical td{
    321     color:red;
     320.critical h2,
     321table .critical td *,
     322table .critical td{
     323    color:red !important;
    322324    font-weight:bold;
    323325}
  • gauntlet-security/trunk/admin/assets/js/admin.js

    r1014551 r1040048  
    1818            */
    1919            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'],
    4646            ];
    4747            var finished_tests = 0;
  • gauntlet-security/trunk/admin/includes/classes/gus_AdminUsername.php

    r988766 r1040048  
    88
    99    private $bad_names = array(
     10        'adm',
    1011        'admin',
     12        'admin1',
    1113        'administrator',
     14        'backup',
     15        'demo',
     16        'editor',
     17        'login',
     18        'moderator',
     19        'office',
     20        'support',
    1221        'test',
    13         'support',
    14         'adm',
     22        'tester',
     23        'user',
     24        'user2',
     25        'username',
    1526    );
    1627    private $bad_domain = '';
     
    146157        return 'Intermediate';
    147158    }
     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
     167EOD;
     168    }
     169
    148170}
  • gauntlet-security/trunk/admin/includes/classes/gus_BmuhtMit.php

    r998103 r1040048  
    191191       
    192192        <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>
    194196       
    195197EOD;
     
    200202        return 'Advanced';
    201203    }   
     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
     211EOD;
     212    }
    202213}
  • gauntlet-security/trunk/admin/includes/classes/gus_ExecutableUploads.php

    r998103 r1040048  
    2525        */
    2626        $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 );
    2829
    2930        if( is_array($response) && isset($response['response']['code']) )
  • gauntlet-security/trunk/admin/includes/classes/gus_NickNames.php

    r988766 r1040048  
    9393        return <<<EOD
    9494           
    95         Change a user's display name by by editing their "Display name publicly as" setting.
     95        Change a user's display name by editing their "Display name publicly as" setting.
    9696
    9797EOD;
  • gauntlet-security/trunk/admin/includes/classes/gus_PhpAllowUrl.php

    r998103 r1040048  
    129129        $code = <<<EOD
    130130
    131 allow_url_include = 'off'
    132 allow_url_fopen = 'off'
     131allow_url_include = off
     132allow_url_fopen = off
    133133
    134134EOD;
  • gauntlet-security/trunk/admin/includes/classes/gus_PhpFunctions.php

    r998103 r1040048  
    99    private $dangerous = array(
    1010        'exec',
    11         'passthru',
    1211        'shell_exec',
    1312        'system',
     13        'passthru',
     14        'pcntl_exec',
    1415        'proc_open',
    15         'pcntl_exec',
    1616    );
    1717
  • gauntlet-security/trunk/admin/includes/classes/gus_TestBase.php

    r1014551 r1040048  
    366366    }
    367367   
     368    protected function url_from_path($path)
     369    {
     370        return site_url() . '/' . str_replace(ABSPATH, '', $path);
     371    }
    368372   
    369373    protected function start_timer()
  • gauntlet-security/trunk/admin/includes/classes/gus_TestRunner.php

    r1014551 r1040048  
    1515        $this->tests[] = array('gus_ExecutableUploads', 'Files');
    1616        $this->tests[] = array('gus_SecureIncludes', 'Files');
    17         $this->tests[] = array('gus_Shellshock', 'Files');
     17        $this->tests[] = array('gus_StrayFiles', 'Files');
    1818        $this->tests[] = array('gus_WpContentLocation', 'Files');
    1919                               
  • gauntlet-security/trunk/admin/includes/classes/gus_UserNames.php

    r998103 r1040048  
    99    {
    1010        $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        }
    1224           
    1325        /*
    1426            Can usernames be easily enumerated? (like with WPScan)
    1527        */
    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() ;
    1830        $response = wp_remote_head( $url, $args );
     31
    1932        if(
    2033            ! is_object($response) &&
     
    3346            if($response['response']['code'] == 301)
    3447            {
    35                 $this->example_redirected_url = get_author_posts_url( $first_user_id );
     48                $this->example_redirected_url = get_author_posts_url( $test_user_id );
    3649            }
    3750        }
  • gauntlet-security/trunk/gauntlet-security.php

    r1014551 r1040048  
    189189                $pass_reqs = false;
    190190            }
     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            }
    191197
    192198            return array(
Note: See TracChangeset for help on using the changeset viewer.