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

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

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

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

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

Категории

Все категории
Loading categories
sift — Триаж раскрытия учётных данных и конфиденциальных данных для файловых ресурсов | Kitploit
Инструменты/GitHubGitHub/hotstartlabs/sift
Оборонительные ИнструментыЦифровая криминалистикаОбнаружение СекретовРеагирование на Инциденты
GitHubhotstartlabs/sift

sift

Триаж раскрытия учётных данных и конфиденциальных данных для файловых ресурсов

Репозиторий
16211 месяц назадЕщё не проверено

Популярное

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

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

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

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

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

Sift Secrets

tests

Триаж утечек учётных данных и чувствительной информации для файловых ресурсов.

Когда появляется открытый файловый ресурс, вопрос никогда не звучит как «есть ли в этом репозитории утёкший ключ». Он звучит так: «что именно оказалось раскрыто, и что мне нужно отозвать до конца рабочего дня». sift создан именно для этого вопроса: высокая полнота поиска, быстрая очередь просмотра и цикл обратной связи, благодаря которому всё, что вы заметите невооружённым глазом, превращается в правило, которое находит остальные двести копий.

Очередь триажа: находки слева, совпадение выделено в окружающих его строках
справа

Python 3.11+, только стандартная библиотека. Без pip install, без интернета, без шага сборки. Он работает на изолированном ноутбуке для реагирования на инциденты — именно там, где он вам нужен.```bash sift survey \fileserver\openshare # how big is this thing sift copy \fileserver\openshare C:\IR\case-4471 # take a throttled copy sift scan C:\IR\case-4471 # scan it, opens the triage UI

Сканирование на месте тоже работает. Сначала попробуйте его на сетевом ресурсе с вымышленными учётными данными:```bash
sift demo C:\temp\demoshare

sift.cmd — это лаунчер, который работает из любого каталога. Чтобы вводить sift вместо полного пути, добавьте C:\Dev\sift в PATH:```bash setx PATH "%PATH%;C:\Dev\sift"

Для машины без Python вообще `python build_portable.py` собирает
`dist/sift-secrets-<version>-portable-win64.zip`: официальный встраиваемый рантайм python.org плюс это дерево исходников, распакуй и запускай через прилагаемый `sift.cmd`. ~11 МБ, без установки, без прав администратора, и в нём ничего не компилируется и не переупаковывается — см. docstring в `build_portable.py`, почему это лучше замороженного .exe на заблокированном ноутбуке для IR.

---

## Почему не просто gitleaks или trufflehog

Оба — хорошие инструменты, решающие другую задачу.

Это **точные** инструменты, созданные для CI, где ложное срабатывание стоит разработчику целого дня, поэтому они в основном срабатывают на то, что по форме похоже на известный API-ключ вендора. trufflehog идёт дальше и предпочитает секреты, которые можно *проверить*, вызвав API вендора, — это действительно отличный сигнал, который regex не способен воспроизвести.

Триаж на файловом ресурсе переворачивает экономику. Человек и так читает каждое срабатывание, так что ложное срабатывание стоит три секунды. По-настоящему дорого обходится **пропуск**.

API-ключи вендоров действительно утекают на файловых ресурсах — бэкап корня веб-сервера, скрипт деплоя, чья-то проектная папка, скопированная на общий диск, и там лежит `.env` с живым ключом Stripe. Их ловить стоит, и sift их ловит. Но это как раз та часть, с которой gitleaks и trufflehog уже отлично справляются. Пробел — всё остальное, и на файловом ресурсе это большая часть всего:

| Что пропускают CI-сканеры | Почему они проходят мимо |
|---|---|
| `web.config` с SQL-строкой подключения | Не известный формат ключа, нет вендора для проверки |
| `Map-Drives.ps1` с `net use ... /user:` | Просто shell-команда со словом после неё |
| `New Hire Setup Guide.docx` | Office-файл, читается как бинарный, полностью пропускается |
| `unattend.xml`, GPP `Groups.xml` | Артефакты развёртывания Windows, для которых никто не написал детектор |
| `confCons.xml`, `.rdg`, WinSCP.ini | Обратимо сохранённые пароли, но не «секретный формат» |
| `passwords.xlsx` | Это ZIP. Сканеры plain-text видят бинарные данные и идут дальше |
| `.kdbx`, `.pfx`, `id_rsa` | Непрозрачные байты — *имя файла* и есть находка |
| `.bak` со строкой подключения внутри | Бинарный, поэтому никогда не читается |

sift покрывает и это, поставляет собственные правила для ключей вендоров и **импортирует наборы правил и результаты других инструментов** — правила gitleaks в TOML, Kingfisher/Titus в YAML и trufflehog в JSON, — так что вам не приходится выбирать между инструментами.

Ближайший аналог — [Snaffler](https://github.com/SnaffCon/Snaffler), который отлично справляется с половиной этой задачи — классификацией по именам файлов — и послужил прямым источником вдохновения для правил имён файлов. Чего в нём нет — и что на деле оказывается узким местом, когда у вас 400 срабатываний, — так это цикла ревью.

---

## Цикл

1. **Просканируйте** ресурс.
2. **Работайте с очередью.** Каждая находка показывает окружающие строки с подсвеченным совпадением. Стрелки расширяют контекст; один клик открывает весь файл в VS Code на этой строке или в Notepad.
3. **Замечаете пропуск.** Так и будет. Подсветите его в предпросмотре и нажмите `r`.
4. **sift предлагает паттерны** и в реальном времени показывает, сколько раз каждый из них совпадёт со всем уже прочитанным.
5. **Сохраните его.** Кэшированное повторное сканирование занимает около секунды, и новые находки появляются в очереди, а ваши предыдущие решения по триажу остаются нетронутыми.

Шаг 5 — та часть, ради которой всё остальное. Находки идентифицируются по `(path, rule, line, value-hash)`, поэтому повторное сканирование вставляет те же строки, а ваш статус, заметки и ответственный сохраняются. Без этого вам пришлось бы заново просматривать те же 300 срабатываний на каждой итерации, и вы бросили бы это на третьей.

---

## Команды```bash
# size it up first: file count, total bytes, biggest folders, transfer estimates
sift survey \\fileserver\share

# take a rate-limited local copy (resumable; gentle = 5 MB/s by default)
sift copy \\fileserver\share C:\IR\case-4471 --speed gentle

# scan a share and open the triage UI
sift scan \\fileserver\share

# maximum recall: more noise, but a human is reading anyway
sift scan D:\dfs\dept --tier 3

# re-open the UI over the most recent scan
sift ui

# build a share of fabricated credentials, scan it, open the UI
sift demo C:\temp\demoshare

# inherit other tools' vendor-key rules, then use them in the live rescan loop
sift import-rules gitleaks.toml                    # gitleaks TOML
sift import-rules path/to/kingfisher/data/rules    # a directory of YAML

# pull in what the other scanners found, into the same queue
trufflehog filesystem \\fileserver\share --json > th.json
sift import-findings th.json

# hand off to the incident record (redacted unless you say otherwise)
sift export --fmt pdf --status confirmed --out ir-4471.pdf
sift export --fmt csv --out ir-4471.csv
sift export --fmt pdf --no-redact       # plaintext; handle as evidence

sift rules                              # what is loaded
sift selftest                           # detection tests against a synthetic share

# ask vendors whether confirmed findings are still live. NETWORK. Opt-in.
sift validate --status confirmed

В любом месте, где встречается sift, вы можете использовать python -m sift вместо этого, из каталога C:\Dev\sift.

Полезные опции

ФлагДействие
--tier 1|2|3Регулятор полноты. 1 = высокий сигнал, 2 = по умолчанию, 3 = не пропустить ничего
--redactМаскирует значения в хранилище и экспортах. Используйте, если БД покидает границы инцидента
--no-uiЗаполняет хранилище и завершает работу, для скриптовых запусков
--no-browserЗапускает UI-сервер, но не открывает браузер (полезно через RDP)
--include/--exclude GLOBСужает обход
--no-archivesНе открывает контейнеры docx/xlsx/zip
--no-stringsНе выполняет проход strings по бинарным файлам
--no-largeПропускает файлы больше --max-size вместо чтения блоками
--jobs NРабочие процессы (по умолчанию: авто)
--max-size MBПропускает файлы больше этого размера (по умолчанию 25)
--port NПорт UI (по умолчанию 8973)

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

Скачать инструмент