//kalinux.info
Разное 185 просмотров

Создание метапакетов Kali Linux

Создание метапакетов Kali Linux

Одной из многих полезных вещей, которые мы можем сделать с APT, является создание метапакетов, которые представляют собой пустые пакеты, которые объявляют список других пакетов в качестве зависимостей. Kali Linux включает метапакеты для взлома паролей, программного радио, беспроводной сети, веб-приложений и т. д.

Прежде чем мы начнем, нам нужно установить пакет devscripts, который включает в себя ряд инструментов и утилит для управления пакетами.

root@kali:~# apt install devscripts

В Kali все метапакеты определены в соответствующем названном пакете kali-meta, поэтому мы можем клонировать и модифицировать его в соответствии с нашими потребностями.

root@kali:~# git clone git://git.kali.org/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.

Вышеупомянутое сообщение «unable to checkout» выглядит тревожным, но это означает, что сначала нужно проверить ветвь по умолчанию (kali / master), что можно сделать следующим образом.

root@kali:~# cd kali-meta/
root@kali:~/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'
root@kali:~/kali-meta#

Чтобы создать новый метапакет (или обновить существующий), нам нужно отредактировать файл debian / control с информацией о пакете. Каждый метапакет представляет собой просто список зависимостей пакетов, разделенных запятыми, например, один для kali-linux-gpu, показанный ниже.

Package: kali-linux-gpu
Architecture: any
Depends: ${misc:Depends},
 kali-linux,
 oclhashcat [amd64 i386],
 pyrit,
 oclgausscrack [amd64 i386],
 truecrack,

Наш новый метапакет будет называться «kali-linux-mytools» и будет устанавливать Vagrant, VirtualBox, LibreOffice и Chromium. Наш вход для этого метапакета в debian / control выглядит следующим образом:

root@kali:~/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.

Если новый метапакет определен, нам нужно увеличить номер версии до «dch» создания пакета. Это запустит редактор для ввода подробных сведений об изменениях в debian / changelog.

root@kali:~/kali-meta# dch --local dookie

root@kali:~/kali-meta# head -n 5 debian/changelog
kali-meta (2018.3.2dookie1) UNRELEASED; urgency=medium

  * Added kali-linux-mytools

 -- dookie <dookie@kali.local>  Tue, 11 Sep 2018 09:40:10 -0600

Наконец, мы можем приступить к созданию нового пакета с помощью команды «dpkg-buildpackage». Поскольку метапакеты - это всего лишь списки зависимостей, процесс сборки очень быстрый.

root@kali:~/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 <dookie@kali.local>
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)

Когда сборка будет завершена, наш новый метапакет может быть установлен с помощью «apt», как и любой другой пакет.

root@kali:~/kali-meta# apt install ../kali-linux-mytools_2018.3.2dookie1_amd64.deb

...

root@kali:~/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

Именно так, у нас есть свой собственный метапакет, который мы можем хранить на сетевом ресурсе или в другом месте, чтобы быстро настроить наши новые установки Kali Linux.