
Bruteforcer Modular Rápido de Interfaces Web
Bruteforçador Rápido e Modular de Interfaces Web
python3 -m pip install -r requirements.txt
$ python3 web-brutator.py -h
__ __ ___. __________ __ __
/ \ / \ ____\_ |__ \______ \_______ __ ___/ |______ _/ |_ ___________
\ \/\/ // __ \| __ \ ______ | | _/\_ __ \ | \ __\__ \ __\ / _ \_ _ _\
\ /\ ___/| \_\ \ /_____/ | | \ | | \/ | /| | / __ \| | ( <_> ) | \/
\__/\ / \___ >___ / |______ / |__| |____/ |__| (____ /__| \____/|__|
\/ \/ \/ \/ \/
Versão 0.2
uso: web-brutator.py [-h] [--url URL] [--target TYPE] [-u USERNAME]
[-U USERLIST] [-p PASSWORD] [-P PASSLIST]
[-C COMBOLIST] [-t THREADS] [-s] [-v] [-e MAX_ERRORS]
[--timeout TIMEOUT] [-l]
argumentos opcionais:
-h, --help mostra esta mensagem de ajuda e sai
--url URL URL alvo
--target TYPE Tipo de alvo
-u, --username USERNAME Nome de utilizador único
-U, --userlist USERLIST Lista de nomes de utilizador
-p, --password PASSWORD Palavra-passe única
-P, --passlist PASSLIST Lista de palavras-passe
-C, --combolist COMBOLIST Lista de combinações username:password
-t, --threads THREADS Número de threads [1-50] (padrão: 10)
-s, --stoponsuccess Parar ao obter sucesso
-v, --verbose Imprimir cada credencial testada
-e, --max-errors MAX_ERRORS Número de erros consecutivos aceites (padrão: 10)
--timeout TIMEOUT Limite de tempo para resposta (padrão: 20s)
-l, --list-modules Exibir lista de módulos
Exemplo:
python3 web-brutator.py --target jenkins --url https://mytarget.com -U ./usernames.txt -P ./passwords.txt -s -t 40
Aviso: Alguns produtos implementam bloqueio de conta após um determinado número de tentativas de autenticação falhadas, por defeito (por exemplo, Weblogic, Tomcat...).
O web-brutator notifica o utilizador no início do ataque de bruteforce se for esse o caso. Tenha isto em conta antes de lançar bruteforce nesses alvos.
O web-brutator pode detetar automaticamente formulários de autenticação web padrão e realizar bruteforce automaticamente.
Esta funcionalidade está disponível através do módulo standardform, é ainda experimental e pode levar a falsos positivos/negativos
uma vez que se baseia em várias heurísticas.
Não suportado:
Exemplo:
python3 web-brutator.py --target standardform --url https://mytarget.com -U ./usernames.txt -P ./passwords.txt -s -t 40 -v
Esta demonstração é contra uma interface phpMyAdmin
Adicionar um novo módulo de bruteforce de autenticação é bastante simples:
lib/core/modules/lib/core/modules/ para alguns exemplos. Note que os pedidos HTTP devem ser feitos através dos métodos estáticos fornecidos pela
classe Requester: Requester.get(), Requester.post(), Requester.http_auth().#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from lib.core.Exceptions import AuthException, RequestException
from lib.core.Logger import logger
from lib.core.Requester import AuthMode, Requester
class Mymodule:
def __init__(self, url, verbose=False):
self.url = url
# Outras variáveis self podem ir aqui
def check(self):
"""
Este método é usado para detetar a presença da interface de autenticação
alvo.
:return: Booleano indicando se a interface de autenticação foi detetada
"""
# Implementar código aqui
def try_auth(self, username, password):
"""
Este método é usado para realizar uma tentativa de autenticação.
:param str username: Nome de utilizador a verificar
:param str password: Palavra-passe a verificar
:return: Booleano indicando o estado da autenticação
:raise AuthException:
"""
# Implementar código aqui
-l) a partir da linha de comando.