WPScanを実行するとLoggerのNameErrorが発生する【ハッキング・ラボ編】
目次
はじめに
いつもブログをご覧いただきありがとうございます。
コーストFIRE中のIPUSIRONです😀
事象
上記の記事のように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で試せるはずです。