what you don't know can hurt you
Home Files News &[SERVICES_TAB]About Contact Add New

UDP Amplification Scanner

UDP Amplification Scanner
Posted Aug 31, 2024
Authored by Jon Hart | Site metasploit.com

Detect UDP endpoints with UDP amplification vulnerabilities.

tags | exploit, udp, vulnerability
advisories | CVE-2013-5211
SHA-256 | 4b266aac321033bf9bd912f59c5fbdf160afa5b657e7351b0616cbfb0a87e10b

UDP Amplification Scanner

Change Mirror Download
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##

class MetasploitModule < Msf::Auxiliary
include Msf::Auxiliary::DRDoS
include Msf::Auxiliary::Report
include Msf::Auxiliary::UDPScanner

def initialize
super(
'Name' => 'UDP Amplification Scanner',
'Description' => 'Detect UDP endpoints with UDP amplification vulnerabilities',
'Author' => 'Jon Hart <jon_hart[at]rapid7.com>',
'License' => MSF_LICENSE,
'References' =>
[
['CVE', '2013-5211'], # see also scanner/ntp/ntp_monlist.rb
['URL', 'https://www.cisa.gov/uscert/ncas/alerts/TA14-017A']
]
)

register_options(
[
OptString.new('PORTS', [true, 'Ports to probe']),
OptString.new('PROBE', [false, 'UDP payload/probe to send. Unset for an empty UDP datagram, or the `file://` resource to get content from a local file'])
]
)

# RPORT is unused in this scanner module because it supports multiple ports
deregister_options('RPORT')
end

def setup
super

unless (@ports = Rex::Socket.portspec_crack(datastore['PORTS']))
fail_with(Failure::BadConfig, "Unable to extract list of ports from #{datastore['PORTS']}")
end

@probe = datastore['PROBE'] ? datastore['PROBE'] : ''
end

def scanner_prescan(batch)
print_status("Sending #{@probe.length}-byte probes to #{@ports.length} port(s) on #{batch[0]}->#{batch[-1]} (#{batch.length} hosts)")
@results ||= {}
end

def scan_host(ip)
@ports.each do |port|
scanner_send(@probe, ip, port)
end
end

# Called for each response packet, overriding UDPScanner's so that we can
# store all responses on a per-host, per-port basis
def scanner_process(data, shost, sport)
@results[shost] ||= {}
@results[shost][sport] ||= []
@results[shost][sport] << data
end

def scanner_postscan(batch)
batch.each do |shost|
next unless @results.key?(shost)
@results[shost].each_pair do |sport, responses|
report_service(host: shost, port: sport, proto: 'udp', info: responses.inspect, state: 'open')
vulnerable, proof = prove_amplification(@probe => responses)
next unless vulnerable
print_good("#{shost}:#{sport} - susceptible to UDP amplification: #{proof}")
report_vuln(
host: shost,
port: sport,
proto: 'udp',
name: 'UDP amplification',
refs: references
)
end
end
end
end
Login or Register to add favorites

File Archive:

November 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Nov 1st
    30 Files
  • 2
    Nov 2nd
    0 Files
  • 3
    Nov 3rd
    0 Files
  • 4
    Nov 4th
    12 Files
  • 5
    Nov 5th
    44 Files
  • 6
    Nov 6th
    18 Files
  • 7
    Nov 7th
    9 Files
  • 8
    Nov 8th
    8 Files
  • 9
    Nov 9th
    3 Files
  • 10
    Nov 10th
    0 Files
  • 11
    Nov 11th
    0 Files
  • 12
    Nov 12th
    0 Files
  • 13
    Nov 13th
    0 Files
  • 14
    Nov 14th
    0 Files
  • 15
    Nov 15th
    0 Files
  • 16
    Nov 16th
    0 Files
  • 17
    Nov 17th
    0 Files
  • 18
    Nov 18th
    0 Files
  • 19
    Nov 19th
    0 Files
  • 20
    Nov 20th
    0 Files
  • 21
    Nov 21st
    0 Files
  • 22
    Nov 22nd
    0 Files
  • 23
    Nov 23rd
    0 Files
  • 24
    Nov 24th
    0 Files
  • 25
    Nov 25th
    0 Files
  • 26
    Nov 26th
    0 Files
  • 27
    Nov 27th
    0 Files
  • 28
    Nov 28th
    0 Files
  • 29
    Nov 29th
    0 Files
  • 30
    Nov 30th
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2024 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close