Raafat
Raafat

Reputation: 173

How can i use RAW Sockets in Ruby?

I'm trying to create a raw socket using Ruby.

The problem is, there isn't anything called "raw socket" there and, on the other hand, the Socket class itself is not fully documented.

Does anybody have some code samples for that kind of socket in Ruby, or maybe some kind of a documentation for that?

By the way, I already know how to work with TCPSocket and TCPServer classes, and what I need is particularly a raw socket.

Upvotes: 3

Views: 5174

Answers (3)

threatagent
threatagent

Reputation: 260

Have a look at PacketFu. It is very well maintained and used by the Metasploit Project.

Upvotes: 2

Dominik Elsbroek
Dominik Elsbroek

Reputation: 21

Have a look at the racket gem (https://rubygems.org/gems/racket). It seems to be a bit outdated since the last version was released in 2009 but its also used in the metasploit framework.

Upvotes: 2

hhaamu
hhaamu

Reputation: 7321

Google brings up the following result: http://www.ruby-forum.com/topic/90408

Short version:

require 'socket'

rsock = Socket.open(Socket::PF_INET, Socket::SOCK_RAW, Socket::IPPROTO_RAW)

rsock.send(string, flags)

rsock.recv(1024)

More documentation on the various Socket classes: http://www.rubycentral.com/pickaxe/lib_network.html

(The whole raw sockets thing is rather nasty on unices since it usually requires root access. I did not test this code. You may need to construct the whole packet yourself if you're not using IPSocket)

Upvotes: 3

Related Questions