AlpineのMetasploitエラー

AlpineのMetasploitエラー

以下を実行しようとすると、./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

.: フランシスコ

関連情報