Scan de vulnerabilidades Wordpress com WPScan
- Gustavo Viana
- Segurança da informação
- 21 de abril de 2024
WPScan é uma ferramenta gratuita e de código aberto que busca por vulnerabilidades conhecidas e problemas de configuração em sites Wordpress. Dentre as falhas identificadas estão, por exemplo, versões desatualizadas de software, configurações inseguras, backups de arquivos de configuração e muito mais!
Lembre-se que esta é uma ferramenta automatizada e não encontrará vulnerabilidades mais complexas. Além disso, serão enviadas muitas requisições ao servidor web alvo. Por isso, tenha cautela ao executar qualquer scanner automatizado e tenha sempre a autorização para fazê-lo.
TL;DR
Uso básico enumerando usuários, timthumbs, temas e plugins vulneráveis, DB Exports e Config Backups utilizando um User-Agent aleatório:
wpscan --url https://site-exemplo.ironlinux.com.br -e vp,vt,tt,cb,dbe,u --rua -o output.txt --api-token seu-api-token-aqui
Instalação
No Kali Linux o WPScan já vem instalado, mas abaixo estão outros métodos de instalação:
- Instalar com RubyGems
- Instalar no MacOS com Homebrew
- Docker
gem install wpscan
brew install wpscanteam/tap/wpscan
OBS: Caso tenha o erro Gem::FilePermissionError devido ao SIP (System Integrity Protection), instale o RVM e instale o wpscan novamente ou simplesmente execute:
sudo gem install -n /usr/local/bin wpscan
docker pull wpscanteam/wpscan
Para executar um scan, por exemplo, enumerando usuários:
docker run -it --rm wpscanteam/wpscan --url https://site-exemplo.ironlinux.com.br --enumerate u
Atualizando o wpscan
Para atualizar o wpscan, utilize o seguinte comando:
wpscan --update
Uso básico
Para realizar um scan de vulnerabilidades com output padrão na tela, basta executar:
wpscan --url site-exemplo.ironlinux.com.br
Obtendo o API Token gratuito do wpscan
Caso você não utilize um API Token durante os seus scans, os dados de vulnerabilidade não serão gerados. O Token gratuito permite que você realize 25 requisições por dia.
Para obter seu Token gratuito, primeiramente se registre em https://wpscan.com/register/ . Depois basta acessar sua página de perfil em https://wpscan.com/profile/ e você encontrará seu API Token
Configurando o API Token do wpscan
Agora que você tem um API Token, você pode utilizá-lo de duas maneiras:
- Em todo scan realizado, adicione o API Token ao comando da seguinte maneira (OBS: Substitua seu-api-token-aqui pelo seu token):
--api-token seu-api-token-aqui
- Adicionando o API Token em seu arquivo de configuração
Ao adicionar seu API Token no arquivo de configuração ~/.wpscan/scan.yml não será mais necessário adicionar o API Token ao comando wpscan. Para isso, basta adicionar o seguinte conteúdo no arquivo em questão:
cli_options:
api_token: 'seu-api-token-aqui'
Se preferir fazer isso através do echo:
echo -e "cli_options:\n api_token: 'seu-api-token-aqui'" >> ~/.wpscan/scan.yml
Realizando um scan completo com o API Token
Agora que você já tem um API Token, pode realizar um scan completo, buscando por vulnerabilidades no site. Recomendamos o uso da seguinte maneira:
wpscan --url https://site-exemplo.ironlinux.com.br -e vp,vt,tt,cb,dbe,u --rua -o output.txt --api-token seu-api-token-aqui
Explicação:
- vp → Plugins vulneráveis
- vt → Temas vulneráveis
- tt → Timthumbs
- cb → Configuration Backups
- dbe → DB Exports
- u → Usuários
Outros parâmetros interessantes
Parâmetro | Descrição |
---|---|
–rua ou –random-user-agent | Utiliza um User-Agent aleatório |
–ua ou –user-agent [VALOR] | Utiliza um User-Agent específico para todas as requisições |
–throttle [VALOR] | Adiciona um delay entre os testes (em milisegundos) |
–disable-tls-checks | Desabilita a checagem de certificado TLS/SSL |
–force | Não verificar se o alvo está ou não utilizando Wordpress |
–stealthy | Alias para as opções -random-user-agent –detection-mode passive –plugins-version-detection passive |
Por fim, agradecemos a leitura e esperamos que este post tenha te ajudado de alguma maneira! Caso tenha alguma dúvida, entre em contato conosco pelo Telegram , Facebook ou Instagram ! Veja mais posts no IronLinux !