Situatie
Laboratoarele de securitate devin mai usor de repetat cand cautarea de module, generarea de payload-uri, spatiile de lucru bazate pe baze de date si verificarile sigure ale targetelor ruleaza toate dintr-o singura consola. Pentru a instala Metasploit pe Debian fara a inlocui pachetele Ruby, Python sau PostgreSQL ale sistemului Debian, folositi repository-ul APT oficial al Rapid7 pentru Metasploit Framework.
Debian 13 (Trixie), Debian 12 (Bookworm) si Debian 11 (Bullseye) pot folosi pachetele APT nightly ale Rapid7. Repository-urile implicite Debian nu furnizeaza in prezent un pachet metasploit-framework, deci acest flux de lucru APT mentine sursa pachetului, actualizarile, configurarea bazei de date si eliminarea sub APT.
ATENTIE: Metasploit este un framework de securitate cu dubla utilizare. Folositi-l doar pe sisteme pe care le detineti, operati sau aveti permisiune scrisa explicita sa le evaluati, si mentineti targetele de laborator separate de sistemele de productie ori de cate ori este posibil.
Alegerea sursei de pachete Debian
| Cale pachet | Status pe Debian | Caz de utilizare |
|---|---|---|
| Repository APT Rapid7 | Pachete oficiale Metasploit Framework pentru package manager-ele Debian/Ubuntu | Recomandat pentru sisteme Debian normale de laborator si actualizari repetabile |
| Pachet Snap Store | Pachet Snap separat mentinut in afara repository-ului APT al Rapid7 | Doar pentru utilizatori care doresc intentionat ambalarea Snap si modelul sau de permisiuni |
| Checkout sursa | Flux de lucru de dezvoltare din arborele sursa Metasploit Framework | Dezvoltarea framework-ului, nu calea de instalare ambalata Debian |
Solutie
Pasi de urmat
Actualizarea Debian si instalarea instrumentelor de repository
Reimprospatati mai intai sursele APT activate, apoi instalati instrumentele mici necesare pentru a prelua continut HTTPS si a converti cheia de semnare Rapid7 intr-un keyring local:
sudo apt update
sudo apt install ca-certificates curl gpg
Adaugarea cheii de semnare Rapid7
Importati cheia curenta de semnare a pachetelor Metasploit de la Rapid7 intr-un keyring APT dedicat:
curl -fsSL https://apt.metasploit.com/metasploit-framework.gpg.key | sudo gpg --dearmor --yes -o /usr/share/keyrings/metasploit-framework.gpg
Verificati amprenta din keyring-ul salvat inainte de a avea incredere in noua sursa:
gpg --quiet --show-keys --with-fingerprint /usr/share/keyrings/metasploit-framework.gpg
pub rsa4096 2015-05-26 [SC] [expires: 2030-01-11]
97B3 2012 EA11 76F0 5372 7A95 C048 F0B4 9DEE C457
uid Release Engineering <r7_re@rapid7.com>
Crearea sursei APT Metasploit
Documentatia instalatorului nightly Metasploit a Rapid7 pointeaza utilizatorii Debian si Ubuntu catre https://apt.metasploit.com. Aceste comenzi folosesc acelasi repository si cheie de semnare dar scriu un fisier DEB822 .sources astfel incat sursa sa fie mai usor de inspectat si eliminat.
NOTA: Repository-ul foloseste in continuare lucid ca nume de suite, deci mentineti acea valoare exact asa cum este scrisa in loc sa o inlocuiti cu trixie, bookworm sau bullseye.
Blocul de sursa protejat scrie fisierul DEB822 doar cand arhitectura Debian curenta corespunde unuia dintre indexele de pachete publicate (amd64, arm64, armhf, i386):
(
set -e
arch="$(dpkg --print-architecture)"
case “$arch” in
amd64|arm64|armhf|i386)
printf ‘%s\n’ \
‘Types: deb’ \
‘URIs: https://apt.metasploit.com’ \
‘Suites: lucid’ \
‘Components: main’ \
“Architectures: $arch” \
‘Signed-By: /usr/share/keyrings/metasploit-framework.gpg’ | sudo tee /etc/apt/sources.list.d/metasploit-framework.sources > /dev/null
;;
*)
printf ‘Rapid7 does not publish Metasploit APT packages for %s.\n’ “$arch” >&2
exit 1
;;
esac
)
Reimprospatarea APT si instalarea Metasploit
Reimprospatati APT din nou pentru ca Debian sa citeasca sursa Rapid7, apoi confirmati ca pachetul candidat provine din apt.metasploit.com inainte de a-l instala:
sudo apt update
apt-cache policy metasploit-framework
Output-ul politicii trebuie sa listeze https://apt.metasploit.com in tabelul de versiuni. Rapid7 recompileaza pachetele nightly frecvent, deci versiunea exacta a pachetului se schimba in timp.
Instalati pachetul framework dupa ce sursa si candidatul par corecti:
sudo apt install metasploit-framework
NOTA: Revizuiti tranzactia APT inainte de confirmare. Pe amd64, asteptati aproximativ 400 MB de descarcat si aproape 900 MB instalat deoarece Rapid7 include runtime-ul framework-ului in interiorul pachetului.
Verificarea Metasploit Framework pe Debian
Confirmati ca Debian poate gasi lansatorul consolei si ca pachetul este instalat:
command -v msfconsole
dpkg-query -W -f='${db:Status-Abbrev} ${binary:Package}\n' metasploit-framework
Output relevant incepe cu calea lansatorului si o stare de pachet instalat:
/usr/bin/msfconsole
ii metasploit-framework
Configurarea bazei de date Metasploit pe Debian
Metasploit poate porni fara o baza de date, dar spatiile de lucru bazate pe baze de date pastreaza hosturi, servicii, notite, credentiale si rezultate de scanare importate intre sesiuni. Initializati baza de date per-utilizator cu valorile implicite:
msfdb init --use-defaults
Initializarea reusita creeaza baza de date sub ~/.msf4/db si porneste runtime-ul PostgreSQL inclus:
Running the 'init' command for the database:
Creating initial database schema
Database initialization successful
Verificati starea bazei de date din helper:
msfdb status
Running the 'status' command for the database:
Database started
Verificati conexiunea la baza de date din interiorul msfconsole fara a ramane la promptul interactiv:
msfconsole -q -x 'db_status; exit -y'
[*] Connected to msf. Connection type: postgresql.
Primele verificari in consola Metasploit
Porniti consola dintr-un terminal cand sunteti gata sa lucrati interactiv:
msfconsole
In interiorul promptului msf6 >, incepeti cu comenzi de descoperire read-only. Aceste comenzi afiseaza ajutor, cauta metadate de module si inspecteaza un modul fara a-l rula impotriva vreunui target:
help
search type:auxiliary name:scanner
info auxiliary/scanner/ssh/ssh_version
exit -y
| Comanda consola | Utilizare |
|---|---|
| help | Listeaza comenzile consolei si categoriile de comenzi |
| search | Gaseste module dupa tip, platforma, nume, CVE, autor sau cuvant cheie |
| info | Afiseaza descrierea modulului, optiunile, referintele si cerintele inainte de orice tentativa de rulare |
| db_status | Confirma daca consola este conectata la baza de date Metasploit |
| exit -y | Paraseste consola fara un prompt suplimentar de confirmare |
Intelegerea modulelor si optiunilor de datastore
| Concept | Semnificatie pentru prima sesiune |
|---|---|
| module auxiliary | Module de suport precum scannere si enumeratoare. Inspectati-le cu info inainte de orice tentativa de rulare |
| module exploit | Module care incearca sa foloseasca o vulnerabilitate. Rulati-le doar pe targetele de laborator autorizate dupa revizuirea optiunilor necesare |
| module payload | Cod asociat cu un exploit dupa o compromitere reusita. Payload-urile nu sunt necesare pentru verificarea instalarii |
| module post | Module folosite dupa ce o sesiune autorizata exista deja |
| optiuni datastore | set aplica o valoare modulului curent; setg creeaza o valoare implicita globala. Preferati valorile la nivel de modul in timp ce invatati astfel incat setarile sa nu se transfere la modulele ulterioare |
Actualizarea Metasploit Framework pe Debian
Deoarece aceasta instalare foloseste o sursa APT, actualizati Metasploit prin APT. Optiunea --only-upgrade upgrade-uieste pachetul doar daca este deja instalat:
sudo apt update
sudo apt install --only-upgrade metasploit-framework
Depanare probleme Metasploit Framework pe Debian
APT nu poate verifica repository-ul Metasploit
O eroare de cheie sau Signed-By inseamna de obicei ca keyring-ul lipseste, fisierul sursa pointeaza catre o alta cale de cheie, sau o configurare mai veche a lasat o sursa duplicata. Verificati mai intai sursa activa:
cat /etc/apt/sources.list.d/metasploit-framework.sources
gpg --quiet --show-keys --with-fingerprint /usr/share/keyrings/metasploit-framework.gpg
Daca APT raporteaza in continuare o eroare de cheie Metasploit sau de sursa duplicata, eliminati numele de fisiere legacy folosite de instructiunile de configurare mai vechi, apoi repetati pasii cu cheia Rapid7 si sursa DEB822:
sudo rm -f /etc/apt/sources.list.d/metasploit-framework.list
sudo rm -f /etc/apt/sources.list.d/metasploit.list
sudo rm -f /usr/share/keyrings/metasploit.gpg
sudo apt update
APT nu afiseaza niciun candidat de pachet Metasploit
Daca apt-cache policy metasploit-framework nu afiseaza niciun candidat sau nu listeaza apt.metasploit.com, confirmati ca sursa Rapid7 exista si ca arhitectura voastra este una dintre indexele de pachete Debian publicate:
dpkg --print-architecture
cat /etc/apt/sources.list.d/metasploit-framework.sources
sudo apt update
apt-cache policy metasploit-framework
NOTA: Arhitecturile APT suportate sunt amd64, arm64, armhf si i386. Alte arhitecturi Debian necesita o abordare diferita.
Metasploit nu afiseaza conexiunea la baza de date
Confirmati conexiunea lipsa cu acelasi check non-interactiv de consola folosit anterior:
msfconsole -q -x 'db_status; exit -y'
O consola fara conexiune la baza de date afiseaza de obicei:
[*] postgresql selected, no connection
Verificati starea bazei de date per-utilizator inainte de a o modifica:
msfdb status
Daca baza de date exista dar este oprita, porniti-o si retestati conexiunea consolei:
msfdb start
msfconsole -q -x 'db_status; exit -y'
Daca msfdb status raporteaza ca baza de date nu exista, initializati-o, apoi repetati verificarea bazei de date din consola:
msfdb init --use-defaults
msfconsole -q -x 'db_status; exit -y'
Avertismente Ruby Gem apar in timpul comenzilor msfdb
Unele pachete nightly Rapid7 afiseaza linii de avertisment Ruby inclus inainte de output-ul normal msfdb. Rulati verificarea statusului si cititi starea bazei de date dupa liniile de avertisment:
msfdb status
WARN: Unresolved or ambiguous specs during Gem::Specification.reset:
base64 (>= 0.2)
logger (~> 1.6)
Running the 'status' command for the database:
Database started
Actualizati mai intai Metasploit. Daca msfdb status raporteaza in continuare Database started si msfconsole se conecteaza la PostgreSQL, avertismentul provine din runtime-ul Metasploit inclus, nu dintr-un pachet Debian lipsa.
Eliminarea Metasploit Framework din Debian
Stergerea bazei de date Metasploit
Curatarea bazei de date elimina baza de date locala Metasploit si configuratia de sub contul vostru. Exportati sau faceti backup la orice mai aveti nevoie inainte de a confirma stergerea. Daca ati initializat baza de date Metasploit, stergeti-o inainte de a elimina pachetul astfel incat helper-ul sa poata opri curat procesul PostgreSQL inclus:
msfdb delete
Comanda intreaba daca doriti sa stergeti datele si configuratiile existente. Raspundeti yes doar cand sunteti gata sa eliminati baza de date locala.
Purificarea Metasploit si eliminarea sursei APT
Purificati pachetul dupa orice curatare a bazei de date este completa:
sudo apt purge metasploit-framework
Eliminati fisierul sursa DEB822 si numele de fisiere legacy folosite de instructiunile mai vechi de configurare Metasploit:
sudo rm -f /etc/apt/sources.list.d/metasploit-framework.sources
sudo rm -f /etc/apt/sources.list.d/metasploit-framework.list
sudo rm -f /etc/apt/sources.list.d/metasploit.list
for keyring in /usr/share/keyrings/metasploit-framework.gpg /usr/share/keyrings/metasploit.gpg; do
if find /etc/apt/sources.list /etc/apt/sources.list.d -type f -print0 2>/dev/null | xargs -0r grep -Fqs -- "$keyring"; then
printf 'Metasploit keyring still referenced by another APT source: %s\n' "$keyring"
else
sudo rm -f "$keyring"
fi
done
sudo apt update
Reimprospatati cache-ul de comenzi Bash daca verificati eliminarea in aceeasi sesiune de terminal, apoi confirmati ca lansatorul, inregistrarea pachetului si candidatul de repository au disparut:
hash -r
command -v msfconsole || echo "msfconsole removed"
dpkg-query -W -f='${db:Status-Abbrev} ${binary:Package}\n' metasploit-framework 2>/dev/null || echo "metasploit-framework package record removed"
apt-cache policy metasploit-framework
Dupa curatarea sursei, verificarea lansatorului trebuie sa raporteze msfconsole removed, iar dpkg-query trebuie sa raporteze ca inregistrarea pachetului a fost eliminata.
NOTA: Daca apt-cache policy metasploit-framework afiseaza in continuare un candidat din apt.metasploit.com, un alt fisier sursa Metasploit ramane activat.
Eliminarea datelor ramase ale utilizatorului Metasploit
Eliminarea ~/.msf4 sterge datele de profil Metasploit pentru contul Linux curent, inclusiv configuratia locala, jurnalele si orice fisiere ramase din spatiul de lucru.
Verificati daca directorul de profil inca exista:
find "$HOME" -maxdepth 1 -name ".msf4" -print
Daca comanda afiseaza /home/username/.msf4 pentru contul vostru si nu mai aveti nevoie de acel profil, eliminati-l:
rm -rf "$HOME/.msf4"
Leave A Comment?