Erdem YILDIZ

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

Python ile Mac Adressi Değiştirme!!!

Merhaba arkadaşlar bugün python ile yazmış olduğum script'te verdiğiniz network aygıtı üzerinde local tabanlı mac adresini değiştiren 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.Local tabanlı saldırı yapacağımız zaman gizlenme konusu üzerinde neler yapabilirim sorusuna mac adres değiştirme cevabını buldum.Bu yüzden bu amaç üzerinde bir script yazmak istedim.Basitçe script sizden network aygıt adı isteyecek ve rasgele bir mac adresi üretecektir.Üretme işleminden sonra script çalışmaya devam edecektir. Bu süre zarfında herhangi bir şekilde internette çıkamıyorsunuz.Local tabanlı gizlenme işleminizi bitirdiğinizde "Ctrl + C " tuş'larına basarak ilk başta script'e verdiğiniz network aygıtını tekrar başlatıp devamında script sonlanacaktir.(Bu script tahminimce Ubuntu üzerinde çalışmaktadır.Diğer linux dağıtımlar üzerinde denemedim)

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.
                                        # ChangeMac.py
                                        # -*- coding:utf-8 -*-
                                        import os
                                        import random
                                        import time
                                        from scapy.all import *

                                        def GetHEX():
                                            tmp = "0123456789abcdef"
                                            return random.choice(tmp) +""+ random.choice(tmp)

                                        def GetMAC():
                                            arr = ["02","00","00"]
                                            for i in range(3):
                                                arr.append(GetHEX())
                                            arr = ":".join(arr)
                                            return arr

                                        def DefaultMAC(interface):
                                            dMAC = ""
                                            path = "/sys/class/net/{}/address".format(interface)
                                            with open(path,"r") as file:
                                                dMAC = str(file.readlines())[2:-4]
                                            return dMAC

                                        def ChangeMAC(interface,mac):
                                            os.system("sudo ip link set {} down".format(interface))
                                            time.sleep(3)
                                            os.system("sudo ifconfig {} hw ether {}".format(interface, mac) )
                                            time.sleep(3)
                                            os.system("sudo ip link set {} up".format(interface))
                                            print "Mac address is changed --> " + mac
                                            print "After you press CTRL+C this app will close and your network device will connect again own network. "
                                        if __name__ == "__main__":

                                            interface = raw_input("[*] Please enter the network interface name  :")

                                            newMAC = GetMAC()
                                            dMAC = DefaultMAC(interface)
                                            print "Created MAC : "+newMAC
                                            print "Default MAC : "+dMAC
                                            try:
                                                ChangeMAC(interface,newMAC)
                                                time.sleep(2222222)
                                            except KeyboardInterrupt:
                                                os.system("sudo /etc/init.d/network-manager stop")
                                                    os.system("sudo /etc/init.d/network-manager start")




                                        

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 :)