Shellsec

Fuld version: Custom dictionary attack i Ruby
Du ser lige nu en skrabet udgave af vores indhold. Se den fulde version med ordentlig formatering.
Jeg har lavet nedenstående løsningsforslag til udfordringen April 2016 - Custom Dictionary Attack
Det er bare en måde at gøre det på. Der kom rigtig mange god forslag. Så man kan vælge at bruge det eller lade være, men jeg tænkte jeg ville dele det med jer. Måske kan nogen få noget ud af det. Det er ikke videnskab og der er ikke kælet for koden. Det skulle bare virke.
#!/usr/bin/env ruby

require 'digest'                                                        # For hashing
require 'base64'                                                        # For decoding

def usage
        puts "Usage: ./cust_dict <wordfile> <salt> <encrypted password>"
end

if ARGV.size != 3 then
        usage
else
        dictionary = ARGV[0]
        salt = ARGV[1]
        hashed = ARGV[2].strip
        hashed = Base64.decode64(hashed)

        puts "Using file #{dictionary}"
        puts "Salt: #{salt} Hash: #{hashed}"

        salt = Digest::MD5.hexdigest salt.strip

        File.foreach(dictionary) do |line|
                clearpass = line.strip
                3.times {line = Digest::SHA1.hexdigest line.strip}
                line = salt + line
                3.times {line = Digest::SHA1.hexdigest line}
                if line == hashed then puts "Password is :#{clearpass}:" end
                break if line == hashed
        end
end