• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Статья Расширенный пакет управления в Кали Linux

Огромное спасибо пользователю persivald за своевременный перевод!

kali-advanced-package-management-2.png


Расширенный пакет управления в Kali Linux

(APT) - это когда программы, библиотеки, документация и даже ядро установлены и настроены для работы на Kali и других Debian-подобных дистрибутивах. АРТ работает настолько хорошо, что большинство пользователей часто не замечают его присутствия, за исключением поиска некоторых программ и (надеюсь) обноволений для их системы.

Для большинства стандартных пользователей использующих АРТ таким образом (имеется ввиду установил и забыл пр.переводчика) это вполне приемлемо, но нам хочется думать, что люди использующие Kali Linux не стандартные пользователи (в хорошем смысле) поэтому мы публикуем этот пост, что бы рассказать Вам о возможностях его использования и как получить приемущества всей экосистемы доступных пакетов, сохраняя при этом стабильность Вашей Kali.

Большинство людей скажут Вам, что Вы не должны надеяться на пекетный менеджер, а напротив, компилировать всё из источника, потому что таким образом Вы будете лучше понимать систему. Частично это так, Вы многое изучите и поймёте, особенно если начнёте настройку вручную, но это довольно быстро надоедает и отнимает на мало времени, которое Вы могли бы потратить на hacking или изучение чего-нибудь нового, желательно одновременно.

В этом посту мы покажем Вам, как Вы можете безопасно добавлять дополнительные репозитории пакетов в установку Kali, как апгрейдить и откатывать обновы, и как убедиться, что всё это работает корректно. APT очень эффективен и будет оценивать доступные пакеты из всех источников в целом, когда он формулирует свои решения.

Добавление источников пакетов в Kali Linux

Если вы хотите сделать свое будущее счастливым, вы не должны напрямую редактировать /etc/apt/sources.list . Для каждого нового репозитория пакетов, который вы добавляете в свою систему, создайте новый файл с описательным именем (например, debian-unstable.list) в /etc/apt/sources.list.d/. Если оставить исходный файл sources.list нетронутым, если Kali необходимо его обновить, он не будет прерывать вас во время обновления, спрашивая, какую версию файла сохранить.В этом посте мы добавим репозиторий Kali Bleeding-Edge и нестабильные и экспериментальные репозитории Debian.

kali-bleeding-edge репозиторий

Репозиторий kali-bleeding-edge содержит ряд инструментов, которые очень популярны и меняются очень часто (даже ежедневно). Было бы непрактичным и трудоемким вручную создавать и тестировать обновленные пакеты, чтобы пакеты в этом репозитории генерировались автоматически всякий раз, когда изменяется исходный источник. С одной стороны, это означает, что обновления Ваших пакетов не старше 24х часов, но с другой стороны, эти пакеты не тестируются, поэтому вам нужно осознавать, что пакеты в этом репозитории могут время от времени ломаться.
Вы можете добавить репозиторий и обновить список доступных пакетов следующим образом.
Код:
echo "deb http://http.kali.org/kali kali-bleeding-edge main contrib non-free" > /etc/apt/sources.list.d/bleeding-edge.list
apt update
Чтобы установить пакет из kali-bleeding-edge, вам нужно добавить имя репозитория в имя пакета:
Код:
apt install dnsrecon/kali-bleeding-edge
К счастью, APT упрощает переход к kali-rolling версии конкретного пакета в любое время, поэтому нет необходимости опасаться пакетов в хранилище из kali-bleeding-edge. Если вы обнаружите, что пакет из kali bleeding edge работает не корректно, вы можете откатиться на kali rolling версию таким же образом:
Код:
apt install dnsrecon/kali-rolling

Нестабильные и экспериментальные хранилища Debian

Kali Linux является производным от Debian Testing, у которого есть более современное программное обеспечение, чем в Debian Stable. Для еще более позднего программного обеспечения существует дистрибутив Debian Unstable, который является rolling версией Debian, содержащей самые последние пакеты. Когда вы сталкиваетесь с ошибкой в пакете Debian, в репозитории Debian Unstable уже может лежать исправленая версия, поэтому рекомендуется добавить ее в вашу систему Kali. Как и в случае с kali-bleeding-edge, пакеты в Unstable могут время от времени ломаться.

Debian Experimental - еще один репозиторий, содержащий пакеты, которые находятся в разработке. Пакеты в этом репозитории всегда обновляются, но при этом могут быть очень глючными, даже хуже, чем в kali-bleeding-edge или Debian Unstable. APT будет устанавливать пакеты только из этого репозитория, если вы явно запросите их, и вы всегда можете всегда откатиться, если что-то перестанет работать.
Код:
echo "deb http://ftp.debian.org/debian unstable main contrib non-free" > /etc/apt/sources.list.d/debian.list
echo "deb http://deb.debian.org/debian experimental main" >> /etc/apt/sources.list.d/debian.list
apt update
Как и в случае пакетов kali-bleeding-edge, если вы хотите установить пакеты из нестабильных или экспериментальных, добавьте имя репозитория в конец имени пакета, как показано ниже.
Код:
root@kali:~# apt install socat/experimental netperf/unstable
Reading package lists... Done
Building dependency tree  
Reading state information... Done
Selected version '2.0.0~beta9-1' (Debian:experimental [amd64]) for 'socat'
Selected version '2.6.0-2.1' (kali-rolling, Debian:unstable [amd64]) for 'netperf'
The following NEW packages will be installed:
  netperf
The following packages will be upgraded:
  socat
1 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 909 kB of archives.
After this operation, 1,127 kB of additional disk space will be used.
Get:1 http://kali.mirror.globo.tech/kali kali-rolling/non-free amd64 netperf amd64 2.6.0-2.1 [544 kB]
Get:2 http://deb.debian.org/debian experimental/main amd64 socat amd64 2.0.0~beta9-1 [365 kB]
Fetched 909 kB in 1s (555 kB/s)                          
Reading changelogs... Done
apt-listchanges: Mailing root: apt-listchanges: news for kali
Selecting previously unselected package netperf.
(Reading database ... 287650 files and directories currently installed.)
Preparing to unpack .../netperf_2.6.0-2.1_amd64.deb ...
Unpacking netperf (2.6.0-2.1) ...
Preparing to unpack .../socat_2.0.0~beta9-1_amd64.deb ...
Unpacking socat (2.0.0~beta9-1) over (1.7.3.2-1) ...
Setting up socat (2.0.0~beta9-1) ...
Processing triggers for systemd (234-3) ...
Processing triggers for man-db (2.7.6.1-2) ...
Setting up netperf (2.6.0-2.1) ...
update-rc.d: We have no instructions for the netperf init script.
update-rc.d: It looks like a network service, we disable it.
Processing triggers for systemd (234-3) ...

Определение приоритетов пакетов

Чтобы определить, какие пакеты будут установлены, APT умеет назначать приоритеты для всех источников пакетов, отдавая предпочтение наивысшему приоритету. Пакет с приоритетом 0 никогда не будет установлен, а пакет с приоритетом более 1000 будет всегда установлен, даже если это откат пакета на старую версию.

Это прекрасно для APT, но как пользователь сможет увидеть, какой приоритет назаначен конкретному пакету? Введите малоизвестную команду "apt-cache" и ее опцию "policy", которая покажет все ваши настроенные репозитории и их назначенные приоритеты.
Код:
root@kali:~# apt-cache policy
Package files:
100 /var/lib/dpkg/status
     release a=now
   1 http://deb.debian.org/debian experimental/main amd64 Packages
     release o=Debian,a=experimental,n=experimental,l=Debian,c=main,b=amd64
     origin deb.debian.org
500 http://ftp.debian.org/debian unstable/non-free amd64 Packages
     release o=Debian,a=unstable,n=sid,l=Debian,c=non-free,b=amd64
     origin ftp.debian.org
500 http://ftp.debian.org/debian unstable/contrib amd64 Packages
     release o=Debian,a=unstable,n=sid,l=Debian,c=contrib,b=amd64
     origin ftp.debian.org
500 http://ftp.debian.org/debian unstable/main amd64 Packages
     release o=Debian,a=unstable,n=sid,l=Debian,c=main,b=amd64
     origin ftp.debian.org
100 http://http.kali.org/kali kali-bleeding-edge/main amd64 Packages
     release o=Kali,n=kali-bleeding-edge,c=main,b=amd64
     origin http.kali.org
990 http://http.kali.org/kali kali-rolling/contrib amd64 Packages
     release o=Kali,a=kali-rolling,n=kali-rolling,c=contrib,b=amd64
     origin http.kali.org
990 http://http.kali.org/kali kali-rolling/non-free amd64 Packages
     release o=Kali,a=kali-rolling,n=kali-rolling,c=non-free,b=amd64
     origin http.kali.org
990 http://http.kali.org/kali kali-rolling/main amd64 Packages
     release o=Kali,a=kali-rolling,n=kali-rolling,c=main,b=amd64
     origin http.kali.org
Pinned packages:
Вы заметите, что kali-rolling, как дистрибутив по умолчанию, имеет наивысший приоритет на уровне 990, то есть его пакеты имеют приоритет над всеми остальными (обычно, это то, что нужно пользователю Kali), а следом Debian unstable на 500, kali-bleeding-edge на 100, и, наконец, experimental, с низким приоритетом 1. Чтобы увидеть, как эти приоритеты относятся к данному пакету, взгляните на .
Код:
root@kali:~# apt-cache policy sqlmap
sqlmap:
  Installed: 1.1.9-1
  Candidate: 1.1.9-1
  Version table:
     1.1.9+0~git1505273832.7de63a-1 100
        100 http://http.kali.org/kali kali-bleeding-edge/main amd64 Packages
*** 1.1.9-1 990
        990 http://http.kali.org/kali kali-rolling/main amd64 Packages
        500 http://ftp.debian.org/debian unstable/main amd64 Packages
        100 /var/lib/dpkg/status
Несмотря на то, что версия sqlmap в kali-bleeding-edge новее, она не будет установлена, поскольку она имеет приоритет 100 по сравнению с установленной версией, которая имеет приоритет 990. Поэтому, если вы хотите установить пакет из другого репозитория пакета, его необходимо назначить вручную.
Код:
root@kali:~# apt install sqlmap/kali-bleeding-edge
Reading package lists... Done
Building dependency tree  
Reading state information... Done
Selected version '1.1.9+0~git1505273832.7de63a-1' (http.kali.org [all]) for 'sqlmap'
The following packages will be upgraded:
  sqlmap
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 6,789 kB of archives.
After this operation, 2,048 B of additional disk space will be used.
Get:1 http://kali.mirror.globo.tech/kali kali-bleeding-edge/main amd64 sqlmap all 1.1.9+0~git1505273832.7de63a-1 [6,789 kB]
Fetched 6,789 kB in 5s (1,192 kB/s)
Reading changelogs... Done
(Reading database ... 287587 files and directories currently installed.)
Preparing to unpack .../sqlmap_1.1.9+0~git1505273832.7de63a-1_all.deb ...
Unpacking sqlmap (1.1.9+0~git1505273832.7de63a-1) over (1.1.9-1) ...
Setting up sqlmap (1.1.9+0~git1505273832.7de63a-1) ...
Processing triggers for man-db (2.7.6.1-2) ...

Настройка APT

Настройка распределения по умолчанию

Теперь, когда вы добавили допольнительные репозитории в вашу систему, вы захотите начать изучение и установку новых пакетов, но прежде чем вы это сделаете, неплохо сообщить APT, что ваш дистрибутив по умолчанию, который для пользователей Kali Linux - это "kali -rolling". Таким образом, ваша система не будет обновляться из какого-либо другого дистрибутива без вашего согласия. Настройте свой дистрибутив по умолчанию, добавив "APT :: Default-Release" kali-roll ";" в /etc/apt/apt.conf.d/local.
Код:
root@kali:~# cat /etc/apt/apt.conf.d/local
APT::Default-Release "kali-rolling";
Если вы назначили свой дистрибутив по умолчанию, каждый раз, когда вы запускаете "apt full-upgrade", он будет применять обновление для kali-rolling, что поможет поддерживать стабильность вашей системы.

Запрос сокращения обновления

Если вы используетесь каким-либо Debian-подобным дистрибутивом достаточно давно, то при запуске "apt upgrade" вы сталкиваетесь с запросом о файле конфигурации и хотите ли вы сохранить локальную версию, использовать новую версию или сравнить ее. Чаще всего вы принимаете дефолт, лишь отвлекаясь на эти запросы.

Можно избежать этих запросов, обновив файл /etc/apt/apt.conf.d/local с помощью параметров "DPkg :: options" ("-force-confdef"; "-force-confold"; }' как показано ниже. Эта строка сообщает APT действовать самостоятельно: если файлы не изменились (-force-confdef), а если файлы разные, то можно сохранить существующую версию (-force-confold).
Код:
root@kali:~# cat /etc/apt/apt.conf.d/local
DPkg::options { "--force-confdef"; "--force-confold"; }
APT::Default-Release "kali-rolling";

Закрепление версии пакетов

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

К счастью, APT позволяет привязать пакет к определенной версии, установив приоритет 1001 в / etc / apt / preferences. Например, чтобы сообщить APT, чтобы пакет devscripts содержал версию 2.16.x, вы должны добавить следующее:
Код:
Package: devscripts
Pin: version 2.16.*
Pin-Priority: 1001

Дополнительные ресурсы

В этой статье мы лишь поверхностно коснулись того, как вы можете расширить APT далеко за пределы стандартной экосистемы Kali или Debian. Алгоритмы АРТ очень эффективны, и проблемы в них встречаются редко, поэтому вам не нужно бояться пробовать другие репозитории. Чтобы узнать больше об APT и о том, как настроить его по своему желанию, мы рекомендуем обратиться к и , в которых содержится множество информации, советов и трюков.
 
Последнее редактирование:
R

remez

Отличная статья и главное очень актуальная. А то достали уже разрабы Кали с этими репозиториями
 
  • Нравится
Реакции: ghost
C

cyberlion

Очень нужная информация, спасибо автору!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!