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

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

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

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

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

Категории

Все категории
Loading categories
git-clean-filter — Это proof-of-work для злоупотребления git's clean filter против IDEs и Sublime. | Kitploit
Инструменты/GitHubGitHub/rootup/git-clean-filter
Инструменты фишингаМеханизмы персистентностиОбход IDS/IPSКомандование и УправлениеСоциальная инженерияRed Teaming
GitHubrootup/git-clean-filter

git-clean-filter

Это proof-of-work для злоупотребления git's clean filter против IDEs и Sublime.

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

Популярное

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

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

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

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

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

Это документированная (известная) проблема, но я обнаружил её в ходе своего исследования, и она весьма полезна для RT/PT.

Краткое описание: Директива filter.<name>.clean в .git/config указывает на скрипт, а .gitattributes привязывает этот фильтр к отслеживаемому файлу. Когда git отображает реальный git diff этого файла, он сначала пропускает содержимое рабочей копии через команду clean, поэтому git слепо запускает любой указанный там путь.

Вот тут становится интересно. Наши редакторы автоматически запускают git diff, как только вы кликаете на изменённый файл, чтобы заполнить панель SCM (управления версиями) и аннотации на полях. Просто открытия папки недостаточно, но просмотр изменений — да, и это вполне естественное действие при попадании в репозиторий.

Это та же идея, что и core.fsmonitor, только на другой директиве, и это не fsmonitor, поэтому любой, кто ищет именно его, не заметит этого. Техника подходит для RT-задач и сценариев предполагаемого взлома с любым C2 или нашим XRayC2, чтобы получить обратный вызов, обходящий традиционную сетевую защиту. (Конечно, для обмана конечного пользователя требуется фишинг, но открытие папки в IDE и клик по файлу кажется разумной операцией.)

Доказательство работоспособности. git clone не переносит .git/config, поэтому отправляйте папку с нетронутым .git/. Конфиг в .git/config:

root@kitploit:~
[filter "poc"]
    clean  = ./icons/clean.sh
    smudge = cat

.gitattributes:

root@kitploit:~
sample.txt filter=poc

sample.txt закоммичен, но поставляется изменённым в рабочей копии. Как только git делает diff, срабатывает фильтр clean. clean.sh открывает Калькулятор и пропускает содержимое без изменений, так что рабочая копия никогда не повреждается:

root@kitploit:~
#!/bin/sh
pgrep -x Calculator >/dev/null 2>&1 || open -a Calculator 2>/dev/null
exec cat

Откройте папку в своём редакторе, кликните sample.txt для просмотра изменений — и появится калькулятор. (Закройте Калькулятор, чтобы запустить снова.) Эта POC специфична для macOS, адаптируйте под свою среду.

Протестировано на Cursor (git CLI) и Sublime Text (libgit2).

Фильтр clean запускается только при полном git diff, а не при git status, поэтому он срабатывает, когда редактор отображает изменение, а не просто при открытии папки. Интересно, что Sublime запускает его внутренне через libgit2, родительский процесс полезной нагрузки — сам sublime_text, без бинарника git в цепочке, так что это не ограничено инструментами, которые запускают git как внешнюю команду.

https://github.com/user-attachments/assets/31ea495f-1ed8-44f8-bef3-8c6366a0eece

Как и fsmonitor, это ограничено запросом редактора «Доверять этой папке?». Большинство разработчиков доверяют ~/Downloads и подобным папкам верхнего уровня, а Cursor по умолчанию отключает доверие к рабочей области, поэтому PoC выполняется незаметно. Если репозиторий находится за пределами этих доверенных путей, IDE спросит «Доверять этому издателю?» перед чтением .git/config.

Документация Git: core.fsmonitor и filter.* по адресу https://git-scm.com/docs/gitattributes.

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