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-리눅스. 이 오류를 어떻게 해결할 수 있나요? 미리 감사드립니다

답변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 \
    루비-개발 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

.: 프란시스코

관련 정보