
Scanner de segurança WordPress que detecta vulnerabilidades, enumera plugins/temas/usuários e verifica senhas fracas. Integra-se com a API do WPScan para dados de vulnerabilidade em tempo real.
Scanner de Segurança WordPress
Base de Dados de Vulnerabilidades WordPress do WPScan - Plugin de Segurança WordPress
Stream error in the HTTP/2 framing layer em alguns casosAo usar uma distribuição de pentest (como Kali Linux), é recomendado instalar/atualizar o wpscan através do gerenciador de pacotes se disponível.
brew install wpscanteam/tap/wpscan
O WPScan depende de gems com extensões nativas (ex.: yajl-ruby, nokogiri, ffi), portanto, uma toolchain C funcional e cabeçalhos de desenvolvimento Ruby devem estar presentes antes do gem install wpscan. Sem eles, a instalação falha com erros como Failed to build gem native extension ou make: x86_64-linux-gnu-gcc: No such file or directory (veja #1844).
sudo apt install build-essential ruby-dev
sudo dnf install @development-tools ruby-devel
sudo pacman -S base-devel ruby
sudo apk add build-base ruby-dev
xcode-select --install).Em seguida, instale a gem:
gem install wpscan
No MacOSX, se um Gem::FilePermissionError for levantado devido à Proteção de Integridade do Sistema (SIP) da Apple, instale o RVM e instale o wpscan novamente, ou execute sudo gem install -n /usr/local/bin wpscan (veja #1286)
Você pode atualizar a base de dados local usando wpscan --update
A atualização do próprio WPScan é feita via gem update wpscan ou pelo gerenciador de pacotes (isso é bastante importante para distribuições como Kali Linux: apt-get update && apt-get upgrade) dependendo de como o WPScan foi (pré)instalado
Baixe o repositório com docker pull wpscanteam/wpscan
Enumeração de nomes de utilizador
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --url https://target.tld/ --enumerate u
Enumeração de uma faixa de nomes de utilizador
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --url https://target.tld/ --enumerate u1-100
** substitua u1-100 por uma faixa à sua escolha.
A imagem inclui uma cópia da base de dados local incorporada no momento da compilação. Como os comandos de exemplo acima usam --rm, qualquer atualização da base de dados realizada durante a execução é descartada quando o contêiner é encerrado, então a próxima execução começa novamente a partir da cópia incorporada (potencialmente desatualizada).
Montar um volume nomeado em /wpscan/.cache/wpscan/db (o diretório de cache do usuário wpscan dentro do contêiner) mantém a base de dados entre execuções, então o wpscan --update só baixa novamente os arquivos cujos checksums realmente mudaram e o aviso de desatualização de 5 dias se comporta como em uma instalação local:
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --update
O volume nomeado é criado automaticamente no primeiro uso se ainda não existir.
A documentação completa do usuário pode ser encontrada aqui; https://github.com/wpscanteam/wpscan/wiki/WPScan-User-Documentation
wpscan --url blog.tld Isso irá escanear o blog usando opções padrão com um bom compromisso entre velocidade e precisão. Realiza deteção de versão, deteção de temas e descoberta de achados interessantes. Para enumerar plugins, temas, utilizadores, pastas de backup, etc., use a opção -e (ex.: -e ap para todos os plugins, -e vp para plugins vulneráveis, -e bf para pastas de backup).
Se for necessária uma abordagem mais furtiva, então wpscan --stealthy --url blog.tld pode ser usado.
Como resultado, ao usar a opção --enumerate, não se esqueça de definir o --plugins-detection adequadamente, pois seu padrão é 'passive'.
Para mais opções, abra um terminal e digite wpscan --help (se você compilou o wpscan a partir do código-fonte, deve digitar o comando fora do repositório git)
A localização da base de dados segue a Especificação do Diretório Base XDG:
~/.cache/wpscan/db (ou $XDG_CACHE_HOME/wpscan/db se definido)~/.wpscan/db (caminho legado, mantido para retrocompatibilidade)Os arquivos de tempo de execução, como o cache HTTP padrão e o cookie jar, são armazenados em $TMPDIR/wpscan quando $TMPDIR está definido. Caso contrário, eles usam o mesmo diretório de cache XDG por usuário, por exemplo ~/.cache/wpscan/cache e ~/.cache/wpscan/cookie_jar.txt. Esses padrões podem ser sobrescritos com --cache-dir e --cookie-jar.
Para migrar uma instalação existente para o caminho XDG:
mv ~/.wpscan ~/.cache/wpscan
A ferramenta CLI do WPScan usa a API da Base de Dados de Vulnerabilidades WordPress para obter dados de vulnerabilidades WordPress em tempo real. Para que o WPScan recupere os dados de vulnerabilidade, um token de API deve ser fornecido através da opção --api-token ou através de um arquivo de configuração, conforme discutido abaixo. Um token de API pode ser obtido registrando uma conta em WPScan.com.
Até 25 solicitações de API por dia são oferecidas gratuitamente, o que deve ser suficiente para escanear a maioria dos sites WordPress pelo menos uma vez por dia. Quando as 25 solicitações diárias de API forem esgotadas, o WPScan continuará funcionando normalmente, mas sem dados de vulnerabilidade.
O WPScan pode carregar todas as opções (incluindo --url) de arquivos de configuração, os seguintes locais são verificados (ordem: primeiro ao último):
$XDG_CONFIG_HOME/wpscan/scan.json (se $XDG_CONFIG_HOME estiver definido)$XDG_CONFIG_HOME/wpscan/scan.yml (se $XDG_CONFIG_HOME estiver definido)~/.config/wpscan/scan.json (se $XDG_CONFIG_HOME não estiver definido)~/.config/wpscan/scan.yml (se $XDG_CONFIG_HOME não estiver definido)~/.wpscan/scan.json~/.wpscan/scan.ymlpwd/.wpscan/scan.jsonpwd/.wpscan/scan.ymlSe esses arquivos existirem, as opções da chave cli_options serão carregadas e sobrescritas se encontradas duas vezes.
ex.:
~/.config/wpscan/scan.yml:
cli_options:
proxy: 'http://127.0.0.1:8080'
verbose: true
pwd/.wpscan/scan.yml:
cli_options:
proxy: 'socks5://127.0.0.1:9090'
url: 'http://target.tld'
Executar wpscan no diretório atual (pwd) é o mesmo que wpscan -v --proxy socks5://127.0.0.1:9090 --url http://target.tld
Outras opções de linha de comando podem ser adicionadas usando a convenção snake case. ex.:
cli_options:
user_agent: "Testing UA"
max_threads: 1
headers: "Custom-Header: aaaa; Another Header: bbb"
O recurso mencionado acima é útil para manter o token de API em um arquivo de configuração e não precisar fornecê-lo via CLI toda vez. Para fazer isso, crie o arquivo ~/.config/wpscan/scan.yml contendo o seguinte:
cli_options:
api_token: 'YOUR_API_TOKEN'
O token de API será carregado automaticamente da variável de ambiente WPSCAN_API_TOKEN se presente. Se a opção CLI --api-token também for fornecida, o valor da CLI será usado.
Se você tiver problemas de conexão com a API do WPScan, pode verificar o status do serviço em https://status.wpscan.com/. Quando ocorrerem erros de conexão com a API, o WPScan incluirá um link para a página de status na mensagem de erro.
wpscan --url https://target.tld/ --enumerate u
Enumeração de uma faixa de nomes de utilizador
wpscan --url https://target.tld/ --enumerate u1-100
** substitua u1-100 por uma faixa à sua escolha.
wpscan --url https://target.tld/ --enumerate bf
Isso irá verificar pastas de backup criadas por plugins populares de backup do WordPress. Essas pastas podem conter dados sensíveis como dumps de banco de dados, arquivos de configuração ou backups completos do site.
O software WPScan (doravante referido simplesmente como "WPScan") possui licenciamento duplo - Copyright 2011-2019 WPScan Team.
Casos que incluam a comercialização do WPScan requerem uma licença comercial, não gratuita. Caso contrário, o WPScan pode ser usado gratuitamente sob os termos estabelecidos abaixo.
1.1 "Licença" significa este documento.
1.2 "Contribuidor" significa cada indivíduo ou entidade legal que cria, contribui para a criação ou possui o WPScan.
1.3 "Equipe WPScan" significa os desenvolvedores principais do WPScan.
Uso comercial é aquele destinado a vantagem comercial ou compensação monetária.
Exemplos de casos de comercialização são:
Exemplos de casos que não requerem uma licença comercial e, portanto, se enquadram nos termos abaixo, incluem (mas não se limitam a):
Se você precisar adquirir uma licença comercial ou não tiver certeza se precisa adquirir uma licença comercial, entre em contato conosco - [email protected].
Termos e Condições de Uso Gratuito;
A redistribuição é permitida sob as seguintes condições:
A cópia é permitida desde que não entre em conflito com a cláusula de Redistribuição.
A modificação é permitida desde que não entre em conflito com a cláusula de Redistribuição.
Quaisquer Contribuições pressupõem que o Contribuidor concede à Equipe WPScan o direito ilimitado e não exclusivo de reutilizar, modificar e relicenciar o conteúdo do Contribuidor.
O WPScan é fornecido no estado em que se encontra (AS-IS) e sem qualquer suporte, atualizações ou manutenção. Suporte, atualizações e manutenção podem ser fornecidos a critério exclusivo da Equipe WPScan.
O WPScan é fornecido sob esta Licença no estado em que se encontra, sem garantia de qualquer tipo, expressa, implícita ou estatutária, incluindo, sem limitação, garantias de que o WPScan está livre de defeitos, comercializável, adequado a um propósito específico ou não infringe direitos.
Na medida permitida por lei, o WPScan é fornecido no estado em que se encontra. A Equipe WPScan nunca, e sem qualquer limite, será responsável por qualquer dano, custo, despesa ou qualquer outro pagamento incorrido como resultado das ações, falhas, bugs e/ou qualquer outra interação entre o WPScan e equipamentos finais, computadores, outros softwares ou qualquer terceiro, equipamento final, computador ou serviços.
Executar o WPScan contra sites sem consentimento mútuo prévio pode ser ilegal em seu país. A Equipe WPScan não aceita responsabilidade e não se responsabiliza por qualquer uso indevido ou dano causado pelo WPScan.
O termo "wpscan" é uma marca registrada. Esta Licença não concede o uso da marca "wpscan" ou o uso do logotipo do WPScan.