다음을 실행하려고 하면 ./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
.: 프란시스코