以下を実行しようとすると、./msfconsole
次のエラーが発生します。
Traceback (most recent call last):
9: from ./msfconsole:48:in `<main>'
8: from ./msfconsole:48:in `require'
7: from /opt/metasploit-framework/lib/msf/core/payload_generator.rb:2:in `<top (required)>'
6: from /opt/metasploit-framework/lib/msf/core/payload_generator.rb:2:in `require'
5: from /opt/metasploit-framework/lib/msf/core/payload/apk.rb:3:in `<top (required)>'
4: from /opt/metasploit-framework/lib/msf/core/payload/apk.rb:3:in `require'
3: from /opt/metasploit-framework/lib/msf/core.rb:44:in `<top (required)>'
2: from /opt/metasploit-framework/lib/msf/core.rb:44:in `require'
1: from /opt/metasploit-framework/lib/msf/core/db_manager.rb:24:in `<top (required)>'
/opt/metasploit-framework/lib/msf/core/db_manager.rb:66:in `<class:DBManager>': undefined local variable or method `optionally_include_metasploit_credential_creation' for Msf::DBManager:Class (NameError)
しかし、私がインストールしたメタスプロイト資格情報(gem install metasploit-credential
)。私は使うアルプス山脈、バージョン3.2.0アーキテクチャはi386 musl-Linux。このエラーをどのように解決できますか?事前にありがとう
答え1
これは、Alpineの最新の安定版でMetasploitを実行する方法です。
これは私がしばらく前に作ったalpine-metasploitドッカーイメージから得たものです。ここで確認できます。 https://github.com/fcolista/alpine-metasploitそしてPostgreSQL DBをバックエンドとして使用します。
データベースを使用したくない場合は、PostgreSQL設定をスキップして(n.5ポイントで述べたように)パラメータでmfsconsole
始めることができます"-n"
(n.6ポイントのスクリプトに示すように)。 DBがありません。
1. メインリポジトリとコミュニティリポジトリで Alpine 3.11 を使用する
echo "http://dl-cdn.alpinelinux.org/alpine/v3.11/main">/etc/apk/repositories echo "http://dl-cdn.alpinelinux.org/alpine/v3.11/community" >> /etc/apk/repositories
2. 必須パッケージの追加
APKアップデート&& \ apk ビルドベースを追加 ruby ruby-bigdecimal ルビーバンドラ ruby-io-console ruby-webrick \ Ruby-開発libffi-dev openssl-dev\ readline-dev sqlite-dev postgresql-dev\ libpcap-dev libxml2-dev libxslt-dev\ yaml-dev zlib-dev ncurses-dev autoconf\ バイソンアワビ git sqlite nmap \ libxslt postgresql ncurses
3. Metasploitリポジトリを複製します/usr/share
(必要に応じてディレクトリを調整します)。
CD /usr/share && \ 子クローン https://github.com/rapid7/metasploit-framework.git &&\ CD /usr/share/metasploit-framework &&\ バンドルの更新 --bundler バンドルのインストール
4. 不要なパッケージの削除
apk デルビルドベース ruby-dev libffi-dev openssl-dev \ readline-dev sqlite-dev postgresql-dev\ libpcap-dev libxml2-dev libxslt-dev yaml-dev\ zlib-dev ncurses-dev bison autoconf\ && rm -rf /var/cache/apk/*
5. PostgreSQLの設定と起動
rc-service postgresqlの設定&& rc-service postgresqlの起動
6.データベースを設定し、mfsconsoleを起動するこの単純なスクリプトをコピーして貼り付けます。
#!/bin/sh /usr/share/metasploit-framework/msfupdate MSFUSER=${MSFUSER:-postgres} MSFPASS=${MSFPASS:-postgres} DB_PORT_5432_TCP_ADDR=${DB_PORT_5432_TCP_ADDR:-localhost} もし! [-z "$DB_PORT_5432_TCP_ADDR"]; # ユーザーが存在することを確認する もし! [ $(psql -h $DB_PORT_5432_TCP_ADDR -p 5432 -U postgres postgres -tAc "rolname='$MSFUSER'" である pg_roles から 1 つ選択 == "1" ]; psql -h $DB_PORT_5432_TCP_ADDR -p 5432 -U postgres postgres -c "$MSFU SER ログインパスワード '$MSFPASS' ロールの作成" フィリピン諸島 もし! [ $(psql -h $DB_PORT_5432_TCP_ADDR -p 5432 -U postgres postgres -lqtA | grep "^msf|" | wc -l) == "1" ]; psql -h $DB_PORT_5432_TCP_ADDR -p 5432 -U postgres postgres -c "データベース msf 所有者 $MSFUSER の作成;" フィリピン諸島 sh -c "echo' プロダクション: アダプター: postgresql データベース:国境のない議会 ユーザー名: $MSFUSER パスワード: $MSFPASS ホスト: $DB_PORT_5432_TCP_ADDR ポート: 5432 プールの数: 75 タイムアウト: 5'> /usr/share/metasploit-framework/config/database.yml" その他 /usr/share/metasploit-framework/msfconsole -n フィリピン諸島 /usr/share/metasploit-framework/msfconsole
.: フランシスコ