Port Açmadan Trojan kullanmak mümkün müdür?

Quality38

Uzman üye
8 Ocak 2017
1,219
2
Merhabalar, uzun süredir SpyNote kullanmaya uğraşıyorum. Defalarca denememe rağmen port açma kısmında sorun yaşadım. Uzun bir araştırma sonucunda CGN sistemi içerisinde olduğunu öğrendim. Yani modemim de bilgisayarım gibi başka bir vericiden ip alıyor. Kullandığım ip benzersiz olmadığı için port açamıyormuşum. Statik ip almam gerekliymiş.

Şimdi sizlere sorum şu, port açmadan farklı bir sistemle trojan kullanabilir miyim? Android sistemlere sızmak için alternatif yöntemler var mı ?
 
Moderatör tarafında düzenlendi:

Quality38

Uzman üye
8 Ocak 2017
1,219
2

Modem arayüzünden port açmadan kullanmak tabiki mümkündür
Bu Tip siteleri kullanırsan modem arayüzüne girmeden port açabilirsin.


portmap.io

Cevaplarınız için teşekkürler. Bu iki yöntemde mantıken benzer şeyler sanırsam. Bir VPN'e bağlanıp VPN üzerinden port açıyoruz diye biliyorum. Peki ben bilgisayarımı kapattığımda RAT'ıma düşürdüğüm kurbanlar orada kalıyor mu? Gidiyor diye biliyorum sanırsam, doğru muyum?
 

zztri

Yaşayan Forum Efsanesi
9 Tem 2015
10,053
4
390
Ankara
O zaman sunucun başka bir yerde olur...

Şimdi kendi IP adresini sabitleme zorunluluğun neden var? Çünkü hedeflerin sana ulaşabilmeli ki veri alsınlar değil mi? Senin IP adresin sürekli değişirse, hedeflerin nereye veri gönderecekler bilemezler. Sen de ne yaparsın?

1. Sadece SQL sunucusunu kullanacağın bir site açarsın. SQL sunucusuna uzaktan erişim izni verirsin. Hem client, hem de sunucu bu sql sunucusuna ulaşıp komutları ve neticelerini alır/verir. Yazdığım ilk trojan bunu yapıyordu. Nisbeten hızlıdır, web sitesi sunucuları büyük yük kaldırabilecek şekilde inşa edilmiştir. Port açmana gerek olmaz.

2. Dinamik DNS servislerini kullanırsın. Elemanlar kendi sunucularını bir "ara sunucu" yaparlar. Sendeki client program sayesinde elemanların sunucusu senin yerini bilir, hedeflerin elemanın sunucusunu bilir, iletişim sağlanır. Ben bu yöntemi hiç kullanmadım.

3. Anlık veri aktarımı gerektirmeyen özelleşmiş trojanlar için kendi API'ı olan fileshare sistemlerini (dropbox vs) kullanırsın. Bu Mızrak 0.1'in yöntemi idi. Gereken komutları offline olarak bırakırsın, mesela "bütün browser'lardan şifreleri çek" diye, sonucu da kurban offline olarak bırakır.

4. Tor kullanırsın. Her kurbana bir deep web service kurdurursun. Ara sunucu yine vardır, Tor'un kendi servisleridir. Hangi servisi almışlarsa ayrıca sana bir şekilde haber ulaştırmaları gerekir. Son versiyon Mızrak 3 ve 4'ü aynı anda kullanır. Uzun sürecek, offline işlemler için ve de kurbanlarımın deep web servislerinin adları için Dropbox kullanılır. Reverse shell vs. istersem direkt olarak zaten açık olan servise bağlanırım.
 

Quality38

Uzman üye
8 Ocak 2017
1,219
2
RAT'Ta save profile var bildiğiniz üzere kapatıp açtığınızda o profili tekrar açarsanız bilgisayar kapalıyken olan kurbanlar gözükür.

Hocam ben bilgisayarımı yeniden başlattığımda portmap.io'dan aldığım bilgiler değişmiyor mu yani? Kurban yine aynı porta yönlenebiliyor mu ? Eğer öyleyse sorun yok demek

O zaman sunucun başka bir yerde olur...

Şimdi kendi IP adresini sabitleme zorunluluğun neden var? Çünkü hedeflerin sana ulaşabilmeli ki veri alsınlar değil mi? Senin IP adresin sürekli değişirse, hedeflerin nereye veri gönderecekler bilemezler. Sen de ne yaparsın?

1. Sadece SQL sunucusunu kullanacağın bir site açarsın. SQL sunucusuna uzaktan erişim izni verirsin. Hem client, hem de sunucu bu sql sunucusuna ulaşıp komutları ve neticelerini alır/verir. Yazdığım ilk trojan bunu yapıyordu. Nisbeten hızlıdır, web sitesi sunucuları büyük yük kaldırabilecek şekilde inşa edilmiştir. Port açmana gerek olmaz.

2. Dinamik DNS servislerini kullanırsın. Elemanlar kendi sunucularını bir "ara sunucu" yaparlar. Sendeki client program sayesinde elemanların sunucusu senin yerini bilir, hedeflerin elemanın sunucusunu bilir, iletişim sağlanır. Ben bu yöntemi hiç kullanmadım.

3. Anlık veri aktarımı gerektirmeyen özelleşmiş trojanlar için kendi API'ı olan fileshare sistemlerini (dropbox vs) kullanırsın. Bu Mızrak 0.1'in yöntemi idi. Gereken komutları offline olarak bırakırsın, mesela "bütün browser'lardan şifreleri çek" diye, sonucu da kurban offline olarak bırakır.

4. Tor kullanırsın. Her kurbana bir deep web service kurdurursun. Ara sunucu yine vardır, Tor'un kendi servisleridir. Hangi servisi almışlarsa ayrıca sana bir şekilde haber ulaştırmaları gerekir. Son versiyon Mızrak 3 ve 4'ü aynı anda kullanır. Uzun sürecek, offline işlemler için ve de kurbanlarımın deep web servislerinin adları için Dropbox kullanılır. Reverse shell vs. istersem direkt olarak zaten açık olan servise bağlanırım.

Hocam bu işin ücretsiz yolunu arıyorum, SQL sunucusu için sanırsam biraz bütçe ayırmam gerekir. Açıkçası diğer 3 yöntemi pek anlamadım. Daha basitçe anlatabilir misiniz?
 

Quality38

Uzman üye
8 Ocak 2017
1,219
2
Evet Portmap.io bilgilerin kalıyor bilgisayar açıldığında otomatik vpn açıldığı için eğer otomatik açılmasını kapatmadıysan kalıyor.

Aynen öyleymiş, şimdi denedim hocam. Herşey gayet güzel çalışıyor, biraz yavaş ama kamera felan sanırsam o da vpn kullanmamdan kaynaklanıyor. Bir de Spynote üzerinde gps konumunu alamıyorum neden olabilir sizce? v6.4 kullanmaktayım.
 

Mapzilla

Adanmış Üye
23 Eyl 2016
7,205
13
Öncelikle RAT (Remote Administration Tool) adlı zararlı yazılımı doğru veya yanlış olabilecek önermelerim ile tanımaya çalışalım.
RAT'lar (Remote Administration Tool) backdoor mantığını ele alır, böylece ağ üzerinden Client, Server'ın isteklerini yerine getirir. Yani kurban bilgisayar, hackerın istediklerini yerine getirir.
Günümüzde ev kullanıcılarını hacklemek için Reverse Shell kullanılır. Yani Server = Hacker, Client = Kurban olur. Port dinlemeyi Hacker yapar.
Sunucularda ise Bind Shell kullanılır. Yani Server = Kurban, Client = Hacker olur. Hacker sunucuya bağlantı kurar.

JvuU1S.png



Günümüzde çoğu açık fixlenebildiği ve fixlendiği için güncellemelerle beraber; genelde sosyal mühendislik ile kullanıcı kandırılır ve zararlı yazılım olan executable kullanıcı tarafından çalıştırılır. Böylece Hacker, kurban bilgisayar ile bağlantı kurmuş olur.

Backdoor'ların mantığını anlamak için örnek 2 program kodlayalım C#.NET'te.
Bu yapacağımız programda;

Server tarafı, kurban bilgisayardan gelen bilgileri ekrana yazdıracak ve sonsuz döngü içinde sürekli komut isteyip Client tarafına gönderecektir Soket üzerinden.

Client tarafı, kurban bilgisayardan gelen komutları gizli bi' cmd.exe uygulamasına input olarak girdirticek ve gelen çıktıları Server'a, yani Hacker'a yollayacaktır. Bildiğiniz üzere cmd.exe üzerinden bir çok sistem fonksiyonu gerçekleştirilebiliyor.

Server;

JvxODs.png


Ne yaptık? İlk önce TCP ve her IP adresinin bağlanabileceği sadece 4444 portlu bi' Soket oluşturduk. Sonrasında dinlemeye aldık. Daha sonrasında 1 kullanımlık için bağlantı kabul etmek için Socket.BeginAccept kullandık. Bağlantı kabul edildiğinde, Client Soketini Socket.BeginReceive'a yolladık ve o Soket'ten veri almaya başladık. Aldığımız verileri ekrana yazdırdık ve tekrar Socket.BeginReceive ile aynı Soket'ten veri almaya devam ettik. Sonrasında program sonsuz bi' döngüye (!) girdi ve bizden herhangi bi' Command Prompt (cmd) komutu istiyor. Bunu Client'a, yani kurbana yolluyor. Eğer Soket'le bağlantısını keserse 10053 hata kodlu Exception veriyor, bunun MSDN'de anlamı vardır.

Jvx4hH.png



Bkz: https://docs.microsoft.com/en-us/win...-error-codes-2

Client;

JvxD0q.png


Burada ne yaptık? Program Console bi' .NET uygulaması olduğu için ShowWindow API'si ile gizlemek zorunda kaldık. API'yi projeye dahil etmek için P/Invoke kullandık.
0 = Disable
1 = Enable olarak anlamaktadır fonksiyon. Biz 0 ile görünmez hale, yani Disable hale getirdik.

Sonrasında TCP bi' Soket oluşturduk ve Server'a, yani Hacker'a 4444 portundan bağlandık. Daha sonrasında Process class'ı ile cmd.exe'yi başlattık. Process.StartInfo.CreateNoWindow ile ekranın görünmesini engelledik.

Process.StartInfo.RedirectStandardOutput, Process.StartInfo.RedirectStandardInput, Process.StartInfo.RedirectStandardError değişkenlerini true yaptık CLI olan programdan veri alacağımıza dair uyarı bu...

Process.OutputDataReceived için ise delegate oluşturduk, Console'dan gelen veriyi böyle alıcaz. Delegate olan fonksiyonda ise DataReceivedEventArgs.Data'yı, yani Console'daki çıktıyı Server'a, yani Hacker'a yolladık.

Sonrasında da Process.Start ile cmd.exe'yi başlattık ve Process.BeginOutputReadLine ile asenkron çıktı almayı başlattık. Sonrasında da Socket.BeginReceive ile Server'dan, yani Hacker'dan veri almaya başladık ve Soket'i ReceiveHandler fonksiyonuna yönlendirdi. Gelen veriyi Process.StandardInput.WriteLine ile Console'a input olarak yolladık, bu komut çalıştığında CMDHandler fonksiyonu devreye girecek. Sonrasında bi' döngü gibi Socket.BeginReceive ile tekrardan Server'dan, yani Hacker'dan bilgi almaya başladık. Son olarak cmd.exe'nin kapanmaması için Process.WaitForExit kullandık.

Hemen deniyelim;

İlk önce Server programımı başlattım, sonra Client yani virüsü başlattım.

JvxwNI.png


Gördüğünüz üzere rahat bi' şekilde çalışmakta.
...

Yani illa bi' sunucuya ihtiyacınız var. Haberleşmelerde illa bi' taraf Client, bi' taraf Server olur. C&C (Command and Control) taktiğini kullanabilirsiniz. PHP bi' sunucu olur, oraya verilerinizi yollarsınız.

Server kodları: https://paste.ubuntu.com/p/mJGb6w5tsr/
Client kodları: https://paste.ubuntu.com/p/2sGYf4CJqk/
 
Ü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.