• 06-04-2014, 14:36:31
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhabalar,

    Birsüredir kullandığım bir yöntemi sizinlede paylaşmak istedim. Bildiğiniz üzere sizin ip ve port değerlerinizin öğrenilebilmesini sağlayan bir yolda network monitorler bunlardan en basiti ise "netstat -n"

    Peki nedir, Network monitor?

    Ağınızdaki anlık veri trafiğini listeleyen ve dolayısıyla ip ve port adreslerinizinde tespit edilmesini sağlayan bir olay.

    Peki neden engellemek gerekir?

    Bilindiği üzere metin2'de sıkça karşılaşılan ddos saldırıları gibi bir durum söz konusu. Bazı lamerler başkalarının emeğini hiçe sayarak oyun bağlantısını zayıflatmak ve düşürmek amaçıyla sizin ip adresinize saldırılar yapıyor.
    Diğer bir husus ise bilindiği üzere metin2'nin tüm dosyaları piyasada olduğu için herhangi başka bir client ile ip ve port adresleri değiştirilerek başarıyla sizin clientiniz haricinde bir client ile girmek mümkün bu gibi durumları engellemek için bu yöntemi uyguluyoruz.

    Engelleme mantığı nedir?

    Ne yazık ki network monitorler'den ip adresini ve port'u saklamak mümkün değil ancak bizde aynı portlara eşdeğer ve aynı binary üzerinden farklı bağlantılar yapar hedef şaşırtmak mümkün ve biz bu yöntemi kullanıcaz.

    Gerekli şeyler;

    -Python libleri(thread ve gerekli diğer libler)
    -PyWinTypes(Syslog yazdırmak için gerekli modül)
    -Biraz beyin
    -Algoritma yapısını anlamak için biraz programlama


    Öncelikle mantığını göstermek amacıyla kısa bir anlatım yapıcam.

    İlk olarak gerekli modüller: "socket" ve "threading" modülü "Thread" fonksiyon

    Şimdi modüllerimizi çağıralım

    import socket
    from threading import Thread
    Daha sonra herhangi bir sorun yaşandığında bilgilendirmesi için log yazdırtalım

    def syslog(s):
    	file = open('syserr.txt', 'a')
    	file.write('\n' + s + '\n')
    	file.close()
    Şimdi socket komutlarını bir veriable'ye atayarak uygulayalım

    Socket komutlarımız
    socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    Herhangi bir hatada yukarıdaki fonksiyon ile log vermesini sağlamak amacıyla try-except'e bağlayalım

    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    except:
        syslog('Socket Olusturma Basarisiz')
    Veriable değerlerini atamaya başlayalım

    Örnek olarak tek ip ve 2 port için göstericem, verdiğim hazır scriptte önceden oluşturdum 15 ip ve 30 port mevcut.

    "host = '46.21.54.86'" ile rastgele bir ip adresine host değerini atadık

    "
    port = 11002
    port2 = 13000
    "

    Klasik auth ve game port adreslerimizide tekrar başka bir veriable'ye atadık.

    Fonksiyonlarımızı oluşturalım

    For döngüsü ile daha kısa şekilde oluşturabilirsiniz göstermek amacıyla, uzun ve ayrıntılı olarak göstericem.

    def socket1():
    	s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    	s.connect((host, port))
    def socket2():
    	s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    	s.connect((host, port2))
    "socket1" fonksiyonu ile host ve port veriablesine yani "46.21.54.86" adresine ve "11002" portuna;

    "socket2" fonksiyonu ile host ve port2 veriablesine yani "46.21.54.86" adresine ve "13000" portuna;

    bağlantı oluşturduk.

    Şimdi buraya kadar sıkıntı yok ancak bağlantıyı sabitlemek için thread ile bir süre açık bırakmak zorundayız.

    i1p1 = Thread(target=socket1,args="")
    i1p1 veriablesine gerekli thread komutunu atadık, socket1: fonksiyon ismi

    Son olarak atadığımız i1p1 veriablesini başlatmak kaldı

    i1p1.start()
    komutu ile start veriyoruz ve işlem bitmiştir

    Şimdi oluşturduğumuz scripti root.epk'yı açıp içine atıyoruz ve daha sonra "introselect.py" isimli script'i açıp oluşturduğumuz script'i çağırıyoruz.

    Oluşacak görüntü:



    15 ip ve 30 port hazır script: Tıkla İndir
    Python 2.2: Tıkla İndir
    Pywintypes modülü: Tıkla İndir



    Virustotal:

    https://www.virustotal.com/en/file/3...is/1396783567/



    pasha37
  • 12-04-2014, 14:18:57
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Uyguladığın yöntem, w7+ üzeri çalışmayacaktır.

    Windows, Resource Monitor'den(Kaynak İzleyicisi) Local ve Out bağlantılarını gösterdiği için, çalışmıyor diyebiliriz.
  • 12-04-2014, 15:22:35
    #3
    Windows8'de bir problem yaşamıyorum
  • 13-04-2014, 13:51:49
    #4
    Bana uyguladığın kodları atabilir misin.
  • 13-04-2014, 16:21:39
    #5
    Pasha37 adlı üyeden alıntı: mesajı görüntüle
    15 ip ve 30 port hazır script: Tıkla İndir

    BacardiMohito adlı üyeden alıntı: mesajı görüntüle
    Bana uyguladığın kodları atabilir misin.
    Bunu kullanıyorum