Консольные клиенты есть практически для всех популярных веб-сервисов. Многие из них не блещут возможностями и тем более удобством в работе. Но их можно заскриптовать и приспособить для совершенно неожиданных целей: превратить Google Calendar в систему удаленного исполнения команд, использовать Telegram для поиска украденного ноутбука, мониторить сервер с помощью Twitter, организовать скрытый стриминг на YouTube. Об этих и других трюках мы расскажем в сегодняшней статье.
 

Telegram как инструмент защиты ноутбука

О том, как использовать Telegram для ведения заметок и обмена ссылками между разными устройствами, знают все. Но что, если пойти дальше и превратить его в нечто большее? Например, систему сигнализации, которая будет информировать тебя, когда кто-то посторонний включит ноутбук?

Для этого можно использовать консольный клиент telegram-cli и такой скрипт:

#!/bin/bash

ffmpeg -y -t 1 -f video4linux2 -s 640x480 -r 30 -i /dev/video0 -f image2 $HOME/webcam.png
sleep 5m
scrot -z %HOME/screen.png
telegram-cli -W -D -e "send_photo @USERNAME $HOME/webcam.png `date`"
telegram-cli -W -D -e "send_photo @USERNAME $HOME/screen.png `date`"
notify-send -i dialog-warning -t 10000 "Ты. Да, да. Ты." "Тебе кто разрешил?"

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

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

Сообщения, отправленные в Telegram сразу после загрузки системы
Сообщения, отправленные в Telegram сразу после загрузки системы

 

Как установить и настроить

Для установки telegram-cli пользователям Arch Linux и основанных на нем систем достаточно выполнить

$ yaourt -S telegram-cli-git

Пользователям остальных систем придется собрать клиент самостоятельно с помощью ./configure и make, предварительно установив Readline, OpenSSL, libconfig, liblua, Python и libjansson.

В момент первого запуска telegram-cli запросит номер телефона в формате +71234567890, а затем код безопасности из СМС и пароль, если он используется.

 

Управление компом с помощью Pushbullet

С помощью консольного клиента Pushbullet приведенный выше скрипт можно дополнить функцией отправки СМС на указанный телефон (сообщение придет с подключенного к Pushbullet смартфона):

$ pb sms -d 0 -n +12345678901 "Началось!"

Но гораздо интереснее использовать Pushbullet в противоположном направлении, отправляя со смартфона на компьютер пуш-сообщения c командами на исполнение (например, Y3g5f27g shutdown -P):

#!/bin/bash

PASS="Y3g5f27g"
while :
    do
    CMD=$(pb list | grep $PASS | cut -c 10-)
  if [ "$CMD" ]; then
      pb purge
      $CMD
  fi
    sleep 5m
done

Префикс в начале сообщения (Y3g5f27g) нужен, чтобы отфильтровать лишние сообщения и обеспечить защиту от несанкционированного доступа. По завершении цикла команда в сообщении будет выполнена, а само сообщение удалено.

Скрипт следует поместить в автозагрузку, предварительно установив и настроив pushbullet-cli.

Команда, отправленная на компьютер с помощью Pushbullet
Команда, отправленная на компьютер с помощью Pushbullet

 

Как установить и настроить

Pushbullet-cli можно установить из репозитория Python:

$ pip install pushbullet-cli

После установки необходимо пройти авторизацию, введя токен с помощью такой команды:

$ pb set-key

Сам токен можно получить в панели управления на сайте сервиса:«Settings → Account → Access Tokens», нажав кнопку «Create Access Token».

 

Отправка скрытых команд с использованием Google Calendar

Если использование системы push-уведомлений для управления компом тебе кажется слишком очевидным, то у меня есть хорошие новости. То же самое можно организовать с помощью календаря Google. Вряд ли разработчики консольного клиента Gcalcli предполагали, что кто-то станет его использовать таким образом, но мы простых путей не ищем.

Скрипт выглядит так:

#!/bin/bash
while :
    do
    CMD=$(gcalcli search "Y3g5f27g" '2017-09-02T14:00' '2017-09-02T15:00' | cut -c 42-)
    if [ "$CMD" ]; then
        gcalcli delete --iamaexpert "Y3g5f27g" '2017-09-02T14:00' '2017-09-02T15:00'
        $CMD
fi
sleep 5m
done

Чтобы отправить команду, необходимо создать в календаре мероприятие с маркером Y3g5f27g (например, Y3g5f27g shutdown -P) в промежутке между 14:00 и 15:00 часами 2 сентября 2017 года. Скрипт выполнит указанную команду и удалит мероприятие.

 

Как установить и настроить

Gcalcli можно установить из репозитория Python:

$ pip install gcalcli

Для авторизации приложения в сервисе достаточно запустить его с любым аргументом:

$ gcalcli list

Процесс авторизации запустится в автоматическом режиме в веб-браузере. Просто следуй появляющимся инструкциям.


Продолжение статьи доступно только подписчикам

Cтатьи из последних выпусков журнала можно покупать отдельно только через два месяца после публикации. Чтобы читать эту статью, необходимо купить подписку.

Подпишись на журнал «Хакер» по выгодной цене!

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

2 комментария

Подпишитесь на ][, чтобы участвовать в обсуждении

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

Check Also

Конкурс хаков: пишем на PowerShell скрипт, который уведомляет о днях рождения пользователей Active Directory

В компаниях часто встречается задача уведомлять сотрудников о приближающихся днях рождения…