Источник https://www.blackarch.org/
Вернуться к оглавлению BlackArch Linux полное руководство
Содержание
- 3 Руководство разработчика BlackArch Linux
- 3.1 Система билдов и репозиториев Arch
- 3.2 Стандарты PKGBUILD в Blackarch
- 3.2.1 Группы
- 3.2.1.1 blackarch
- 3.2.1.2 blackarch-anti-forensic
- 3.2.1.3 blackarch-automation
- 3.2.1.4 blackarch-backdoor
- 3.2.1.5 blackarch-binary
- 3.2.1.6 blackarch-bluetooth
- 3.2.1.7 blackarch-code-audit
- 3.2.1.8 blackarch-cracker
- 3.2.1.9 blackarch-crypto
- 3.2.1.10 blackarch-database
- 3.2.1.11 blackarch-debugger
- 3.2.1.12 blackarch-decompiler
- 3.2.1.13 blackarch-defensive
- 3.2.1.14 blackarch-disassembler
- 3.2.1.15 blackarch-dos
- 3.2.1.16 blackarch-drone
- 3.2.1.17 blackarch-exploitation
- 3.2.1.18 blackarch-fingerprint
- 3.2.1.19 blackarch-firmware
- 3.2.1.20 blackarch-forensic
- 3.2.1.21 blackarch-fuzzer
- 3.2.1.22 blackarch-hardware
- 3.2.1.23 blackarch-honeypot
- 3.2.1.24 blackarch-keylogger
- 3.2.1.25 blackarch-malware
- 3.2.1.26 blackarch-misc
- 3.2.1.27 blackarch-mobile
- 3.2.1.28 blackarch-networking
- 3.2.1.29 blackarch-nfc
- 3.2.1.30 blackarch-packer
- 3.2.1.31 blackarch-proxy
- 3.2.1.32 blackarch-recon
- 3.2.1.33 blackarch-reversing
- 3.2.1.34 blackarch-scanner
- 3.2.1.35 blackarch-sniffer
- 3.2.1.36 blackarch-social
- 3.2.1.37 blackarch-spoof
- 3.2.1.38 blackarch-threat-model
- 3.2.1.39 blackarch-tunnel
- 3.2.1.40 blackarch-unpacker
- 3.2.1.41 blackarch-voip
- 3.2.1.42 blackarch-webapp
- 3.2.1.43 blackarch-windows
- 3.2.1.44 blackarch-wireless
- 3.2.1 Группы
- 3.3 Структура репозитория
- 3.4 Как внести свой вклад в репозиторий
Глава 3
Руководство разработчика BlackArch Linux
3.1 Система билдов и репозиториев Arch
Файлы PKGBUILD — это скрипты для сборки. Каждый их них поясняет makepkg(1), как создать пакет. Файлы PKGBUILD написаны на Bash.
Если вас интересуют подробности, прочитайте (или просмотрите) следующие публикации:
- Arch Вики: Создание пакетов
- Arch Вики: makepkg
- Arch Вики: PKGBUILD
- Arch Вики: Упаковочные стандарты Arch
3.2 Стандарты PKGBUILD в Blackarch
Для простоты, наши PKGBUILD похожи на аналоги в AUR, но имеют несколько небольших отличий, указанных ниже. Каждый пакет должен, как минимум, принадлежать blackarch. Кроме этого, некоторые пакеты могут входить сразу в несколько групп.
Чтобы пользователи могли быстро устанавливать пакеты определённого типа, все они были разделены на группы. Благодаря группам пользователь может просто выполнить команду «pacman -S <название группы>», чтобы установить сразу множество пакетов.
Группа blackarch является базовой группой, к которой должны принадлежать все пакеты. С её помощью можно быстро установить все имеющиеся пакеты.
Что должно сюда входить: Всё.
3.2.1.2 blackarch-anti-forensic
Пакеты, использующиеся для противостояния розыскной деятельности, включая шифрование, стеганографию и другие действия, приводящие к изменению атрибутов файлов. Сюда входят инструменты, работающие со всем, что вносит в систему изменения с целью сокрытия информации.
Примеры: luks, TrueCrypt, Timestomp, dd, ropeadope, secure-delete
Пакеты, использующиеся для автоматизации инструмента или рабочего процесса.
Примеры: blueranger, tiger, wiffy
Пакеты, открывающие бэкдоры в уже уязвимые системы или эксплуатирующие их.
Примеры: backdoor-factory, rrs, weevely
Пакеты, в той или иной форме работающие с двоичными файлами.
Примеры: binwally, packerid
Пакеты, эксплуатирующие всё, связанное со стандартом Bluetooth (802.15.1).
Примеры: ubertooth, tbear, redfang
Пакеты, проверяющие существующий исходный код с целью анализа на наличие уязвимостей.
Примеры: flawfinder, pscan
Пакеты, используемые для взлома криптографических функций, то есть хэшей.
Примеры: hashcat, john, crunch
Пакеты, работающие с криптографией, за исключением взломов.
Примеры: ciphertest, xortool, sbd
Пакеты, связанные с эксплуатацией баз данных на любом уровне.
Пример: metacoretex, blindsql
Пакеты, позволяющие пользователю в реальном времени следить за тем, что «делает» определённая программа.
Примеры: radare2, shellnoob
Пакеты, пытающиеся преобразовать скомпилированную программу обратно в исходный код.
Примеры: flasm, jd-gui
Пакеты, используемые для защиты пользователя от вредоносного ПО, а так же атак со стороны других пользователей.
Примеры: arpon, chkrootkit, sniffjoke
3.2.1.14 blackarch-disassembler
Данная категория похожа на blackarch-decompiler. Скорее всего, многие программы будут входить в оба этих подраздела. Однако, результатом работы пакетов, относящихся к blackarch-disassembler, является не исходный код, а скомпилированные данные.
Примеры: inguma, radare2
Пакеты, использующие DoS (отказ в обслуживании) атаки.
Примеры: 42zip, nkiller2
Пакеты, использующиеся для управления беспилотными дронами.
Пример: meshdeck, skyjack
3.2.1.17 blackarch-exploitation
Пакеты, пользующиеся эксплойтами в других программах или сервисах.
Пример: armitage, metasploit, zarp
3.2.1.18 blackarch-fingerprint
Пакеты, эксплуатирующие биометрическое оборудование, работающее с отпечатками пальцев.
Примеры: dns-map, p0f, httprint
Пакеты, эксплуатирующие уязвимости в прошивках.
Примеры: None yet, amend asap.
Пакеты, использующиеся для поиска данных на физических дисках или во встроенной памяти.
Примеры: aesfix, nfex, wyd
Пакеты, использующие принцип фаззингового тестирования, то есть ввод случайных данных и анализ результатов.
Примеры: msf, mdk3, wfuzz
Любые пакеты, работающие с аппаратным обеспечением.
Примеры: arduino, smali
Пакеты, играющие роль «горшочков с мёдом», то есть программ, которые притворяются уязвимыми сервисами и заманивают хакеров в ловушку.
Примеры: artillery, bluepot, wifi-honey
Пакеты, записывающие нажатия клавиш в другой системе.
Примеры: None yet, amend asap.
Пакеты, считающиеся вредоносным ПО или программами для его обнаружения.
Примеры: malwaredetect, peepdf, yara
Пакеты, которые нельзя отнести к другим категориям.
Примеры: oh-my-zsh-git, winexe, stompy
Пакеты для управления мобильными платформами.
Примеры: android-sdk-platform-tools, android-udev-rules
Пакеты, работающие с IP-сетями.
Примеры: Практически любой пакет
Пакеты, использующие nfc (ближнюю бесконтактную связь).
Примеры: nfcutils
Пакеты, управляющие упаковщиками или имеющие к ним отношение.
/textifpackers — программы, встраивающие вредоносное ПО в исполняемые файлы других приложений.
Примеры: packerid
Пакеты, играющие роль прокси, то есть перенаправляющие трафик через другой узел интернета.
Примеры: burpsuite, ratproxy, sslnuke
Пакеты, занимающиеся активным поиском уязвимостей. Это скорее общая группа для всех пакетов подобного рода.
Примеры: canri, dnsrecon, netmask
Общая группа для всех декомпиляторов, дизассемблеров и других похожих программ.
Примеры: capstone, radare2, zerowine
Пакеты, способные сканировать выбранные системы на наличие уязвимостей.
Примеры: scanssh, tiger, zmap
Пакеты, включающие анализ сетевого трафика.
Примеры: hexinject, pytactle, xspy
Пакеты, предназначенные для атаки социальных сетей.
Примеры: jigsaw, websploit
Пакеты, старающиеся скрыть злоумышленника так, чтобы он не казался жертве исполнителем атаки.
Примеры: arpoison, lans, netcommander
3.2.1.38 blackarch-threat-model
Пакеты, используемые для записи модели угрозы, изложенной в определённом сценарии.
Примеры: magictree
Пакеты, использующиеся для туннелирования сетевого трафика в определённой сети.
Примеры: ctunnel, iodine, ptunnel
Пакеты, использующиеся для извлечения вредоносного ПО из исполняемых файлов программ.
Примеры: js-beautify
Пакеты, работающие с программами и протоколами IP-телефонии.
Примеры: iaxflood, rtp-flood, teardown
Пакеты, работающие с веб-приложениями.
Примеры: metoscan, whatweb, zaproxy
В эту группу входят все нативные пакеты для Windows, работающие через wine.
Пример: 3proxy-win32, pwdump, winexe
Пакеты, работающие с беспроводными сетями любого уровня.
Пример: airpwn, mdk3, wiffy
3.3 Структура репозитория BlackArch Linux
Основной git репозиторий BlackArch вы можете найти здесь: https://github.com/BlackArch/blackarch. Кроме этого, существует несколько вторичных репозиториев: https://github.com/BlackArch.
Внутри основного git репозитория находятся три важных директории:
- docs — Документация.
- packages — Файлы PKGBUILD.
- 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. Мы принимает реквесты всех размеров, от исправлений опечаток, до новых пакетов. Если у вас есть какие-либо вопросы или предложения, свяжитесь с нами.
Приглашаем всех желающих внести свой вклад. Приветствуется любая помощь.
Прежде чем начинать работу, пожалуйста, прочитайте следующие руководства:
- Упаковочные стандартны Arch
- Создание пакетов
- PKGBUILD
- Makepkg
Чтобы внести свои изменения в проект BlackArchLinux, следуйте этим шагам:
- Скопируйте репозиторий из https://github.com/fnord0/blackarchlinux
- Откройте нужные файлы, (например, PKGBUILD, файлы .patch и так далее).
- Внесите свои изменения.
- Сохраните внесённые изменения.
- Попросите принять ваши правки. Лучше всего сделать это через запрос на включение изменений.
Следующий пример демонстрирует добавление нового пакета к проекту BlackArch. Мы воспользуемся yaourt (вы также можете применить pacaur) чтобы получить существующий файл PKGBUILD для nfsshell из AUR, а затем изменить его в соответствии с нашими потребностями.
Получите файл PKGBUILD, воспользовавшись yaourt или pacaur:
user@blackarchlinux $ yaourt -G nfsshell ==> Download nfsshell sources x LICENSE x PKGBUILD x gcc . patch user@blackarchlinux $ cd nfsshell /
Очистите файлы 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 …
Измените файл PKGBUILD:
user@blackarchlinux nfsshell $ vi PKGBUILD
Соберите свой пакет:
== > 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. В любом случае, решать вам.
- Не добавляйте комментарии к файлам PKGBUILD. Вместо этого внесите своё имя в раздел АВТОРЫ руководства по BlackArch.
- Для поддержания единообразия, пожалуйста, соблюдайте общий стиль других файлов PKGBUILD в репозитории и используйте отступ в два символа.
С помощью namcap можно проверять пакеты на ошибки.
Вернуться к оглавлению BlackArch Linux полное руководство
Обсуждение BlackArch Linux на нашем форуме в этой теме