当サイトの一部ページには、アフィリエイト・アドセンス・アソシエイト・プロモーション広告を掲載しています。

Amazonのアソシエイトとして、Security Akademeiaは適格販売により収入を得ています。

広告配信等の詳細については、プライバシーポリシーページに掲載しています。

消費者庁が、2023年10月1日から施行する景品表示法の規制対象(通称:ステマ規制)にならないよう、配慮して記事を作成しています。もし問題の表現がありましたら、問い合わせページよりご連絡ください。

参考:令和5年10月1日からステルスマーケティングは景品表示法違反となります。 | 消費者庁

WPScanを実行するとLoggerのNameErrorが発生する【ハッキング・ラボ編】

事象

上記の記事のようにgem installでWPScanのインストールに成功した後に、WPScanを実行するとLoggerのNameErrorが発生するという指摘を受けました。

ミジンコの環境でもNameErrorが再現した

どういった状況でこの問題が発生するのかわかりませんが、執筆時点(2025年2月4日)の最新版ParrotOS(6.3.2)でこのエラーが再現しました。

※ParrotOS 6.3.2をISOからインストールした直後で試しました。パッケージのUpgradeなどはしていません。

┌─[parrot@parrot]─[~]
└──╼ $wpscan -h
/usr/share/rubygems-integration/all/gems/activesupport-6.1.7.3/lib/active_support/logger_thread_safe_level.rb:16:in `<module:LoggerThreadSafeLevel>': uninitialized constant ActiveSupport::LoggerThreadSafeLevel::Logger (NameError)

    Logger::Severity.constants.each do |severity|
    ^^^^^^
	from /usr/share/rubygems-integration/all/gems/activesupport-6.1.7.3/lib/active_support/logger_thread_safe_level.rb:9:in `<module:ActiveSupport>'
	from /usr/share/rubygems-integration/all/gems/activesupport-6.1.7.3/lib/active_support/logger_thread_safe_level.rb:8:in `<top (required)>'
	from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from /usr/share/rubygems-integration/all/gems/activesupport-6.1.7.3/lib/active_support/logger_silence.rb:5:in `<top (required)>'
	from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from /usr/share/rubygems-integration/all/gems/activesupport-6.1.7.3/lib/active_support/logger.rb:3:in `<top (required)>'
	from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from /usr/share/rubygems-integration/all/gems/activesupport-6.1.7.3/lib/active_support.rb:29:in `<top (required)>'
	from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from /usr/share/rubygems-integration/all/gems/activesupport-6.1.7.3/lib/active_support/all.rb:3:in `<top (required)>'
	from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from /var/lib/gems/3.1.0/gems/wpscan-3.8.27/lib/wpscan.rb:7:in `<top (required)>'
	from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from /var/lib/gems/3.1.0/gems/wpscan-3.8.27/bin/wpscan:4:in `<top (required)>'
	from /usr/local/bin/wpscan:25:in `load'
	from /usr/local/bin/wpscan:25:in `<main>'

解決策

【アプローチ1】環境変数を設定する

以下のコマンドを実行することで、NameErrorを回避できそうです。

┌─[ipusiron@parrot]─[~]
└──╼ $export RUBYOPT="-r logger"

【アプローチ2】Rubyの環境を再インストールする

【アプローチ3】ParrotOSを諦めてKaliを使う

『ハッキング・ラボのつくりかた 完全版』では攻撃端末のOSにParrotOSを採用していますが、好みのOSを使っても構いません。

Kali Linuxであればデフォルトインストールされているはずなので、手間いらずだと思います。

他の実験についてもKaliで試せるはずです。

参考サイト