Eines der vielen nützlichen Dinge, die wir mit APT tun können, ist das Erstellen von Metapaketen, die praktisch leere Pakete sind, die eine Liste anderer Pakete als Abhängigkeiten deklarieren. Kali Linux enthält Metapakete für das Knacken von Passwörtern, Software-Defined Radio, Wireless, Webanwendungen und mehr, aber wenn Sie spezielle Bedürfnisse haben (wie die meisten Leute), ist es schnell und einfach, Ihre eigenen Metapakete zu definieren, die wir in diesem Beitrag zeigen werden.
Bevor wir beginnen, müssen wir die devscripts installieren Paket, das eine Reihe von Tools und Dienstprogrammen für die Paketverwaltung enthält.
[email protected]:~# apt install devscripts
In Kali sind alle Metapakete im entsprechend benannten kali-meta definiert Paket, damit wir es klonen und an unsere Bedürfnisse anpassen können.
[email protected]:~# git clone git://gitlab.com/kalilinux/packages/kali-meta
Cloning into 'kali-meta'...
remote: Counting objects: 998, done.
remote: Compressing objects: 100% (809/809), done.
remote: Total 998 (delta 365), reused 0 (delta 0)
Receiving objects: 100% (998/998), 179.90 KiB | 570.00 KiB/s, done.
Resolving deltas: 100% (365/365), done.
warning: remote HEAD refers to nonexistent ref, unable to checkout.
Die obige Meldung „Auschecken nicht möglich“ sieht besorgniserregend aus, bedeutet aber nur, dass der Standard-Zweig (kali/master) zuerst ausgecheckt werden muss, was wie folgt geschehen kann.
[email protected]:~# cd kali-meta/
[email protected]:~/kali-meta# git checkout kali/master
Branch 'kali/master' set up to track remote branch 'kali/master' from 'origin'.
Switched to a new branch 'kali/master'
[email protected]:~/kali-meta#
Um ein neues Metapaket zu erstellen (oder ein vorhandenes zu aktualisieren), müssen wir die Datei debian/control bearbeiten Datei mit den Paketinformationen. Jedes Metapaket ist lediglich eine durch Kommas getrennte Liste von Paketabhängigkeiten, wie die für die kali-linux-gpu unten gezeigt.
Package: kali-linux-gpu
Architecture: any
Depends: ${misc:Depends},
kali-linux,
oclhashcat [amd64 i386],
pyrit,
oclgausscrack [amd64 i386],
truecrack,
Unser neues Metapaket heißt „kali-linux-mytools“ und installiert Vagrant, VirtualBox, LibreOffice und Chromium. Unser Eintrag für dieses Metapaket in debian/control sieht so aus:
[email protected]:~/kali-meta# tail -n 14 debian/control
Package: kali-linux-mytools
Architecture: any
Depends: ${misc:Depends},
kali-linux,
virtualbox,
vagrant,
libreoffice,
chromium,
Description: My required Kali tools
This is Kali Linux, the most advanced penetration testing and security
auditing distribution.
.
This metapackage depends on the tools I install most often.
Wenn das neue Metapaket definiert ist, müssen wir die Versionsnummer mit „dch“ erhöhen, bevor wir das Paket erstellen. Dadurch wird ein Editor gestartet, in dem Sie die Details Ihrer Änderungen in debian/changelog eingeben können .
[email protected]:~/kali-meta# dch --local dookie
[email protected]:~/kali-meta# head -n 5 debian/changelog
kali-meta (2018.3.2dookie1) UNRELEASED; urgency=medium
* Added kali-linux-mytools
-- dookie <[email protected]> Tue, 11 Sep 2018 09:40:10 -0600
Schließlich können wir mit dem Befehl „dpkg-buildpackage“ fortfahren, das neue Paket zu erstellen. Da Metapakete nur Listen von Abhängigkeiten sind, ist der Erstellungsprozess sehr schnell.
[email protected]:~/kali-meta# dpkg-buildpackage -us -uc -b
dpkg-buildpackage: info: source package kali-meta
dpkg-buildpackage: info: source version 2018.3.2dookie1
dpkg-buildpackage: info: source distribution UNRELEASED
dpkg-buildpackage: info: source changed by dookie <[email protected]>
dpkg-buildpackage: info: host architecture amd64
...
dpkg-deb: building package 'kali-linux-pwtools' in '../kali-linux-pwtools_2018.3.2dookie1_amd64.deb'.
dpkg-deb: building package 'kali-linux-top10' in '../kali-linux-top10_2018.3.2dookie1_amd64.deb'.
dpkg-deb: building package 'kali-linux-mytools' in '../kali-linux-mytools_2018.3.2dookie1_amd64.deb'.
dpkg-genbuildinfo --build=binary
dpkg-genchanges --build=binary >../kali-meta_2018.3.2dookie1_amd64.changes
dpkg-genchanges: info: binary-only upload (no source code included)
dpkg-source --after-build kali-meta
dpkg-buildpackage: info: binary-only upload (no source included)
Wenn der Build abgeschlossen ist, kann unser neues Metapaket wie jedes andere Paket mit „apt“ installiert werden.
[email protected]:~/kali-meta# apt install ../kali-linux-mytools_2018.3.2dookie1_amd64.deb
...
[email protected]:~/kali-meta# apt-cache policy vagrant virtualbox libreoffice chromium
vagrant:
Installed: 2.1.2+dfsg-1
Candidate: 2.1.2+dfsg-1
Version table:
*** 2.1.2+dfsg-1 500
500 http://192.168.86.4/kali kali-rolling/main amd64 Packages
100 /var/lib/dpkg/status
virtualbox:
Installed: 5.2.18-dfsg-2
Candidate: 5.2.18-dfsg-2
Version table:
*** 5.2.18-dfsg-2 500
500 http://192.168.86.4/kali kali-rolling/contrib amd64 Packages
100 /var/lib/dpkg/status
libreoffice:
Installed: 1:6.1.1~rc1-2
Candidate: 1:6.1.1~rc1-2
Version table:
*** 1:6.1.1~rc1-2 500
500 http://192.168.86.4/kali kali-rolling/main amd64 Packages
100 /var/lib/dpkg/status
chromium:
Installed: 68.0.3440.75-2
Candidate: 68.0.3440.75-2
Version table:
*** 68.0.3440.75-2 500
500 http://192.168.86.4/kali kali-rolling/main amd64 Packages
100 /var/lib/dpkg/status
Einfach so haben wir unser eigenes Metapaket, das wir auf einer Netzwerkfreigabe oder an einem anderen Ort speichern können, um unsere frischen Kali-Linux-Installationen schnell einzurichten und schnell zu konfigurieren.