Bhunter - botnet düğümlerini hacklemek

Virüs analistleri ve bilgisayar güvenliği araştırmacıları mümkün olduğunca çok sayıda yeni botnet örneği toplamak için yarışıyor. Honeypot'ları kendi amaçları için kullanıyorlar... Peki ya kötü amaçlı yazılımı gerçek koşullarda gözlemlemek isterseniz? Sunucunuzu veya yönlendiricinizi riske mi atıyorsunuz? Peki ya uygun bir cihaz yoksa? Beni botnet düğümlerine erişim sağlamaya yönelik bir araç olan bhunter'ı yaratmaya iten de bu sorulardı.

Bhunter - botnet düğümlerini hacklemek

ana fikri

Botnet'leri genişletmek için kötü amaçlı yazılım yaymanın birçok yolu vardır: kimlik avından 0 günlük güvenlik açıklarından yararlanmaya kadar. Ancak en yaygın yöntem hâlâ SSH şifrelerini kaba kuvvetle kullanmaktır.

Fikir, çok basit. Eğer bir botnet düğümü sunucunuz için parolaları kaba kuvvetle kullanmaya çalışıyorsa, büyük ihtimalle bu düğümün kendisi de basit parolalarla kaba kuvvetle ele geçirilmiştir. Bu, ona erişmek için sadece karşılık vermeniz gerektiği anlamına gelir.

Bhunter tam olarak bu şekilde çalışır. Bağlantı noktası 22'yi (SSH hizmeti) dinler ve bağlanmaya çalıştıkları tüm kullanıcı adlarını ve parolaları toplar. Daha sonra toplanan şifreleri kullanarak saldıran düğümlere bağlanmaya çalışır.

Algoritma çalışır

Program, ayrı iş parçacıklarında çalışan 2 ana bölüme ayrılabilir. Birincisi bal küpü. Oturum açma girişimlerini işler, benzersiz oturum açma adlarını ve parolaları toplar (bu durumda oturum açma + parola çifti tek bir bütün olarak kabul edilir) ve ayrıca daha fazla saldırı için kuyruğa bağlanmaya çalışan IP adreslerini de ekler.

İkinci kısım saldırıdan doğrudan sorumludur. Ayrıca, saldırı iki modda gerçekleştirilir: BurstAttack (seri saldırı) - genel listeden kaba kuvvet oturum açma bilgileri ve şifreler ve SingleShotAttack (tek atışlı saldırı) - saldırıya uğrayan düğüm tarafından kullanılan ancak henüz kullanılmamış kaba kuvvet şifreleri genel listeye eklendi.

Başlatma işleminden hemen sonra en azından bir miktar kullanıcı adı ve parola veri tabanına sahip olmak için, bhunter /etc/bhunter/defaultLoginPairs dosyasındaki bir listeyle başlatılır.

Arayüz.

Bhunter'ı başlatmanın birkaç yolu vardır:

Sadece bir takım olarak

sudo bhunter

Bu lansmanla bhunter'ı metin menüsü aracılığıyla kontrol etmek mümkün: bir saldırı için kullanıcı adları ve parolalar ekleyin, oturum açma bilgileri ve parolalardan oluşan bir veritabanını dışa aktarın, bir saldırı için bir hedef belirtin. Saldırıya uğramış tüm düğümler /var/log/bhunter/hacked.log dosyasında görülebilir

Tmux'u kullanma

sudo bhunter-ts # команда запуска bhunter через tmux  
sudo tmux attach -t bhunter # подключаемся к сессии, в которой запущен bhunter

Tmux bir terminal çoklayıcıdır, çok kullanışlı bir araçtır. Bir terminalde birden fazla pencere oluşturmanıza ve pencereleri panellere ayırmanıza olanak tanır. Bunu kullanarak, çalışan işlemleri kesintiye uğratmadan terminalden çıkabilir ve ardından oturum açabilirsiniz.

Bhunter-ts betiği bir tmux oturumu oluşturur ve pencereyi üç panele böler. İlki, en büyüğü, bir metin menüsü içerir. Sağ üstteki honeypot loglarını içerir, burada honeypot’a giriş yapma girişimleri ile ilgili mesajları görebilirsiniz. Sağ alt panelde, botnet düğümlerine yapılan saldırının ilerleyişi ve başarılı saldırılar hakkında bilgiler görüntülenir.

Bu yöntemin birinciye göre avantajı, bhunter çalışmasını durdurmadan terminali güvenli bir şekilde kapatabilmemiz ve daha sonra ona geri dönebilmemizdir. Tmux'a biraz aşina olanlar için şunu öneririm: bu kopya kağıdı.

hizmet olarak

systemctl enable bhunter
systemctl start bhunter

Bu durumda, sistem başlangıcında bhunter otomatik başlatmayı etkinleştiriyoruz. Bu yöntemde bhunter ile etkileşim sağlanmamakta olup, hacklenen nodeların listesi /var/log/bhunter/hacked.log adresinden alınabilmektedir.

etki

Bhunter üzerinde çalışırken tamamen farklı cihazları bulmayı ve bunlara erişmeyi başardım: Raspberry Pi, yönlendiriciler (özellikle mikrotik), web sunucuları ve bir zamanlar bir madencilik çiftliği (maalesef buna erişim gün içindeydi, bu yüzden ilginç bir şey yoktu) hikaye). Birkaç günlük çalışmanın ardından saldırıya uğrayan düğümlerin listesini gösteren programın ekran görüntüsü:

Bhunter - botnet düğümlerini hacklemek

Ne yazık ki, bu aracın etkinliği beklentilerime ulaşmadı: bhunter birkaç gün boyunca düğümlere şifreleri deneyebilir ve başarılı olamaz ve birkaç saat içinde birçok hedefi hackleyebilir. Ancak bu, düzenli olarak yeni botnet örnekleri akışı için yeterlidir.

Verimlilik şu parametrelerden etkilenir: bhunter içeren sunucunun bulunduğu ülke, barındırma ve IP adresinin tahsis edildiği aralık. Deneyimlerime göre, bir barındırma sağlayıcısından iki sanal sunucu kiraladığım ve bunlardan birinin botnet'ler tarafından 2 kat daha sık saldırıya uğradığı bir durum vardı.

Henüz düzeltmediğim hatalar

Virüs bulaşmış ana bilgisayarlara saldırırken bazı durumlarda şifrenin doğru olup olmadığını kesin olarak belirlemek mümkün olmayabilir. Bu gibi durumlar /var/log/debug.log dosyasına kaydedilir.

SSH ile çalışmak için kullanılan Paramiko modülü bazen yanlış davranır: kendisine bağlanmaya çalıştığında, ana bilgisayardan sonsuza kadar bir yanıt bekler. Zamanlayıcılarla denemeler yaptım ancak istediğim sonucu alamadım

Başka ne üzerinde çalışılması gerekiyor?

Hizmet adı

RFC-4253'e göre istemci ve sunucu, kurulumdan önce SSH protokolünü uygulayan hizmetlerin adlarını değiştirir. Bu isim hem istemci tarafından gelen istekte hem de sunucu tarafından verilen yanıtta yer alan “HİZMET ADI” alanında bulunur. Alan bir dizedir ve değeri,wireshark veya nmap kullanılarak bulunabilir. İşte OpenSSH'ye bir örnek:

$ nmap -p 22 ***.**.***.** -sV
Starting Nmap ...
PORT   STATE SERVICE VERSION
22/tcp open  ssh     <b>OpenSSH 7.9p1 Debian 10+deb10u2</b> (protocol 2.0)
Nmap done: 1 IP address (1 host up) scanned in 0.47 seconds

Ancak Paramiko durumunda bu alan, tuzaklardan "kaçınmak" için tasarlanmış botnet'leri korkutabilen "Paramiko Python sshd 2.4.2" gibi bir dize içerir. Dolayısıyla bu çizginin daha nötr bir şeyle değiştirilmesi gerektiğini düşünüyorum.

Diğer vektörler

SSH uzaktan yönetimin tek yolu değildir. Telnet, rdp de var. Onlara daha yakından bakmaya değer.

uzatma

Farklı ülkelerde birkaç tuzağa sahip olmak ve bunlardan giriş bilgilerini, şifreleri ve saldırıya uğramış düğümleri merkezi olarak ortak bir veritabanında toplamak harika olurdu.

Nereden indirebilirim?

Yazma sırasında yalnızca şu adresten indirilebilen bir test sürümü hazırdır: Github'daki depo.

Kaynak: habr.com

Yorum ekle