===취미 세상 : 공부===/칼리리눅스

wpscan - wordpress 워드프레스 취약점 정보 수집 도구

개미민또 2023. 3. 3. 15:35
반응형

wpscan은 단어에서 대충 짐작할 수 있듯, wordpress scan의 줄임말이다.

wpscan

워드프레스는 워낙 유명하여, 그 구성 혹은 쉽게 홈페이지 만들기 등 워드프레스에 대해

너무나 많은 책들도 시중에서 구할 수 있음이다. 

사용자가 많으니 워드프레스로 구성된 웹서비스는 쉽게 공격 표적이 된다.

wpscan 홈페이지에서는 워드프레스 버전에 따른 취약점, 플러그인에 대한 취약점 등등

세부적으로 파악을 해주고 있으니, 

워드프레스로 웹을 운영 중이라면 많은 참고가 될 것이다.

 

WPScan: WordPress Security

A WordPress vulnerability database for WordPress core security vulnerabilities, plugin vulnerabilities and theme vulnerabilities.

wpscan.com

 


칼리리눅스에서 wpscan 에 대해 사용 전 기본 옵션을 본다.

◎ wpscan 기본 옵션

Usage: wpscan [options]
        --url URL                                    The URL of the blog to scan
                                                           Allowed Protocols: http, https
                                                          Default Protocol if none provided: http
                                                          This option is mandatory unless update or help or hh or version is/are supplied
    -h, --help                                        Display the simple help and exit
        --hh                                            Display the full help and exit
        --version                                    Display the version and exit
    -v, --verbose                                  Verbose mode
        --[no-]banner                             Whether or not to display the banner
                                                          Default: true
    -o, --output FILE                            Output to FILE
    -f, --format FORMAT                      Output results in the format supplied
                                                           Available choices: cli, json, cli-no-colour, cli-no-color
        --detection-mode MODE            Default: mixed
                                                           Available choices: mixed, passive, aggressive
        --user-agent, --ua VALUE
        --random-user-agent, --rua        Use a random user-agent for each scan
        --http-auth login:password
    -t, --max-threads VALUE                The max threads to use
                                                            Default: 5
        --throttle MilliSeconds                 Milliseconds to wait before doing another web request.
                                                            If used, the max threads will be set to 1.
        --request-timeout SECONDS                  The request timeout in seconds
                                                                        Default: 60
        --connect-timeout SECONDS                 The connection timeout in seconds
                                                                        Default: 30
        --disable-tls-checks                                 Disables SSL/TLS certificate verification, and downgrade to
                                                                        TLS1.0+ (requires cURL 7.66 for the latter)
        --proxy protocol://IP:port                Supported protocols depend on the cURL installed
        --proxy-auth login:password
        --cookie-string COOKIE                    Cookie string to use in requests, format: cookie1=value1[; cookie2=value2]
        --cookie-jar FILE-PATH                     File to read and write cookies
                                                               Default: /tmp/wpscan/cookie_jar.txt

        --force                                             Do not check if the target is running WordPress or returns a 403
        --[no-]update                                       Whether or not to update the Database
        --api-token TOKEN                         The WPScan API Token to display vulnerability data, available 
                                                                 at https://wpscan.com/profile


        --wp-content-dir DIR                      The wp-content directory if custom or not detected, such as "wp-content"
        --wp-plugins-dir DIR                      The plugins directory if custom or not detected, such as "wp-content/plugins"

    -e, --enumerate [OPTS]                        Enumeration Process
                                                  Available Choices:
                                                   vp   Vulnerable plugins
                                                   ap   All plugins
                                                   p    Popular plugins
                                                   vt   Vulnerable themes
                                                   at   All themes
                                                   t    Popular themes
                                                   tt   Timthumbs
                                                   cb   Config backups
                                                   dbe  Db exports
                                                   u    User IDs range. e.g: u1-5
                                                        Range separator to use: '-'
                                                        Value if no argument supplied: 1-10
                                                   m    Media IDs range. e.g m1-15
                                                        Note: Permalink setting must be set to "Plain" for those to be detected
                                                        Range separator to use: '-'
                                                        Value if no argument supplied: 1-100
                                                  Separator to use between the values: ','
                                                  Default: All Plugins, Config Backups
                                                  Value if no argument supplied: vp,vt,tt,cb,dbe,u,m
                                                  Incompatible choices (only one of each group/s can be used):
                                                   - vp, ap, p
                                                   - vt, at, t
        --exclude-content-based REGEXP_OR_STRING  Exclude 
                                                               all responses matching the Regexp (case insensitive) during parts of the enumeration.
                                                               Both the headers and body are checked. Regexp delimiters are not required.

        --plugins-detection MODE                  Use the supplied mode to enumerate Plugins.
                                                                   Default: passive
                                                                   Available choices: mixed, passive, aggressive

        --plugins-version-detection MODE          Use the supplied mode to check plugins' versions.
                                                                        Default: mixed
                                                                        Available choices: mixed, passive, aggressive

        --exclude-usernames REGEXP_OR_STRING      Exclude usernames matching the Regexp/string (case insensitive). 
                                                                                      Regexp delimiters are not required.

    -P, --passwords FILE-PATH                     List of passwords to use during the password attack.
                                                                     If no --username/s option supplied, user enumeration will be run.

    -U, --usernames LIST                          List of usernames to use during the password attack.
                                                                Examples: 'a1', 'a1,a2,a3', '/tmp/a.txt'

        --multicall-max-passwords MAX_PWD         Maximum number of passwords to send by request with XMLRPC multicall
                                                                              Default: 500

        --password-attack ATTACK                  Force the supplied attack to be used rather than automatically determining one.
                                                                     Available choices: wp-login, xmlrpc, xmlrpc-multicall

        --login-uri URI                           The URI of the login page if different from /wp-login.php

        --stealthy                                Alias for --random-user-agent --detection-mode passive --plugins-version-detection passive


[!] To see full list of options use --hh.

이것저것 옵션이 다양하다. 

반응형

간단하게 사용을 해본다면,

wpscan --url [TARGET] --enumerate p

워드프레스를 사용하는 웹 서비스가 어떤 플러그인을 사용하는지까지 나열하게 하는 명령


이렇게 wpscan 사용을 하면 아주아주 기본적인 내용이 표시 될 수 있다.

아래처럼,

wpscan --url [TARGET] --enumerate p 결과 1

먼저 서버 정보, robots.txt 위치, XML-RPC 위치 그리고 readme 위치를 보여준다.

또 더 보자,

wpscan --url [TARGET] --enumerate p 결과 2

wp-cron의 위치, 현재 워드프레스 버전 6.1.1을 확인해준다. 또한 현재 워드프레스에서 사용 중인 테마 정보까지.

각각의 정보들을 wpscan 홈페이지에서 어떤 취약점 정보가 있는지 확인해 볼 수 있다.

이렇게 말이다.

워드프레스 6.1.1 취약점 정보

테마 정보들도 마찬가지.

또한, 목표 중 하나였던 플러그인 정보도 포함한다.

wpscan --url [TARGET] --enumerate p 결과 3


사용에 전혀 어렵지 않은 도구.

따라서, 내 워드프레스도 전혀 어렵지 않게 외부에서 파악 될 수 있음을 고려하면 된다.

명령어 한 줄로 워드프레스 정보를 수집하는 도구, wpscan이었다.

 

반응형