Я только что получил новый робот-пылесос, который поможет нам с уборкой. Этот робот (Cecotec Conga 3890), как и многие другие, подключается к вашему Wi-Fi для синхронизации с управляющим приложением. Однажды я проверял свой маршрутизатор и нашел IP-адрес Conga, и это только возбудило мое любопытство, поэтому я решил провести некоторые проверки.
Сначала я запустил со своего терминала nmap, чтобы посмотреть, какие порты у него открыты, и посмотрите, что я обнаружил: порт 22 был открыт 😏.
Итак, я последовал своей наивной мысли и попытался просто связаться с ssh [email protected]
. Конечно, он запросил пароль, которого я не знал, и, попробовав обычный пароль для пользователя root, я отказался.
Однако позже в тот же день я начал проводить некоторые исследования и обнаружил, что некоторые люди уже взломали этот пароль и были достаточно любезны, чтобы опубликовать его, так что… я попробовал, и это сработало! 🍾 🤓 престижность
После этого я неизбежно провел около часа, просто перемещаясь по ОС, основанной на OpenWRT, в поисках интересной информации. Во время своего исследования я нашел интересные вещи, такие как загрузочные сценарии, инструменты Wi-Fi, инструменты для обновления прошивки и… штуку под названием tinyplayer. О боже, какое открытие!
Я подумал: «Это не может быть правдой». Так ли просто заставить Conga воспроизводить звуковой файл? Да, сэр, это так. Я скачал отрывок музыки Чайковского в формате mp3 через wget и запустил tinyplayer tchaikovsky.mp3
, а Конга просто начал проигрывать ее вслух. О боже.
На следующий день у меня просто возникла идея: а что, если… я напишу скрипт, который несколько раз случайным образом будет воспроизводить звук? А что, если заставить его воспроизводить забавные звуки? Я простой человек, поэтому я пошел на пердеж 💩, конечно. Поэтому я загрузил их на свой ноутбук и скопировал в Conga через scp,один за другим:
scp ~/Downloads/1.mp3 [email protected]:/root/1.mp3
Затем я потратил некоторое время на написание самого скрипта, который в итоге получился таким, и я поместил его в /root/sounds.sh
:
#!/bin/bash output="sounds.log" while true; do randomNumber=$(cat /proc/sys/kernel/random/uuid | tr -dc '0-9' | cut -c5-8) if [[ ${randomNumber} -gt 9900 ]] ; then hour=$(date +%H) if [[ ${hour} -gt 11 || ${hour} -lt 21 ]] ; then fileNumber=$(cat /proc/sys/kernel/random/uuid | tr -dc '1-3' | cut -c1) fileName="$fileNumber".mp3 echo "$(date) - Reproducing $fileName" >> sounds.log tinyplayer $fileName else echo "$(date) - Let's be quiet, it's too late..." >> sounds.log fi fi sleep 180; done
Возможно, это не лучший способ сделать это, но мне все равно. Это просто работает. Каждые 180 секунд он генерирует случайное число от 0 до 9999. Если оно больше 9900, выполнение будет продолжаться, то есть примерно в 1% случаев. Также я добавил временное окно, чтобы робот не начал пукать в 3 часа ночи и не пугал нас до чертиков 😅.
Я также добавил регистрацию в /root/sounds.log
для отладки.
Затем я добавил эту строку в файл /etc/rc.local
, поэтому скрипт запускается при загрузке.
sh /root/sounds.sh
И это в основном все. Теперь мой робот-пылесос пукает раз в несколько часов.