Mémo pour bien débuter en Ruby

On va faire rapidement un tour d'horizon de l'eco-système Ruby pour bien commencer à coder et apprendre le langage.

Sites web

Principaux livres et ressources pour apprendre Ruby

Cheatsheet

Autres ressources

La documentation ri. Voir: https://ruby.github.io/rdoc/RI_rdoc.html qui permet de documenter une fonction, class, methode, etc en ligne de commande. Pour l'utiliser installer l'interpreteur REPL Pry et lancer help pour plus d'info.

Pour les SysAdmin

Ruby permet d'invoquer des commandes systèmes OS du shell et donc s'utilise comme un langage de scripting pour les tâches d'automatisation. Mais également c'est utile pour intéragir avec l'OS pour écrire des Apps. Utiliser également le module FileUtils pour copier, déplacer et supprimer des fichiers et dossiers. Pour cela utiliser la syntaxe:

`ls docs`

%x{ ls docs }

exec 'ls'

system('ls', '-l', '.')

# PID
pid = spawn("tar xf ruby.tar.bz2")
Process.wait pid

IO.popen('ls') do |pipe|
  puts pipe.readlines
end

Metasploit Modules

Ruby est très pratique pour les hackers et le framework Metasploit pour écrire ces propres exploits, c'est une fonction avancée nécessaire. Petit tour d'horizon:

Template type pour écrire un module:

require 'msf/core'

class MetasploitModule < Msf::Auxiliary

  include Msf::Auxiliary::Scanner

  def initialize(info = {})
    super(update_info(info,
      'Name'           => 'Module name',
      'Description'    => %q{
        Say something that the user might want to know.
      },
      'Author'         => [ 'Name' ],
      'License'        => MSF_LICENSE
    ))
  end

  def run
    # use `print_status` to print to the metasploit console, instead of `puts`
  end

end