ronin-rb / ronin

Ronin is a Free and Open Source Ruby Toolkit for Security Research and Development. Ronin also allows for the rapid development and distribution of code, exploits, payloads, etc, via 3rd-party git repositories.
https://ronin-rb.dev
GNU General Public License v3.0
679 stars 52 forks source link

Add a `--websocket` option to the `ronin netcat` command #171

Open postmodern opened 11 months ago

postmodern commented 11 months ago

ronin netcat should also support connecting to or opening websockets. Use the async-websocket gem.

Cioraz commented 11 months ago

Hey Could you assign me the issue?

postmodern commented 11 months ago

@Cioraz unfortunately no. Every time I have assigned an issue to someone, they disappear and the issue never gets completed. I would suggest just trying to work on the issue and getting a PR submitted.

Cioraz commented 11 months ago

When using the async-websocket gem should i just include it in the commands under spec/cli/commands ? Like an import?

postmodern commented 11 months ago

@Cioraz it sounds like you might be new to Ruby? Files from other gems are loaded using require '...'. The spec/ directory is where the unit-tests live. To add a gem as a dependency, add it to dependencies: in gemspec.yml and add it to the Requirements section in the README.md, then run bundle install to install it.

This issue might be a little too much work for Ruby beginners.

Cioraz commented 11 months ago

Thanks, indeed im new to Ruby and was interested in helping other open source projects and thus learn new skills

postmodern commented 8 months ago

Perhaps it would be easier to add a separate ronin wscat/ronin websocket/ronin-web wscat command. I'm working on WebSocket::Client and WebSocket::Server classes in ronin-support-web, which we could use, possibly with the async gem or directly with IO.select since they expose the underlying socket. This might make it easier to accept and parse a ws:// or wss:// URL. WebSocket uses "frames" for messages, and these frames can have different types such as text, binary, ping, pong, and close. We could add special logic to automatically hexdump any binary type frames. I might close this issue in favor of a new one to add a ronin wscat/ronin websocket/ronin-web wscat command.