Руководство разработчика BlackArch Linux

Источник https://www.blackarch.org/

Вернуться к оглавлению BlackArch Linux полное руководство

Содержание

Глава 3

Руководство разработчика BlackArch Linux

3.1 Система билдов и репозиториев Arch

Файлы PKGBUILD — это скрипты для сборки. Каждый их них поясняет makepkg(1), как создать пакет. Файлы PKGBUILD написаны на Bash.

Если вас интересуют подробности, прочитайте (или просмотрите) следующие публикации:

3.2 Стандарты PKGBUILD в Blackarch

Для простоты, наши PKGBUILD похожи на аналоги в AUR, но имеют несколько небольших отличий, указанных ниже. Каждый пакет должен, как минимум, принадлежать blackarch. Кроме этого, некоторые пакеты могут входить сразу в несколько групп.

3.2.1 Группы

Чтобы пользователи могли быстро устанавливать пакеты определённого типа, все они были разделены на группы. Благодаря группам пользователь может просто выполнить команду «pacman -S <название группы>», чтобы установить сразу множество пакетов.

3.2.1.1 blackarch

Группа blackarch является базовой группой, к которой должны принадлежать все пакеты. С её помощью можно быстро установить все имеющиеся пакеты.

Что должно сюда входить: Всё.

3.2.1.2 blackarch-anti-forensic

Пакеты, использующиеся для противостояния розыскной деятельности, включая шифрование, стеганографию и другие действия, приводящие к изменению атрибутов файлов. Сюда входят инструменты, работающие со всем, что вносит в систему изменения с целью сокрытия информации.

Примеры: luks, TrueCrypt, Timestomp, dd, ropeadope, secure-delete

3.2.1.3 blackarch-automation

Пакеты, использующиеся для автоматизации инструмента или рабочего процесса.

Примеры: blueranger, tiger, wiffy

3.2.1.4 blackarch-backdoor

Пакеты, открывающие бэкдоры в уже уязвимые системы или эксплуатирующие их.

Примеры: backdoor-factory, rrs, weevely

3.2.1.5 blackarch-binary

Пакеты, в той или иной форме работающие с двоичными файлами.

Примеры: binwally, packerid

3.2.1.6 blackarch-bluetooth

Пакеты, эксплуатирующие всё, связанное со стандартом Bluetooth (802.15.1).

Примеры: ubertooth, tbear, redfang

3.2.1.7 blackarch-code-audit

Пакеты, проверяющие существующий исходный код с целью анализа на наличие уязвимостей.

Примеры: flawfinder, pscan

3.2.1.8 blackarch-cracker

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

Примеры: hashcat, john, crunch

3.2.1.9 blackarch-crypto

Пакеты, работающие с криптографией, за исключением взломов.

Примеры: ciphertest, xortool, sbd

3.2.1.10 blackarch-database

Пакеты, связанные с эксплуатацией баз данных на любом уровне.

Пример: metacoretex, blindsql

3.2.1.11 blackarch-debugger

Пакеты, позволяющие пользователю в реальном времени следить за тем, что «делает» определённая программа.

Примеры: radare2, shellnoob

3.2.1.12 blackarch-decompiler

Пакеты, пытающиеся преобразовать скомпилированную программу обратно в исходный код.

Примеры: flasm, jd-gui

3.2.1.13 blackarch-defensive

Пакеты, используемые для защиты пользователя от вредоносного ПО, а так же атак со стороны других пользователей.

Примеры: arpon, chkrootkit, sniffjoke

3.2.1.14 blackarch-disassembler

Данная категория похожа на blackarch-decompiler. Скорее всего, многие программы будут входить в оба этих подраздела. Однако, результатом работы пакетов, относящихся к blackarch-disassembler, является не исходный код, а скомпилированные данные.

Примеры: inguma, radare2

3.2.1.15 blackarch-dos

Пакеты, использующие DoS (отказ в обслуживании) атаки.

Примеры: 42zip, nkiller2

3.2.1.16 blackarch-drone

Пакеты, использующиеся для управления беспилотными дронами.

Пример: meshdeck, skyjack

3.2.1.17 blackarch-exploitation

Пакеты, пользующиеся эксплойтами в других программах или сервисах.

Пример: armitage, metasploit, zarp

3.2.1.18 blackarch-fingerprint

Пакеты, эксплуатирующие биометрическое оборудование, работающее с отпечатками пальцев.

Примеры: dns-map, p0f, httprint

3.2.1.19 blackarch-firmware

Пакеты, эксплуатирующие уязвимости в прошивках.

Примеры: None yet, amend asap.

3.2.1.20 blackarch-forensic

Пакеты, использующиеся для поиска данных на физических дисках или во встроенной памяти.

Примеры: aesfix, nfex, wyd

3.2.1.21 blackarch-fuzzer

Пакеты, использующие принцип фаззингового тестирования, то есть ввод случайных данных и анализ результатов.

Примеры: msf, mdk3, wfuzz

3.2.1.22 blackarch-hardware

Любые пакеты, работающие с аппаратным обеспечением.

Примеры: arduino, smali

3.2.1.23 blackarch-honeypot

Пакеты, играющие роль «горшочков с мёдом», то есть программ, которые притворяются уязвимыми сервисами и заманивают хакеров в ловушку.

Примеры: artillery, bluepot, wifi-honey

3.2.1.24 blackarch-keylogger

Пакеты, записывающие нажатия клавиш в другой системе.

Примеры: None yet, amend asap.

3.2.1.25 blackarch-malware

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

Примеры: malwaredetect, peepdf, yara

3.2.1.26 blackarch-misc

Пакеты, которые нельзя отнести к другим категориям.

Примеры: oh-my-zsh-git, winexe, stompy

3.2.1.27 blackarch-mobile

Пакеты для управления мобильными платформами.

Примеры: android-sdk-platform-tools, android-udev-rules

3.2.1.28 blackarch-networking

Пакеты, работающие с IP-сетями.

Примеры: Практически любой пакет

3.2.1.29 blackarch-nfc

Пакеты, использующие nfc (ближнюю бесконтактную связь).

Примеры: nfcutils

3.2.1.30 blackarch-packer

Пакеты, управляющие упаковщиками или имеющие к ним отношение.

/textifpackers — программы, встраивающие вредоносное ПО в исполняемые файлы других приложений.

Примеры: packerid

3.2.1.31 blackarch-proxy

Пакеты, играющие роль прокси, то есть перенаправляющие трафик через другой узел интернета.

Примеры: burpsuite, ratproxy, sslnuke

3.2.1.32 blackarch-recon

Пакеты, занимающиеся активным поиском уязвимостей. Это скорее общая группа для всех пакетов подобного рода.

Примеры: canri, dnsrecon, netmask

3.2.1.33 blackarch-reversing

Общая группа для всех декомпиляторов, дизассемблеров и других похожих программ.

Примеры: capstone, radare2, zerowine

3.2.1.34 blackarch-scanner

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

Примеры: scanssh, tiger, zmap

3.2.1.35 blackarch-sniffer

Пакеты, включающие анализ сетевого трафика.

Примеры: hexinject, pytactle, xspy

3.2.1.36 blackarch-social

Пакеты, предназначенные для атаки социальных сетей.

Примеры: jigsaw, websploit

3.2.1.37 blackarch-spoof

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

Примеры: arpoison, lans, netcommander

3.2.1.38 blackarch-threat-model

Пакеты, используемые для записи модели угрозы, изложенной в определённом сценарии.

Примеры: magictree

3.2.1.39 blackarch-tunnel

Пакеты, использующиеся для туннелирования сетевого трафика в определённой сети.

Примеры: ctunnel, iodine, ptunnel

3.2.1.40 blackarch-unpacker

Пакеты, использующиеся для извлечения вредоносного ПО из исполняемых файлов программ.

Примеры: js-beautify

3.2.1.41 blackarch-voip

Пакеты, работающие с программами и протоколами IP-телефонии.

Примеры: iaxflood, rtp-flood, teardown

3.2.1.42 blackarch-webapp

Пакеты, работающие с веб-приложениями.

Примеры: metoscan, whatweb, zaproxy

3.2.1.43 blackarch-windows

В эту группу входят все нативные пакеты для Windows, работающие через wine.

Пример: 3proxy-win32, pwdump, winexe

3.2.1.44 blackarch-wireless

Пакеты, работающие с беспроводными сетями любого уровня.

Пример: airpwn, mdk3, wiffy

3.3 Структура репозитория BlackArch Linux

Основной git репозиторий BlackArch вы можете найти здесь: https://github.com/BlackArch/blackarch. Кроме этого, существует несколько вторичных репозиториев: https://github.com/BlackArch.

Внутри основного git репозитория находятся три важных директории:

  • docs — Документация.
  • packages — Файлы PKGBUILD.
  • scripts — Полезные маленькие скрипты.

3.3.1 Scripts

Вот список скриптов, которые можно найти в директории scripts/:

  • baaur — Скоро будет использоваться для загрузки пакетов в AUR.
  • babuild — Сборка пакета.
  • bachroot — Управление chroot для тестирования.
  • baclean — Очистка репозитория от старых файлов .pkg.tar.xz.
  • baconflict — Скоро это заменит scripts/conflicts.
  • bad-files — Поиск плохих файлов в собранных пакетах.
  • balock — Получение или открытие заблокированного репозитория.
  • banotify — Отправка уведомлений об обновлениях пакета через IRC.
  • barelease — Выпуск пакетов в репозиторий.
  • baright — Вывод информации об авторских правах BlackArch.
  • basign — Подписка пакетов.
  • basign-key — Подписка ключа.
  • blackman — Ведёт себя как pacman, но собирает из git (не путать с Blackman от nrz).
  • check-groups — Проверка групп.
  • checkpkgs — Проверка пакетов на ошибки.
  • conflicts — Поиск конфликтов файлов.
  • dbmod — Модификация базы данных пакета.
  • depth-list — Создание списка, отсортированного по глубине зависимости.
  • deptree — Создание дерева зависимостей, включающего только пакеты из категории blackarch.
  • get-blackarch-deps — Получение список зависимостей blackarch для пакета.
  • get-official — Получение официальных пакетов для релиза.
  • list-loose-packages — Показать список пакетов, не входящих в группы и не зависящих от других пакетов.
  • list-needed — Показать список отсутствующих зависимостей.
  • list-removed — Показать список пакетов, имеющихся репозитории, но отсутствующих в git.
  • list-tools — Показать список инструментов.
  • outdated — Найти в репозитории пакеты, устаревшие по отношению к репозиторию git.
  • pkgmod — Модифицировать билд пакета.
  • pkgrel — Увеличить pkgrel в пакете.
  • prep — Очистить форматирование файла PKGBUILD и найти ошибки.
  • sitesync — Синхронизировать локальную копию репозитория с удалённой.
  • size-hunt — Поиск больших пакетов.
  • source-backup — Резервное копирование исходных файлов пакетов.

3.4 Как внести свой вклад в репозиторий

Этот раздел руководства покажет вам, как внести свой вклад в проект BlackArch Linux. Мы принимает реквесты всех размеров, от исправлений опечаток, до новых пакетов. Если у вас есть какие-либо вопросы или предложения, свяжитесь с нами.

Приглашаем всех желающих внести свой вклад. Приветствуется любая помощь.

3.4.1 Необходимые руководства

Прежде чем начинать работу, пожалуйста, прочитайте следующие руководства:

3.4.2 Шаги

Чтобы внести свои изменения в проект BlackArchLinux, следуйте этим шагам:

  1. Скопируйте репозиторий из https://github.com/fnord0/blackarchlinux
  2. Откройте нужные файлы, (например, PKGBUILD, файлы .patch и так далее).
  3. Внесите свои изменения.
  4. Сохраните внесённые изменения.
  5. Попросите принять ваши правки. Лучше всего сделать это через запрос на включение изменений.

3.4.3 Пример

Следующий пример демонстрирует добавление нового пакета к проекту BlackArch. Мы воспользуемся yaourt (вы также можете применить pacaur) чтобы получить существующий файл PKGBUILD для nfsshell из AUR, а затем изменить его в соответствии с нашими потребностями.

3.4.3.1 Получение PKGBUILD

Получите файл PKGBUILD, воспользовавшись yaourt или pacaur:

user@blackarchlinux $ yaourt -G nfsshell

==> Download nfsshell sources

x LICENSE

x PKGBUILD

x gcc . patch

user@blackarchlinux $ cd nfsshell /

3.4.3.2 Очистка PKGBUILD

Очистите файлы PKGBUILD, чтобы сэкономить немного времени:

user@blackarchlinux nfsshell $ ./ blarckarch / scripts / prep PKGBUILD

cleaning '; PKGBUILD ';...

expanding tabs ...

removing vim modeline ...

removing id comment ...

removing contributor and maintainer comments ...

squeezing extra blank lines ...

removing ';|| return ';...

removing leading blank line ...

removing $pkgname ...

removing trailing whitespace …

3.4.3.3 Изменение PKGBUILD

Измените файл PKGBUILD:

user@blackarchlinux nfsshell $ vi PKGBUILD

3.4.3.4 Сборка пакета

Соберите свой пакет:

== > Making package : nfsshell 19980519 -1 ( Mon Dec 2 17:23:51 CET 2013)

== > Checking runtime dependencies ...

== > Checking buildtime dependencies ...

== > Retrieving sources ...

-> Downloading nfsshell . tar . gz ...

% Total % Received % Xferd Average Speed Time Time Time

CurrentDload Upload Total Spent Left Speed100 29213 100 29213 0

0 48150 0 - -: - -: - - - -: - -: - - - -: - -: - - 48206

-> Found gcc . patch

-> Found LICENSE

...

< длинный процесс сборки и компиляции >

...

== > Leaving fakeroot environment .

== > Finished making : nfsshell 19980519 -1 ( Mon Dec 2 17:23:53 CET 2013)

3.4.3.5 Установка и тестирование пакета

Установите и протестируйте пакет:

user@blackarchlinux nfsshell $ pacman -U nfsshell -19980519 -1 - x86_64 . pkg . tar . xz

user@blackarchlinux nfsshell $ nfsshell # test it

3.4.3.6 Добавление, сохранение и обновление пакета

Добавьте, сохраните и обновите пакет.

user@blackarchlinux ~/ blackarchlinux / packages $ mv ~/ nfsshell .

user@blackarchlinux ~/ blackarchlinux / packages $ git commit - am nfsshell && git push

3.4.3.7 Создание запроса на включение изменений

Создайте запрос на включение изменений на github.com

firefox https :// github . com / / blackarchlinux

3.4.3.8 Добавление удалённого репозитория

Если вы работаете с копией оригинального репозитория, неплохо будет впоследствии избавится от неё и добавить эту копию как удалённый дополнительный репозиторий для основного.

user@blackarchlinux ~/ blackarchlinux $ git remote -v

origin < url вашей копии > ( fetch )

origin < url вашей копии > ( push )

user@blackarchlinux ~/ blackarchlinux $ git remote add upstream https :// github . com / blackarch

user@blackarchlinux ~/ blackarchlinux $ git remote -v

origin < url вашей копии > ( fetch )

origin < url вашей копии > ( push )

upstream https :// github . com / blackarch / blackarch ( fetch )

upstream https :// github . com / blackarch / blackarch ( push )

По умолчанию git должен вносить изменения сразу в оригинал, но убедитесь, что ваша конфигурация git настроена правильно. Не стоит об этом беспокоиться, если у вас нет права вносить коммиты, так как без него всё равно ничего не получится.

Если у вас всё-таки есть соответствующие права, лучше будет воспользоваться git@github.com:blackarch/blackarch.git. В любом случае, решать вам.

3.4.4 Запросы

  1. Не добавляйте комментарии к файлам PKGBUILD. Вместо этого внесите своё имя в раздел АВТОРЫ руководства по BlackArch.
  2. Для поддержания единообразия, пожалуйста, соблюдайте общий стиль других файлов PKGBUILD в репозитории и используйте отступ в два символа.

3.4.5 Общие советы

С помощью namcap можно проверять пакеты на ошибки.

Вернуться к оглавлению BlackArch Linux полное руководство

Обсуждение BlackArch Linux на нашем форуме в этой теме