I

iwystic

Veteran
Joined
Aug 27, 2019
Messages
4,834
Reaction score
9,970
caldim.png

Merhaba değerli RC üyeleri,
Bu konuda “Sıfırdan Backdoor Trojan Yapımı” isimli serimizin dördüncü bölümünü okuyacaksınız. Şu ana kadar biraz bir şeyler yaptık, kalıcılığımızı arttırdık, server bağlantımızı güçlendirdik ve az çok özellik ekledik.

Bu bölümde ise daha çok kullanım kolaylığı ve gizleme meselesi ile ilgilenmeyi düşünüyorum. Ayrıca, birkaç tane ufak daha özellik ekleyeceğim ve sonraki bölümlere sadece keylogger veya eğlence amaçlı birkaç özellik eklemeyi düşünüyorum. Giriş kısmını çok uzatmadan alt başlıklara geçelim.

4dKDtQ.png

İçerik:

- Hedef Cihaz Üzerinde Screen Shot Almak
- Ayrıcalıklarımızı Kontrol Etmek
- Help/Yardım Bölümü Eklemek
- Virüsü Gizlemeye Çalışmak (PyInstaller)


4dKDtQ.png

Hedef Cihaz Üzerinde Screen Shot Almak

Screenshot, yani ekran görüntüsü, karşı cihazın anı anına ne yaptığını bize bildirebilir. En basitinden kötü niyetli kişiler tam da siz internet üzerinden alışveriş sırasında kart bilgilerinizi girdiğiniz zaman bir ekran resmi alsa tüm bilgileriniz karşıya geçer. Bu basit, örnek bir senaryoydu. Aynı şekilde mesela WhatsApp Web veya Telegram Web kullanırsanız [masaüstü uygulaması da dahil] siz burada mesajlaşırken ekran resmi alınarak bu yazışmalar okunabilir.

Bu kısımda sizlere nasıl reverse shell’imiz üzerinden ekran resmi alınır, bunu göstereceğim. Bunun için ilk olarak trojan.py dosyamıza mss kütüphanesini, bunun içinde ctypes kütüphanesini eklememiz gerek.

1608904065923.png

4dKDtQ.png

Bu kütüphaneyi PIP’e eklemek lazım, neyse...
Ardından isterseniz ekran resmi isminde bir fonksiyon oluşturalım ve içine ekran resmi almak için gerekli olan kodları koyalım.

4dKDtQ.png

1608904132804.png

4dKDtQ.png

Şimdi bu fonksiyonu kabuk() içinde kullanmak gerek. Bunun için ilk olarak bir elif bloğu oluşturuyorum.

4dKDtQ.png

1608904187138.png

4dKDtQ.png

Bloğun içine ekran resmi fonksiyomuzu ekleyelim. Ancak burada biraz daha işlem yapacağız. İlk önce bir ekran resmi alınacak, ardından bu alınan ekran resmi oluşturulunca bize tek tek byte’ları gönderecek. Ardından ise işlem tamamlanınca kurbanımızın masaüstünde veya trojan.exe’mizi nerede çalıştırdıysa orada bir ekran resmi olmasın diye sileceğiz. Yoksa şüphe çeker.

4dKDtQ.png

1608904241260.png

4dKDtQ.png

Kaydedilen ekran resmini kurban fark etmesin diye silelim. Aşağıdaki kod dizisi ile bu işlemi hallediyoruz. Monitor-1.png default yani varsayılan olan dosya ismidir. MSS ile aldığınız ekran resimleri bu isimle kaydedilir.

4dKDtQ.png

1608904313336.png

4dKDtQ.png

Programımızda oluşabilecek hata olursa diye de bu olayı try-except bloğu içine alıyoruz.

4dKDtQ.png

1608904361734.png

4dKDtQ.png

Şimdi trojan.py üzerinde işimiz bitti. Sırada bu alınan ekran resmini karşılayacak kodlar var. Bunun için server’ımızı açıyoruz ve bir elif bloğu oluşturuyoruz.

4dKDtQ.png

1608904422504.png

4dKDtQ.png

Bu arada, fark ettim de kod[:10] kısmı gereksiz. O yüzden buraya eklemedim, öncekini de sildim.
Neyse, şimdi bu dosyayı alacak kodları girelim.

4dKDtQ.png

1608904476088.png

4dKDtQ.png

Resim isimli değişkenimizi decode etmek için gereken kodu yazıyoruz.

4dKDtQ.png

1608904525524.png

4dKDtQ.png

Buraya kadar iyi geldik aslında; ancak anlamadığım şekilde resim bazen sorun çıkartıyordu. Sonradan fark ettim ki trojan.py üzerinde verigonder’de HATA mesajı vardı, bu yüzden sıkıntı çıkarıyordu. Ufak bir araştırma sonucu bu aşağıda verdiğim kod bloklarını eklemeye karar verdim.

4dKDtQ.png

1608904574638.png

4dKDtQ.png

Burada, önceki dosya yükleme işleminde yaptığımız gibi, bir değişkene 0 değeri verdim ve her o dosyada değişkenin kullanımıyla bir değer arttırdım. Yani s+=s sayesinde 1,2,3,4… diye ekran resimlerimiz kaydedilecek.

Ardından ise her defasında yaptığımız şekilde bir try-except ekliyoruz ki olası bir durumda bozulmasın.

4dKDtQ.png

1608904621102.png

4dKDtQ.png

İki programımızda da işlemimiz bitti. Şimdi sırada çalıştırma aşaması var. Bir not da düşeyim, bazı kütüphaneler python 2 için desteğini bitirdi. Bunun için biraz araştırma ile py2 kütüphanelerini manuel olarak kurmanız lazım.

4dKDtQ.png

1608904679178.png

4dKDtQ.png

Evet, görünebildiği üzere şu an tek bir çektiğimiz ekran resmi geldi. Yalnız belirtmemde fayda var, python yavaş compile olan bir dil olduğu için ekranresmi komutunun tamamlanması biraz uzun sürebiliyor.
İkinci resmi de alalım bari, bu sefer web tarayıcıda RC’yi açacağım.

4dKDtQ.png

1608904761465.png

4dKDtQ.png

Pekâlâ, anlayacağınız gibi bu bölümdeki işimiz bitti. Şimdi sırada ayrıcalıklarımızı kontrol etmek var. Bir sonraki bölüme daha da uzatmadan geçelim.

4dKDtQ.png

Ayrıcalıklarımızı Kontrol Etmek

Ayrıcalıklar nedir, veya Privileges nedir sorunu yanıtlamak isterim ilk önce. Basitçe açıklamak gerekirse bir sistem üzerinde sahip olduğunuz yetki denebilir. Bazı yetkiler şunlardır; Root, Administrator, User ve Guest.

Guest’in sistem üzerinde değişiklik yapma hakkı yoktur. Adı üstünde sistemde sadece ziyaretçi olarak gezinir.

User temel kullanıcı haklarına sahiptir. Kendi oturumunda değişiklikler yapabilir. En yaygın kullanılan ayrıcalıklardandır. Aynı zamanda cihaz üzerinde büyük değişiklikler yapamadığı için kullanım açısından en güvenlilerden birisidir.

Administrator ise isminden de belli olabileceği gibi yönetici iznidir. Genel değişiklileri yapabilir, sistem üzerinde kayıt defterini düzenleyebilir. Kullanıcı ve Misafir hesapları üzerinde oynama yapabilir. Root’ta yazanlar bunda da geçerlidir.

Root ise direkten kök anlamına gelir. Genelde Linux sistemlerinde admin’e verilen addır. Sistem üzerinde köklü değişiklikler yapılabilir. Eğer yanlışlıkla bilmediğiniz yerlerde oynama yaparsanız cihazınız çoğu ihtimalle artık kullanılmaz hale gelir.

--------------------------------------------

Pekâlâ, yani anlayacağınız bizim için Admin veya Root kullanıcısı izinlerine sahip olmak gerek daha iyi bir etkileşim için. Windows üzerinde çalıştığı için de admin iznimizin olması daha iyi olur.

User ile Admin’in çalıştırabileceği komutlar farklı olduğu için bizim hangi izne sahip olduğumuzu bilmemiz gerekir. Bu bölümde ise hangi izne sahip olduğumuzu öğreneceğiz. Bunun için de zaten önceden projeye eklediğimiz os kütüphanesini kullanacağız.

Öncelikle trojan.py dosyamıza girerek ayrıcalıklarımızı kontrol edecek bir fonksiyon ekliyoruz.

4dKDtQ.png

1608904951401.png

4dKDtQ.png

Ayrıcalığımızı kontrol etmek için gerekli olan kodu ekliyoruz.

4dKDtQ.png

1608904984526.png

4dKDtQ.png

Bu kod hangi yetkiye sahip kullanıcı olduğumuzu gösteriyor. Ardından bir try-except-else bloğu oluşturuyoruz ki ona göre ne olduğumuzu öğrenelim.
Aynı zamanda bir değişken atayıp bu değişken üzerinden bilgiyi server’a gönderelim.

4dKDtQ.png

1608905056445.png

4dKDtQ.png

Şimdi ise bir elif bloğu içinde bu bilgiyi verigonder kullanarak server’a gönderelim. Bu işlemi gerçekleştirmek için gerekli kodu da kontrol olarak ayarlayalım.

4dKDtQ.png

1608905108451.png

4dKDtQ.png

Bu kısmı da diğerleri gibi hata vermemesi adına try-except’e alalım.

4dKDtQ.png

1608905148839.png

4dKDtQ.png

Buradan sonra isterseniz server üzerinde kontrol isimli bir else if bloğu da kullanabilirsiniz; ancak çok da gerek yok.
Bu yüzden isterseniz direkt deneme kısmına geçelim.

4dKDtQ.png

1608905194290.png

4dKDtQ.png

Gördüğünüz gibi benim masaüstümde ve o bölümün alt klasörlerinde user yani kullanıcı yetkim varmış.
Normalde de zaten Admin olduğum oturumumu kullanmıyorum.

Sadede geleceksek, şu an benim gösterdiğim/girdiğim bölümlerde kullanıcı iznim olduğu için sadece kullanıcı hesaplarının kullanabildiği komutları yürütebilirim. Ayrıcalık yükseltme işlemini de yapabiliriz ancak; o kısım üst düzey hacker’ları ilgilendiren kısım.

Diğer başlığa geçelim.

4dKDtQ.png

Help/Yardım Bölümü Eklemek

Bu kısım aslında kendi virüsünüzü kullanıyorsanız pek gerekli olmayabilir; ancak halka açık bir virüsünüz varsa nasıl kullanıldığını tarif etmek için eklenmesi gerekilebilir. Zaten ta ilk bölümde çıkmak için 0’a basmamız gerektiğini söyleyen bir küçük yardım menüsü eklemiştik. (CTRL+C'de terminal üzerinde işe yarar.)

Şimdi ise hızlıca eklediğimiz tüm özellikler için bir yardım menüsü ekleyelim.

Bu kısım konusunda kararsızdım aslında ama ben colorama kütüphanesini çok sevdiğim için yardım seçeneğini server üzerine ekleyeceğim.

4dKDtQ.png

1608905366434.png

4dKDtQ.png

Bu kısımda üç seçeneğimiz var; Ya, ‘’’ kullanarak çok satırlı bir print kullanacağız, ya satırları ayarlamak için \n kullanacağız, ya da her özellik için ayrı print kullanacağız. Ben son seçeneği seçiyorum. :)

Aynı zamanda, yardım için bir fonksiyon ekleyip print’leri oraya yerleştireceğim.

4dKDtQ.png

1608905506042.png

4dKDtQ.png

Ben bu kodları colorama ile daha güzel bir görünüme sokmak istiyorum.

4dKDtQ.png

1608905553143.png

4dKDtQ.png

Böyle bir şey yaptım, kendi zevkime göre renk ayarı falan yaptım.

Şimdi kod değişkeninin input kısmından önce yârdim fonksiyonunun nasıl çalışacağını gösteren bir kısım ekleyelim.

4dKDtQ.png

1608905613542.png

4dKDtQ.png

Elif bloğunun alt kısmı ile bu fonksiyonu çağıralım.

4dKDtQ.png

1608905648429.png

4dKDtQ.png

Server üzerinde işlem tamam, ancak Reverse Shell kısmında y veya yardim diye bir komut alan komut satırı çökmesin diye oraya da bir el atıyoruz.

4dKDtQ.png

1608905696055.png

4dKDtQ.png

Şimdi yardım menüsü hakkında işimiz bittiğine göre, çalıştırıp deneyelim.

4dKDtQ.png

1608905752660.png

4dKDtQ.png

Dürüst olmak gerekirse, böyle bir şey beklememiştim.
Bunu hemen daha güzel bir hale getirip yeniden çalıştırıyorum. Ayrıca sonradan fark ettim ekran resmi alma özelliğini yazmayı unutmuşum.

4dKDtQ.png

1608905823067.png

4dKDtQ.png

Pekâlâ, ben de farkındayım bir şaheser yapmadığımın; ama bence gayet güzel.

Böylesinde çok da önemli olmayan bir sorunu da hallettiğimize göre bir sonraki başlığa geçebiliriz.

4dKDtQ.png

Virüsü Gizlemeye Çalışmak (PyInstaller)

Yaptığınız virüsleri yutturabilmenin en kolay yolu iyi bir sosyal mühendislik ve sağlam bir crypter’dan geçer. Bu ve bundan sonraki başlıkta ise değineceğim konu virüsü bir resme gizlemeye çalışmak ve ikonunu değiştirmek. Böylelikle olası sosyal mühendislik durumlarında karşı tarafa daha rahat virüsü yutturabilirsiniz.

İlk olarak göstereceğim yöntem PyInstaller’ın kendi ikon oluşturma özelliği ile alakalı. Ardından trojanımızın içine koyduğumuz kod ile daha kolay şekilde yutturulabilecek bir hale gelecek virüsümüz. Bir not da düşeyim, bu kısmı ister Linux üzerinden, ister Windows üzerinden yapabilirsiniz. Ben Windows kullanacağım.

Öncelikle, Google üzerinde bir resim bulalım ve ardından bu resmi .ico uzantılı hale getirelim.

Seçtiğim resim bu:

1608905987303.png

4dKDtQ.png

Bu resmi internet üzerinden icon’a dönüştürdüm.

4dKDtQ.png

1608906032099.png

4dKDtQ.png

Sırada bu ikon dosyasını, trojan.exe dosyamıza ikon olarak ekliyoruz. Bunun için de pyinstaller parametresini kullanıyoruz.

4dKDtQ.png

1608906085676.png

4dKDtQ.png

Virüsümüz dist klasörünün içinde oluştu. Dikkat edin, Windows güvenlik kalkanınız veya anti-virüsünüz açık ise, oluşur oluşmaz virüs silinecektir.

4dKDtQ.png

1608906136333.png

4dKDtQ.png

Şu anda resmimiz ikon olarak ayarlanmış durumda. Tek fark, normal resim 16:9 oranında iken bu ikon 1:1 oranında.
Bunu detaylıca kurcalarsanız daha iyi bir hale getirebilirsiniz.

Şimdi çalıştıralım:

1608906190141.png

4dKDtQ.png

Hiçbir şey olmadı!? Evet, görünürde hiçbir şey olmadı; lakin görev yöneticisinde trojan.exe’nin çalıştığını görebiliriz.

4dKDtQ.png

1608906253445.png

4dKDtQ.png

Peki, bu resim açıldıktan sonra neden görüntülenmedi?
Bu işi halletmek için de, trojan.py’ye girip resmi tek seferlik açma işlemini gerçekleştirecek kodu yazıyoruz.

İlk sefer olup olmadığını anlamak için 2. derste kullandığımız kalıcılığı arttırmak için kayıt defterine ekleme işleminin gerçekleştiği satırı kullanacağız. Hatırlarsanız if not bloğu ile ilk sefer olup olmadığını, veyahut da regedit’ten programın silinip silinmediğini anlayabiliyorduk.

Windows üzerinde python’un kendi IDE’sini açıyorum. Sys kütüphanesini kullanacağız.

4dKDtQ.png

1608906328964.png

4dKDtQ.png

Bu eklediğimiz kod, resim.png dosyasını ilk çalıştırmada açar; ancak resim.png dosyasını da pyinstaller ile exe’nin içine eklememiz gerek ki hata vermesin. Sonuçta olmayan bir dosyayı açmaya çalışmak programın çökmesine sebep olur. Ancak bu işlemi pyinstaller ile programı oluştururken eklenecek, şimdi değil.

Gerekli bir diğer kodu ekliyorum;

4dKDtQ.png

1608907035947.png

4dKDtQ.png

Şimdi ise her zamanki yaptığımız gibi ne olur ne olmaz diye try-except ekliyoruz. Ancak buradaki except bloğu çok da önemli değil. Gereklilik olduğundan dolayı içine rastgele bir kod ekleyelim.

4dKDtQ.png

1608907066792.png

4dKDtQ.png

ÖNEMLİ: Program if not’da regedit kaydını kontrol ettiği için öncelikle regedit kaydını ve roaming kaydını silmeniz lazım. Yoksa resim açılmaz. Aynı zamanda resim diye atadığımız değişkenin başında “/” koymamız gerek ki yolu oluştursun.

Şimdi deneyelim;

4dKDtQ.png

1608907160564.png

4dKDtQ.png

Şu an ilk çalıştırmamız olarak sayıldığı için resim açıldı; ancak bir dahaki çalıştırmalarımızda açılmayacaktır. Bu gizleme yöntemi direkt olarak pyinstaller ile sağlanan bir gizlemedir. Daha iyi bir gizleme için bir tool kullanabilirsiniz.

4dKDtQ.png

Normalde hazır tool kullanarak virüs gizlemeyi gösterecektim; ama vazgeçtim, inceleyip anlatacağım. Tüm toollar trojan gömülmüş olarak çıktı.
Ava giderken avlanmak istemediğimden dolayı bu kısmı üzülerek bitiriyorum.

Kali Linux Üzerinde de virüsü bir resme gömebiliriz, bunun için de birkaç tool var ancak onları eklemek istemedim. En basitinden, zaten daha önceden yazılmış bir konu var bunun hakkında.

--------------

Sonuca gelirsek, bir sonraki bölümde bitirmeyi düşünüyorum; fakat tahminimce bir sonraki bölümümüz uzun olacak. Çünkü, sonradan birkaç ekleme yapma fikri var aklımda. Onun haricinde şu ana kadar zaten işe yarar özellikler eklediğimizi düşünüyorum. Geriye eklemek istediğim sadece keylogger ve kurban ile iletişim seçeneği kaldı. Onları da bir aksilik olmazsa bir sonraki bölüme ekleyeceğim. Birkaç gün sonra yayınlamış olurum.

O zamana kadar kendinize iyi bakın.
 
S

Selyk

Prince Of Darkness
Super Moderator
Joined
Sep 6, 2020
Messages
2,470
Reaction score
1,626
Güzel anlatım olmuş
 
SPAM IS FORBIDDEN!
  • SPAMMERS ARE BANNED FROM THE FORUM AND CANNOT USE ANY OF THE CHEATS
  • For example: thanks, thx, very good, asdqwe, working, ty and so on!
  • For example: Writing the same message over and over. thanks, thx and so on!
  • Copying and copying someone else's message is prohibited.
  • It is forbidden to send messages to increase the number of comments on threads that you have no knowledge of.
  • Write your own opinion when commenting!
  • If you see spam message, please let us know with the REPORT button!

Tema düzenleyici

Top Bottom