Показаны сообщения с ярлыком RouterOS. Показать все сообщения
Показаны сообщения с ярлыком RouterOS. Показать все сообщения

понедельник, 4 марта 2019 г.

Перехват пароля к FTP серверу с помощью роутера Mikrotik

Вводная: Есть программа с "захардкорженным" в коде паролем с доступом к FTP. Необходимо узнать пароль.

Решение: Так как в качестве роутера у нас Mikrotik RB951Ui-2HnD, то будем использовать его. Заходим в winbox. В меню выбираем Tools - Packet Sniffer. Если стоит галочка "Only Headers" снимаем её.

На вкладке Filter выставляем Port - 21.


Далее нажимаем "Start". Пробуем получить обновления через программу. Если пакеты пошли хорошо, есть нет, то вариант чуть сложнее - убираем порт и смотрим все пакеты от данного компьютера - вероятно (если мы уверены, что используется FTP) используется не стандартный порт.
Узнать порт также можно простым запросом у техподдержки вашей программы - объяснив, что "системный администратор не открывает доступ по всем портам, а только по списку".
Далее нажимаем "Packets" и смотрим все пакеты подряд (Нас интересует вкладка "Packet") - в каком-нибудь из них, будет строка "PASS" и далее пароль который нам нужен.


Как вариант можем сделать сохранение в файл - на вкладке General. И сделать поиск по подстроке "PASS"



вторник, 4 августа 2015 г.

Полная очистка логов Mikrotik RouterOS

Вводная: Нужно было почистить следы выполнения некоторых команд на роутерах Mikrotik, так чтобы не было видно, что кто-то что-то делал.

Решение: Решение описано много где в интернетах и сводится к двум вещам - очистке логов и очистке истории введённых команд консоли (к примеру https://aacable.wordpress.com/2013/12/19/howto-clear-mikrotik-loghistory/).
Однако есть команда /system history print которая выводит список изменений конфигурации и который стандартными средствами не удаляется!

Для полного удаления следов пребывания можно использовать метод создания и последующего восстановления резервной копии, который выполняется за 2 команды
system backup save name=test 
system backup load name=test

Плюсы данного решения в том, что чистится всё - и логи, и история консоли, и system history.

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

Примечание - Также будет оставлен файл бэкапа (для маскировки можно назвать файл auto-before-reset.backup и поставить ему время Jan/01/1970 00:05:51 - параметры автоматически создаваемого файла при сбросе конфигурации system reset-configuration)



пятница, 15 августа 2014 г.

Вывод только нужного значения в консоли Mikrotik (использование put, get, find)

Вводная: Необходимо вывести только одно единственное значение в консоль. Это может пригодиться в разных случаях, сходу приходят на ум -
  1. Создание писем для отчётности системному администратору.
  2. Быстрый просмотр значений в консоли (когда не надо смотреть весь вывод, а нужно быстро посмотреть только нужное значение.
  3. Когда надо отправить SMS-алерт и мы ограничены в числе символов.
  4. Когда мы управляем роутером через плагин SSH или API, и нам нужно передать в программу нужное значение (для того чтобы не парсить полный вывод, а сразу получить нужное)
  5. Использование в скриптовом языке
Думаю существуют ещё разные кейсы использования, если вы придумали, то опишите их в комментариях.

Решение: Решение достаточно просто и состоит в использовании двух команд - put и get. Данные команды интуитивно понятны (особенно для тех кто хоть немного знает английский). Смысл данных команд в том, что get получает значение, а put его выводит. 

Пример: Покажем на примере вывода времени непрерывной работы роутера (аптайма). Обычно его смотрят командой system resource print и вывод получается такой (на скриншоте), с кучей ненужных нам в данный момент значений - 

Но при небольшой модификации команды до  put [system resource get uptime] вывод становится гораздо более удобным.
И сразу видно отличие в размере вывода и скорости восприятия :)

Также с помощью связки данных команд и использование дополнительно команды find можно получать гораздо удобнее вывод - (для примера узнаем MAC адрес по известному IP) 

Для начала введём ip arp

А теперь - put [ip arp get [find address=192.168.8.1] mac-address]
Это особенно полезно при наличии больших списков, в которых по другому достаточно долго пришлось бы искать. То есть find необходим когда в выводе возможно несколько значений, но нам нужно получить значение только какого-нибудь одного.