Эксплуатируем SNMP
@webwareВсем привет, сегодня постараюсь рассказать вам немного про snmp и про его эксплуатацию
Предисловие
Для чего нужен SNMP:
Протокол SNMP был разработан с целью проверки функционирования сетевых маршрутизаторов и мостов. Впоследствии сфера действия протокола охватила и другие сетевые устройства, такие как хабы, шлюзы, терминальные сервера, LAN Manager сервера , машины под управлением Windows NT и т.д. Кроме того, протокол допускает возможность внесения изменений в функционирование указанных устройств.
Сегодня мы будем поднимать виртуальный роутер, откроем на нём snmp и посмотрим что с ним можно сделать интересного по нашей тематике, всё это делать мы будем под виртуальной машиной Virtual Box, вот её офф страница , думаю с её установкой у вас проблем возникнуть не должно
Часть 1. Подготавливаем Vyos
Vyos – это ОС с открытыми исходниками, которая может быть установлена на физическом оборудовании или на виртуальной машине(наш случай).Vyos основан на GNU/Linux и объединяет в себе несколько приложений, таких, как Quagga, ISC DHCPD, OpenVPN, StrongS / WAN и другие, под единым интерфейсом управления.
Приступим, качаем образ машины(iso) или сразу готовую конфигурацию(ova) отсюда https://downloads.vyos.io/?dir=release/1.1.8
Open Virtualization Format. OVF (Open Virtualization Format) — открытый стандарт для хранения и распространения виртуальных машин. Стандарт описывает открытый, переносимый, расширяемый формат для распространения образов виртуальных машин. https://ru.wikipedia.org/wiki/Open_Virtualization_Format
Я скачивал
Теперь открываем наш Virtual Box, выбираем импорт конфигураций, далее выбираем наш скачанный vyos, далее нужно будет немного подождать virtual box его установит
Запускаем наш vyos, вас встретит загрузчик, после него будет чёрный экран(по крайней мере у меня было так и мне пришлось немного подождать), потом начнётся загрузка, выглядеть это всё будет примерно так
Далее войдем в машину, логин и пароль будут vyos. На этом установка заканчивается, дальше будем конфигурировать vyos и заниматься snmp
Часть 2 Конфигурация и эксплуатация
Для начала узнаем, на каком айпишнике лежит наш роутер, для этого введите
код:
show interfaces
И кстати, здесь работает двоё нажатие TAB во время ввода, так что можете сэкономить своё время
Также, можно посмотреть дефолтную конфигурацию введя show configuration, со временем она у нас будет меняться и увеличиваться
вот как она выглядит
Начнём конфигурировать, чтобы зайти в режим конфигурации введите >>configure
Давайте для начала запустим сервис SSH на нашем роутере, вводите
>>set service ssh
После каждой конфигурации нужно её применить и сохранить, для этого нужно ввести
>>commit
>>save
Далее, чтобы выйти из режима конфигурации ввести >>exit
Теперь посмотрим всё ли хорошо и пропингуем наш роутер
Всё хорошо, теперь можем подключаться к машине по SSH
Теперь запустим ещё несколько сервисов (https, telnet и snmp) для примера
По тому же принципу я включил snmp
>>set service snmp community raffel authorization ro
Не забывайте вводить в конце commit и save иначе конфигурации не будут применены!
Если авторизация стоит ro(read-only) , то узнав community в нашем случае – это raffel много плохого не случится, мы сможет только прочитать установки нашего роутера. Если же авторизация rw(read-write) мы можем менять некоторые его установки
Выполним сканирование nmap-ом на наличие открыты udp портов, именно на них будет лежать наш snmp
Видим, что snmp открыт. Теперь можно, например, попробовать побрутить этот самый community
Я создал файл с набором различных цифр, словосочетаний, букв и между ними спрятал действующее имя, то есть raffel
Теперь воспользуемся nmap скриптом, который позволит нам сбрутить это имя, введём
nmap -sU -p 161 -n --script snmp-brute 192.168.0.101 --script-args snmp-brute.communitiesdb=passfile.txt
И получим
Как видно по выводу, у нас всё получилось и мы получили валидное имя community – raffel
Теперь я создам ещё одно community с авторизацией rw
>>set service snmp community raffel-write rw
То есть теперь, если я введу show configuration, строка связанная с snmp будет выглядеть примерно так
Теперь выполним
Код:
snmpwalk –v1 –c raffel-write 192.168.0.101
Это выдаст нам огромный список действующих настроек, конфигураций и такого рода информации о роутере
Теперь, тк мы имеем право и записывать, мы можем изменять некоторые заголовки, перед которыми находится надпись STRING
Допустим, мы хотим изменить строку выделенную на левом терминале(это дамп с прошлой команды отправленный в файл, вы можете сделать также snmpwalk –v1 –c raffel-write 192.168.0.101 > file.txt ). В этом примере мы заменяем строку vyos на !(Pwned)!
Теперь ещё раз выполним команду snmpwalk –v1 –c raffel-write 192.168.0.101, чтобы удостовериться, что заголовок поменялся
Чтобы не ловить на себя весь огромный вывод советую сделать вот так
>>snmpwalk –v1 –c raffel-write 192.168.0.101 | head –n 6
Это выведет только первые 6 строк результата
И мы получаем
На этом думаю всё, надеюсь не запутал вас, спасибо за внимание.