Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
dredge-cargo — Зашифрованное CLI-хранилище для заметок, конфигураций, ключей и файлов. Ищите, а не организуйте. | Kitploit
Инструменты/GitHubGitHub/deprecatedluar/dredge-cargo
Утилиты общего назначенияВзлом паролейИнструменты шифрования/дешифрованияКриптографияУтилиты и фреймворки
GitHubdeprecatedluar/dredge-cargo

dredge-cargo

Зашифрованное CLI-хранилище для заметок, конфигураций, ключей и файлов. Ищите, а не организуйте.

Репозиторий
144815 дней назадПроверено Kitploit

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Это НЕ менеджер паролей. НЕ приложение для заметок. И уж точно НЕ реестр таксономического происхождения аберрантных бентосных глубоководных образцов. Но первые два оно делает лучше любого из них. Шучу (не совсем).

dredge-doge-vs-cheems

Go Report Card oosmetrics Go Version

Установка • Быстрый старт • Возможности • Команда link • Команды • Как это работает • Безопасность • Зачем

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


"Не беспокойте меня обычным хламом." — Рыбак

dredge demo
root@kitploit:~
go install github.com/DeprecatedLuar/dredge-cargo/cmd/dredge@latest

другие варианты установки ↓


Крутые функции, которых вы ещё не видели

  • Зашифрованное хранилище — Клонируйте репозиторий и получите абсолютно непонятную абракадабру. Вы даже не сможете понять, что находится в репозитории без пароля. (Я использовал AES-256-GCM + Argon2id)
  • Мгновенный поиск — Я сделал собственный алгоритм нечёткого поиска, потому что я ленив и хочу получить нужную запись среди 300 других за миллисекунды, не задумываясь.
  • Храните что угодно — заметки, скрипты, dot-файлы, изображения, zip-архивы. Если это файл и он существует, его можно сохранить в dredge.
  • Привязка живых файлов — Отличная функция: создайте симлинк любого элемента на системный путь, чтобы читать и редактировать напрямую или через dredge. Любые изменения синхронизируются в обе стороны с репозиторием.
  • Поддержка Git — приватный репозиторий, который принадлежит вам. Просто git clone его — и ваши данные у вас.
  • Сессионный пароль — Один запрос на сессию терминала. После этого вы можете использовать dredge без пароля до закрытия терминала. (прочитайте раздел безопасности, чтобы лучше понять)
  • Корзина + отмена — удалённые элементы попадают в корзину. Так что просто используйте dredge undo, если случайно что-то удалили.

Что хранить в dredge?

Я не осужу вас. Надоедливые API-ключи, которые показываются только один раз, SSH-конфиги, AI-промпты, пароли, буквально shell-скрипты, которые можно выполнить, шаблоны писем?, dot-файлы (странно, но будет работать нормально), zip-архивы, список фильмов, списки URL для быстрого доступа...

Даже легальную копию 2-й главы «Человека-бензопилы» на японском. (У меня может быть или не быть именно эта копия)


Установка

macOS Linux

Go

root@kitploit:~
go install github.com/DeprecatedLuar/dredge-cargo/cmd/dredge@latest

Убедитесь, что $GOPATH/bin (обычно ~/go/bin) находится в вашем PATH.

Универсальный

root@kitploit:~
curl -sSL https://raw.githubusercontent.com/DeprecatedLuar/the-satellite/main/satellite.sh | bash -s -- install DeprecatedLuar/dredge-cargo:dredge
Другие способы установки

Установка вручную

  1. Загрузите бинарный файл для вашей ОС из релизов
  2. Сделайте исполняемым: chmod +x dredge-*
  3. Переместите в PATH: mv dredge-* ~/.local/bin/dredge

Из исходного кода

root@kitploit:~
git clone https://github.com/DeprecatedLuar/dredge-cargo
cd dredge-cargo
go build -o dredge ./cmd/dredge
mv dredge ~/.local/bin/

Быстрый старт

root@kitploit:~
# Инициализация с существующим git-удалённым репозиторием
dredge init yourusername/vault   # сокращение GitHub
# или: dredge init [email protected]:you/vault.git

# Добавьте первый элемент
dredge add "OpenAI Key" -c "sk-..." -t keys api # открывает редактор без флага -c

# Поиск
dredge search openai

# Отправить в git
dredge push
Использование
root@kitploit:~
# Добавить что угодно
dredge add My SSH Config -t ssh dotfiles --import ~/.ssh/config
dredge add "Master Architect Prompt" --import prompt.md -t ai prompts
dredge add "Watchlist" -c "Dune 2, Oppenheimer..." -t lists
dredge add "project-backup" --import project.tar.gz   # бинарные файлы тоже :D

# Поиск — просто введите то, что помните
dredge search prompt
dredge search aws key
dredge search ssh

# Просмотр, редактирование, удаление
dredge view <id>
dredge edit <id>
dredge rm <id>
dredge undo          # восстановление

# Результаты поиска пронумерованы — просто введите номер для просмотра
dredge search ssh    # показывает: 1. [xKP] SSH Config  2. [mNq] SSH Key
dredge 1             # просмотр напрямую

# Синхронизация с git
dredge push
dredge pull
dredge sync          # pull + push

Как это работает

"Не могу представить, что там в глубине." — Смотритель маяка

Итак, резюмирую:

Я остановился на двух основных крипто-технологиях: Argon2id и, конечно, AES-256, а именно вариант GCM.

Argon2id, потому что это РЕКОМЕНДАЦИЯ из RFC 9106 и победитель PHC 2015 года. Вот и всё. Вариант GCM AES, потому что он делает все зашифрованные данные невозможными для подделки из-за создания отпечатков. Тоже всё.

Пока что я храню всё в виде зашифрованных файлов в ~/.local/share/dredge/. Этот каталог также является git-репозиторием (по крайней мере пока). Так что dredge push коммитит и отправляет всё для резервного копирования. Каждый элемент представляет собой отдельный зашифрованный блоб со случайным трёхсимвольным ID. Я решил, что никакие имена файлов не должны быть раскрыты, поэтому даже если кто-то увидит ваши файлы, они понятия не будут иметь, на что смотрят.

Конвейер шифрования

root@kitploit:~
Ваш пароль
  + 16-байтовая случайная соль  ← соль хранится в .dredge-key
  → Argon2id (64 MB памяти · 4 потока · 1 итерация)
  → 32-байтовый мастер-ключ (соль + пароль = настоящий ключ)

Мастер-ключ + содержимое элемента (TOML: заголовок, теги, содержимое)
  → AES-256-GCM с новым случайным 12-байтовым nonce для каждой операции
  → [12B nonce][шифротекст + 16B тег аутентификации]
  → записывается на диск как items/xKP  (случайный ID, без расширения)

Таким образом, всё ваше хранилище использует один и тот же производный ключ (это означает, что если вы потеряете ключ, вы потеряете данные, пожалуйста, не теряйте ключ). Каждый элемент использует один и тот же ключ, каждый со своим случайным nonce. Если зашифровать одно и то же содержимое дважды, получатся совершенно разные шифротексты.

Где что находится

root@kitploit:~
~/.local/share/dredge/          ← хранилище (git репозиторий)
├── .git/
├── .gitignore                  ← исключает .spawned/ и links.json
├── .dredge-key                 ← соль + зашифрованная проверочная строка
├── items/
│   ├── xKP                     ← зашифрованный элемент
│   ├── mNq                     ← зашифрованный элемент
│   └── ...
├── .spawned/                   ← открытые копии привязанных элементов
└── links.json                  ← манифест симлинков

Итак, все ваши зашифрованные файлы и .dredge-key хранятся в git-репозитории, а все текстовые файлы (те, которые вы решили сделать читаемыми для системы) никогда не будут отслеживаться. Так что делайте с ними что хотите.

Модель сессии

После первой команды в терминале производный 32-байтовый ключ кэшируется в $XDG_RUNTIME_DIR/dredge/$PPID/.key (доступ только root).

Все последующие команды dredge в ТОМ ЖЕ терминале используют кэшированный ключ. Это значит, что вас больше не будут запрашивать пароль. Каждый терминал получает свой изолированный каталог на основе PID родительского процесса. Ключ исчезает с диска после закрытия терминала.

Более глубокие технические детали

Вывод ключа — Argon2id: Рекомендованные параметры RFC 9106 (64 MB памяти, 4 потока, 1 итерация). Соль в .dredge-key не является секретом, она лишь гарантирует, что подбор вашего пароля перебором будет очень дорогим, даже имея файл. Ваш пароль — это то, что вас защищает, так что вы знаете, что делать.

Шифр — AES-256-GCM: По сути, создаёт отпечатки для каждого шифрования. Вы получаете и конфиденциальность, и целостность. При попытке подделки шифротекста дешифрование не даст мусор — оно просто провалится и запросит помощи.

Проверка пароля: .dredge-key содержит строку dredge-vault-v1, зашифрованную вашим мастер-ключом. При каждой новой сессии dredge расшифровывает её, чтобы проверить, правильный ли пароль. Если вы не получите dredge-vault-v1, пароль неверный, и операция завершится неудачей примерно за 100 мс, а не обнаружит неверный пароль в середине операции.

Что кэшируется: Файл сессии хранит производный 32-байтовый ключ (пароль + соль), а не сам пароль (я не настолько глуп). Таким образом, даже если кто-то прочитает .key во время активной сессии, он не сможет восстановить из него ваш пароль.


Безопасность

"Лучше вернуться с маленьким уловом, чем не вернуться вообще." — Рыбак

Модель угроз (я сделал этот раздел с помощью ИИ, но он верен)

Кто-то клонирует ваш приватный git-репозиторий: Они получат зашифрованные блобы и .dredge-key. Соль не секретна — её цель сделать предвычисленные атаки непрактичными. Без вашего пароля элементы — непрозрачные бинарные данные. Argon2id делает офлайн-перебор дорогим. Используйте надёжный пароль.

Кто-то имеет доступ к вашей запущенной сессии: Производный ключ живёт в $XDG_RUNTIME_DIR/dredge/$PPID/.key на время сессии терминала. Каждый терминал получает свой изолированный каталог — закройте терминал, ключ исчез. Этот путь доступен только пользователю (режим 700) и находится в памяти. Атакующий с доступом к вашему каталогу сессии может расшифровать ваше хранилище. Относитесь к нему как к любым чувствительным учётным данным в вашем домашнем каталоге. Если кто-то имеет root-доступ к вашей машине, ваш ключ dredge — наименьшая из ваших проблем.

Кто-то имеет физический доступ к вашему выключенному устройству: Элементы на диске зашифрованы. Ключ сессии находится в хранилище на базе RAM и не переживает перезагрузку. Привязанные элементы (.spawned/) — открытый текст на диске — см. ниже.

Где существует открытый текст

Файл .spawned — это единственный постоянный открытый текст на диске, и он существует только потому, что вы явно привязали элемент к системному пути. Всё остальное существует только в памяти.

Оговорки

  • --password / DREDGE_PASSWORD: Передача пароля в командной строке раскрывает его в истории оболочки и выводе ps. Переменные окружения могут просочиться в дочерние процессы. Избегайте этого в общих средах.
  • --vault / DREDGE_VAULT: Переопределение активного хранилища для одной команды без сохранения изменения. Полезно для скриптов, работающих с несколькими хранилищами.
  • Привязанные элементы: Открытый текст привязанного элемента находится по цели симлинка (например, ~/.ssh/config). Он не отслеживается git, но находится на диске в открытом виде.

Команда link

Привяжите любой сохранённый элемент к пути в вашей файловой системе:

root@kitploit:~
dredge link <id> ~/.ssh/config

Эта команда создаст симлинк по пути ~/.ssh/config, указывающий на копию открытого текста, которой управляет dredge (файл открывается на диске, чтобы вы могли его использовать). Вы можете редактировать файл напрямую или через dredge edit или как вам угодно — все изменения автоматически синхронизируются обратно в зашифрованное хранилище.

Автоматическое восстановление: Если вы переименуете симлинк (например, mv ~/.ssh/config ~/.ssh/config-backup), dredge обнаружит и будет отслеживать новый путь автоматически. Удалённые симлинки очищаются при запуске сессии.

dredge link demo

На новой машине:

root@kitploit:~
git clone [email protected]:you/vault.git ~/.local/share/dredge
dredge link <id> ~/.ssh/config
#  тот же SSH-конфиг, те же ключи, каждая машина отслеживается git для любых обновлений

Это собственно причина, по которой я создал dredge. Мой SSH-конфиг одинаков на каждой машине, но я не мог просто засунуть его в свои dot-файлы.


Все команды

Синхронизация с Git (от wlad031)

Синхронизация с Git использует обычный git и работает с любым удалённым репозиторием (GitHub/GitLab/Gitea и т.д.).

dredge init принимает опциональный git-remote. Если его опустить, dredge инициализирует локальный git-репозиторий (без удалённого).

Поведение авто-коммита: push, pull и sync сохраняют синхронизированные незакоммиченные изменения в коммите перед согласованием с удалённым репозиторием. Если вам нужно отменить локальные изменения, чтобы приоритизировать версию с удалённого репозитория, используйте dredge drop.

Автоматическое сохранение истории: push и sync применяют политику из dredge.toml. Метаданные элементов и бинарное хранилище имеют независимые лимиты на количество версий на элемент и зашифрованные байты, в то время как history.deleted.retain_for контролирует, как долго удалённые ID остаются восстанавливаемыми. Если политика ничего не удаляет, Dredge выполняет обычный push. Если требуется уплотнение, Dredge проверяет историю замещения и использует точный force-with-lease; одновременное обновление с удалённого репозитория безопасно останавливается, а не перезаписывается. pull никогда не уплотняет и не force-пушит.

Просмотрите сохранённую историю с помощью dredge history, dredge history deleted или dredge history <id>. Восстановите удалённый зашифрованный элемент с помощью dredge history restore <id>. Смена пароля не перешифровывает исторические блобы, поэтому восстановленные версии, созданные под старым паролем, могут не расшифроваться текущим паролем.

Допустимые форматы удалённого репозитория:

root@kitploit:~
# Сокращение GitHub (разворачивается в https://github.com/<владелец>/<репозиторий>.git)
dredge init owner/repo

# HTTPS
dredge init https://github.com/owner/repo.git
dredge init https://gitlab.com/group/repo.git

# SSH (в стиле scp)
dredge init [email protected]:owner/repo.git
dredge init [email protected]:group/repo.git

# SSH URL
dredge init ssh://[email protected]/owner/repo.git

# Локальный путь к удалённому репозиторию (продвинутый)
dredge init /srv/git/dredge-vault.git
  • Dredge не создаёт удалённые репозитории за вас.
  • Если origin не настроен, dredge push/pull/sync выдадут ошибку с подсказкой.
  • Если у вас уже установлен git-remote, dredge init не будет его перезаписывать.

Зачем

dredge logo

"Я коллекционер — многих вещей: искусства и артефактов, сокровищ и истин… и диковинок, занимающих периферию желания." — Коллекционер

Умственное напряжение от сохранения чего-то и незнания, где это найти, когда оно понадобится.

Меня бесило, что важные вещи (и неважные тоже, просто вещи в целом) разбросаны повсюду; мне приходилось заходить в почтовый ящик, созданный 6 лет назад, потому что он был привязан к какому-то случайному сервису, к которому мне срочно понадобился доступ безо всякой причины… В любом случае, я понял, что многие инструменты, несмотря на свои фишки, пересекаются в очень важном аспекте — хранении информации, поэтому я сделал инструмент, специализирующийся именно на этом пересечении, и оставляет инструменты делать то, что они умеют лучше всего.

Я ленив, поэтому хотел что-то, что просто работает и читает мои мысли, не требует усилий для добавления записи или извлечения её из базы знаний.

Я как-то скачал jrnl, и мне очень понравилась идея, но не понравилась реализация из-за странных параметров; у него буквально не было разделения на элементы, а поиск находил всё. Dredge — это то, что я на самом деле хотел. (так что да, по сути личный инструмент)


Участники

Большое спасибо ребятам, которые внесли вклад в dredge:


timcondit

wlad031

Сделано с от Luar
Скачать инструмент
РасположениеКогдаВремя жизни
Только в RAMКаждый просмотр, поиск или редактированиеОсвобождается при завершении команды
$XDG_RUNTIME_DIR/dredge/$PPID/edit-*.txtТолько во время dredge editУдаляется после закрытия редактора
~/.local/share/dredge/.spawned/<id>После dredge linkДо выполнения dredge unlink
КомандаОписаниеПример
add / a / new / +Добавить элемент (открывает редактор, если нет флага -c)dredge add "OpenAI Key" -c "sk-..." -t keys
search / sПоиск элементовdredge search aws key
list / lsСписок всех элементовdredge ls
view / vПросмотр элементаdredge view xKP или dredge 1
cat / cВывод сырого содержимого (для передачи по каналу)dredge cat xKP | bash
edit / eРедактирование элементаdredge edit xKP
rmУдаление (попадает в корзину)dredge rm 1 2 3
undoВосстановление последнего удалённого элементаdredge undo
link / lnПривязка элемента к системному путиdredge link xKP ~/.ssh/config
unlinkУдаление привязкиdredge unlink xKP
mv / renameПереименование ID элементаdredge mv xKP abc
exportЭкспорт файлового элемента на дискdredge export xKP ./output/
copy / cpКопирование содержимого элемента в буфер обменаdredge copy xKP
lockБлокировка хранилища (очищает ключ сессии)dredge lock
init / useИнициализация или активация хранилищаdredge init ~/vaults/work
push / pull / syncСинхронизация с git (автоматические коммиты)dredge sync
dropОтказ от незакоммиченных измененийdredge drop xKP или dredge drop --all
statusПоказать ожидающие измененияdredge status
passwdСмена пароля хранилищаdredge passwd
updateОбновление до последней версииdredge update