Use Net::DNS::Packet to build queries, static probe
parent
473213849f
commit
1e38a5db86
|
@ -31,20 +31,8 @@ class Metasploit3 < Msf::Auxiliary
|
||||||
], self.class)
|
], self.class)
|
||||||
end
|
end
|
||||||
|
|
||||||
def short(v)
|
def setup
|
||||||
[ (v & 0xFF00) >> 8, v & 0x00FF ].pack("CC")
|
@probe = ::Net::DNS::Packet.new(qname, qtype, qclass).data
|
||||||
end
|
|
||||||
|
|
||||||
def build_probe(qname, qtype, qclass)
|
|
||||||
short(rand(0xFFF)) + # transaction ID
|
|
||||||
"\x00\x00" + # flags
|
|
||||||
"\x00\x01" + # questions
|
|
||||||
"\x00\x00" + # answer RRs
|
|
||||||
"\x00\x00" + # authority RRs
|
|
||||||
"\x00\x00" + # additional RRs
|
|
||||||
[ qname.length, qname ].pack("Ca#{qname.length+1}") + # name
|
|
||||||
short(qtype) + # type
|
|
||||||
short(qclass) # class
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def scanner_process(data, shost, _sport)
|
def scanner_process(data, shost, _sport)
|
||||||
|
@ -53,7 +41,7 @@ class Metasploit3 < Msf::Auxiliary
|
||||||
end
|
end
|
||||||
|
|
||||||
def scan_host(ip)
|
def scan_host(ip)
|
||||||
scanner_send(build_probe(datastore['NAME'], datastore['TYPE'], datastore['CLASS']), ip, datastore['RPORT'])
|
scanner_send(@probe, ip, datastore['RPORT'])
|
||||||
end
|
end
|
||||||
|
|
||||||
def scanner_prescan(batch)
|
def scanner_prescan(batch)
|
||||||
|
|
Loading…
Reference in New Issue