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

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

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

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

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

Категории

Все категории
Loading categories
RedditOSINT — Reddit OSINT по имени пользователя. Обнаружение индексированных постов, комментариев, удалённого и активного контента, шаблонов активности, раскрытых идентификаторов и общей оценки экспозиции. | Kitploit
Инструменты/GitHubGitHub/albertrg99/redditosint
OSINT (Разведка открытых источников)РазведкаOSINT для социальной инженерииСкриптинг и автоматизацияЭксфильтрация данныхСбор информацииКонфиденциальностьСоциальная инженерияУтилиты и фреймворкиРазведка угроз
GitHub
41161 день назадЕщё не проверено

Популярное

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

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

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

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

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

RedditOSINT

Reddit OSINT по имени пользователя. Обнаружение индексированных постов, комментариев, удалённого и активного контента, шаблонов активности, раскрытых идентификаторов и общей оценки экспозиции.

Репозиторий

RedditOSINT

Reddit OSINT по имени пользователя. Укажите имя пользователя, и инструмент вернёт всё, что публичные архивы Reddit проиндексировали для этого аккаунта: посты, комментарии, что было удалено и что всё ещё доступно, паттерны активности, утёкшие идентификаторы и оценку экспозиции.

Без зависимостей, без API-ключей, без входа в систему. Только python3.

image

python3 reddit_osint.py someuser

Тот же анализ также доступен в виде инструментов MCP для клиентов LLM, см. MCP-сервер.

pip install -r requirements.txt && python mcp_server.py

Что он делает и зачем существует

Reddit удаляет вещи, но сторонние архивы данных сохраняют копию, которая существовала до удаления (или, по крайней мере, маркер [removed] / [deleted]). Этот инструмент запрашивает эти архивы и восстанавливает профиль активности аккаунта.

Это предпосылка, лежащая в основе веб-инструмента h3kz-reddint, который является эталоном для этого скрипта: он перереализует этот конвейер (два источника, слияние, регулярные выражения для PII, граф, оценка) как автономный CLI, с тестами и опциональной поддержкой прокси.

Источники

ИсточникЧто этоРоль
Arctic Shift (arctic-shift.photon-reddit.com)Бесплатный архив Reddit, управляемый сообществом преемник Pushshift. Охватывает 2022→сегодня и сохраняет исходный скрейп (selftext, removed_by_category, media_metadata, flair). Без API-ключа, ограничение скорости на IP.Основной источник. Предоставляет 100% полезных данных.
PullPush (api.pullpush.io)Ещё один индекс тех же данных Reddit (исторические дампы Pushshift).Резервный. Запрашивается параллельно и объединяется по id. Его API для сабреддитов возвращает 404, поэтому он обслуживает только посты/комментарии.
reddit.com—Никогда не запрашивается. Используется только для построения permalink-URL в отчёте. Официальный API Reddit не используется (без входа), поэтому это работает на заблокированных аккаунтах.

Измерено на реальном образце аккаунта: Arctic Shift вернул 39 постов / 139 комментариев, PullPush вернул 38 постов с пересекающимися ID. Arctic Shift побеждает; --source arctic быстрее и достаточен.


Требования

  • Python 3.9+ (протестировано на 3.13)
  • Без pip install. Только стандартная библиотека.
  • Для SOCKS-прокси: pip install pysocks (опционально, нужно только для socks5://)
  • Только для MCP-сервера: pip install -r requirements.txt (FastMCP). CLI в этом не нуждается.

Использование

Базовое

python3 reddit_osint.py someuser

Выводит отчёт в формате JSON в stdout (только сводка, без пофайлового дампа) и записывает логи в stderr.

Сохранение полного отчёта

python3 reddit_osint.py someuser --json report.json
python3 reddit_osint.py someuser --json report.json --quiet > /dev/null

report.json включает ключ all_items со всеми постами и комментариями (текст, subreddit, оценка, дата, статус, permalink). Экранная сводка его опускает, чтобы не выводить 200 КБ.

Фильтры

python3 reddit_osint.py someuser --subreddit dotnet       # one subreddit only
python3 reddit_osint.py someuser --keywords "kubernetes"  # posts mentioning X
python3 reddit_osint.py someuser --over18 true            # NSFW only
python3 reddit_osint.py someuser --source arctic          # single source (faster)
python3 reddit_osint.py someuser --max-pages 10           # cap pagination (100 items/page)
python3 reddit_osint.py someuser --delay 1.0             # slower, better with proxies
python3 reddit_osint.py someuser --rate-limit-retries 0   # fail fast when throttled

Прокси

python3 reddit_osint.py someuser --proxies proxies.txt

proxies.txt, по одному прокси на строку. Поддерживаемые форматы:

http://1.2.3.4:8080
https://1.2.3.4:8443
socks5://1.2.3.4:1080
socks5://user:[email protected]:1080
1.2.3.4:8080              # no scheme -> assumed http://
# comments and blank lines are ignored

Дубликаты удаляются. Если файл не содержит валидных прокси, скрипт завершается с кодом 2 и не делает запросов.

Ротация. Прокси перебираются по кругу. Когда запрос возвращает код блокировки/ограничения частоты, этот прокси отправляется на cooldown на --cooldown секунд, и скрипт переходит к следующему:

ФлагПо умолчаниюЧто делает
--proxies FILE—Список прокси. Без него: прямое подключение.
--cooldown SECONDS30Как долго забаненный прокси остаётся в стороне.
--max-attempts N(proxies+1) × 3Потолок попыток на запрос до отказа.
--no-direct-fallbackвыкл.Ждать вместо прямого подключения, когда все прокси на cooldown.
--shuffle-proxiesвыкл.Перемешать список при запуске (распределяет нагрузку с первого запроса).
--proxy-statsвыкл.Добавляет proxy_stats в отчёт: ok / banned / errors по каждому прокси.
--rate-limit-retries N2Повторы всей страницы с экспоненциальной задержкой (30 с, 60 с, максимум 120 с), когда API отвечает 429/422.

Коды, рассматриваемые как бан (они вызывают ротацию прокси): 401 403 407 422 429 500 502 503 504 520 521 522 523 524, плюс любые 400/409, тело которых содержит slow down / rate limit / too many requests / timeout. Arctic Shift использует 422 "Timeout. Maybe slow down a bit" для ограничения частоты, поэтому это намеренно обрабатывается как бан.

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

Backoff. После бана скрипт ждёт min(cooldown, 10 s) — это применяется и к прямым подключениям, где это больнее всего. Если страница исчерпывает свои попытки, fetch_all повторяет страницу с экспоненциальной задержкой (--rate-limit-retries, 2 попытки по умолчанию = 30 с и 60 с). Именно это не даёт скрипту молча терять комментарии, когда он упирается в ограничение частоты посреди запуска.

Пример лога с ротацией:

[proxy] http://1.2.3.4:8080 blocked (429), backing off 10s -> rotating
[proxy] http://5.6.7.8:1080 failed (Connection refused), rotating
[proxy] direct connection blocked (422), backing off 10s -> rotating
[!] arctic/comments rate limited, backing off 30s (retry 1/2)

Когда все прокси находятся в периоде ожидания, скрипт выжидает самый длительный оставшийся период ожидания и повторяет попытку (или использует прямое соединение, если не был передан --no-direct-fallback).

Предупреждение: прокси — это путь исходящего трафика, который проходит ваш IP-адрес до третьей стороны. Если вы не доверяете поставщику прокси, не используйте его с этим инструментом.

Переменные окружения

ПеременнаяНазначение
REDDIT_OSINT_ARCTICПереопределить URL Arctic Shift (зеркала, тесты).
REDDIT_OSINT_PULLPUSHПереопределить URL PullPush.

Какую информацию он извлекает

Необработанные поля из API

id, title, selftext, body, author, subreddit, created_utc, score, permalink, url, over_18, num_comments, link_flair_text, preview.images, media_metadata, removed_by_category.

Классификация статуса

СтатусОбнаружение
removedТекст = [removed] или [ Removed by Reddit ], или присутствует removed_by_category (посты) → модератор удалил его.
deletedТекст = [deleted] или author == "[deleted]" → автор удалил его.
liveВсё остальное.

В этом и заключается весь смысл инструмента: архив фиксирует факт удаления, даже когда содержимое отсутствует, и это само по себе является полезными метаданными.

Профиль и метрики

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