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

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

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

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

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

Категории

Все категории
Loading categories
SSH-Snake — SSH-Snake — это самораспространяющийся, самореплицирующийся безфайловый скрипт, который автоматизирует пост-эксплуатационную задачу обнаружения SSH-приватных ключей и хостов. | Kitploit
Инструменты/GitHubGitHub/megamansec/ssh-snake
Повышение привилегийРазведкаКартирование сетиЛатеральное перемещениеСбор информацииПост-эксплуатацияТестирование на ПроникновениеRed TeamingArchived
GitHubmegamansec/ssh-snake

SSH-Snake

SSH-Snake — это самораспространяющийся, самореплицирующийся безфайловый скрипт, который автоматизирует пост-эксплуатационную задачу обнаружения SSH-приватных ключей и хостов.

2.3k221286 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
РепозиторийСайт

SSH-Snake: Автоматическое сетевое перемещение через SSH

🐍 SSH-Snake — это мощный инструмент, предназначенный для автоматического перемещения по сети с использованием закрытых ключей SSH, обнаруженных на системах, с целью создания всесторонней карты сети и её зависимостей, а также определения того, насколько сеть может быть скомпрометирована с помощью SSH и закрытых ключей, начиная с определённой системы.

SSH-Snake автоматически выявляет связи между системами, которые соединены через SSH, что вручную потребовало бы огромных затрат времени и усилий.

Другими словами, SSH-Snake автоматически и рекурсивно выполняет следующие задачи:

  1. На текущей системе находит все закрытые ключи SSH.
  2. На текущей системе находит всех хостов или назначений (user@host), которые могут принять эти ключи.
  3. Пытается подключиться по SSH ко всем найденным назначениям, используя все обнаруженные закрытые ключи.
  4. Если подключение к назначению успешно, повторяет шаги 1–4 на подключённой системе.

Это полностью самореплицирующийся и самораспространяющийся инструмент, работающий полностью без файлов. Во многих смыслах SSH-Snake — это червь: он копирует себя и распространяется с одной системы на другую, насколько это возможно.

Вместо того чтобы вручную прыгать между системами с ключами SSH, как в игре Super Mario, позвольте SSH-Snake сделать эту работу за вас.

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

Подробный анализ того, как на самом деле работает этот скрипт, технические детали, интересные находки, проектные решения, бенчмаркинг и извлечённые уроки можно найти в этой статье блога. Это программное обеспечение написано Джошуа Роджерсом.

Скриншоты

Уменьшенный скриншот вывода SSH-Snake в очень маленькой сети.

Граф, визуализирующий связи между системами через SSHСиние узлы означают, что назначение может подключиться к самому себе (user@host<-->user@host). Красные рёбра указывают на двунаправленное соединение (user1@host1<-->user2@host2).

Граф, визуализирующий связи между системами через SSHЗелёные узлы означают хост (без имени пользователя), который может подключиться к самому себе (host1<-->host1). Зелёные рёбра указывают на двунаправленное соединение (host1<-->host2). Серый хост в правом верхнем углу — это хост, с которого был запущен скрипт.

Граф, визуализирующий связи между системами через SSHСиние узлы означают, что назначение может подключиться к самому себе (user@host<-->user@host). Красные рёбра указывают на двунаправленное соединение (user1@host1<-->user2@host2).

Использование и запуск SSH-Snake

SSH-Snake можно либо скачать, либо передать в bash через pipe:

wget https://raw.githubusercontent.com/MegaManSec/SSH-Snake/main/Snake.nocomments.sh
bash ./Snake.nocomments.sh

или

curl https://raw.githubusercontent.com/MegaManSec/SSH-Snake/main/Snake.nocomments.sh | bash

О SSH-Snake

SSH-Snake бесшовно имитирует то, что делал бы человек-противник для обнаружения закрытых ключей SSH и назначений, к которым можно подключиться. Написанный полностью на Bash, он работает с минимальным набором зависимостей, обычно доступных на основных системах Linux (и MacOS): bash, ssh, coreutils, awk, uniq, sort, grep, tr, find и cat. Требуется getent ИЛИ dscacheutil. sed требуется только для самой первой системы. Также могут использоваться sudo, hostname, ip, timeout, arp, ifconfig, ipconfig и xargs, но они не обязательны (скрипт корректно обрабатывает случаи их отсутствия). Если на системе не окажется необходимых пакетов, он мягко сообщает об ошибке, предупреждая пользователя, что сканирование не может быть продолжено на этой конкретной системе (и возвращается, продолжая с предыдущей).

SSH-Snake полностью бесфайловый: после запуска скрипта пользователем он передаётся в bash целевых систем через stdin и аргументы bash (через SSH). На сканируемых системах не остаётся материальных следов скрипта: единственные свидетельства его работы — это дерево процессов и значительное количество неудачных попыток SSH, которые неизбежно произойдут.

SSH-Snake использует поиск в глубину: после подключения к одной системе он пытается подключиться дальше от неё, прежде чем вернуться назад.

Название SSH-Snake связано с тем, что вывод скрипта напоминает змею, ползущую вверх и вниз по сети. Однако, в отличие от игры Snake, SSH-Snake не умирает, когда кусает собственный хвост (подключается к системе, которая уже просканирована или сканируется в данный момент): он просто выводит, как было установлено соединение, и возвращается, не повторяя сканирование (чтобы избежать бесконечной рекурсии).

SSH-Snake протестирован на различных версиях Linux и MacOS (с установленным Homebrew Bash). Если вы столкнётесь с ОС на базе Linux, с которой он несовместим, пожалуйста, сообщите об этом.

Возможности

  • Рекурсивное SSH-подключение от одной системы к другой с использованием локальных закрытых ключей SSH,
  • Бесфайловое перемещение и распространение/репликация скрипта SSH-Snake только через stdin и аргументы bash на удалённые системы,
  • Автоматическое повышение привилегий до root с помощью sudo, если это возможно,
  • Обнаружение файлов закрытых ключей SSH по записям .bash_history,
  • Обнаружение закрытых ключей SSH в часто используемых файлах и папках,
  • Экспорт закрытых ключей SSH в вывод скрипта,
  • Настраиваемое выполнение пользовательских команд на каждой системе,
  • Модульная система «включай и работай» для обнаружения закрытых ключей и систем,
  • Определение хостов по IP-диапазонам, последним входам, известным хостам, файлам конфигурации SSH и многому другому,
  • Возможность обнаружения, когда система уже просканирована или находится в процессе сканирования, чтобы сеть типа A->B->C могла также обнаружить C->A, но не регрессировала к A->B->C-A->B->C->A->B->...,
  • Возможность создания графических визуализаций сети из вывода скрипта,
  • … и многое другое.

Настройки

SSH-Snake поставляется с некоторыми общими настройками, которые можно сконфигурировать. Эти настройки описаны в SETTINGS.md#general-settings.

SSH-Snake также включает множество настраиваемых/модульных стратегий (функций), которые можно использовать для обнаружения закрытых ключей SSH на системе и поиска хостов и назначений для подключения. Предусмотрены разумные значения по умолчанию, однако если вы хотите выполнить максимально полное сканирование, то включение дополнительных методов обнаружения может помочь. Если сканирование занимает много времени, отключение некоторых методов может ускорить процесс. За исключением одной стратегии (find_ssh_keys), каждую стратегию можно отключить/включить. Они описаны в SETTINGS.md#configurable-discovery-strategies.

Понимание вывода

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